Updated documentation

This commit is contained in:
Kristian Sloth Lauszus 2015-04-07 16:07:33 +02:00
parent 2ebe75209e
commit 4f510c5316
1046 changed files with 30259 additions and 19797 deletions

248
Doxyfile
View file

@ -1,4 +1,4 @@
# Doxyfile 1.8.7
# Doxyfile 1.8.9.1
# This file describes the settings to be used by the documentation system
# doxygen (www.doxygen.org) for a project.
@ -46,10 +46,10 @@ PROJECT_NUMBER =
PROJECT_BRIEF =
# With the PROJECT_LOGO tag one can specify an logo or icon that is included in
# the documentation. The maximum height of the logo should not exceed 55 pixels
# and the maximum width should not exceed 200 pixels. Doxygen will copy the logo
# to the output directory.
# With the PROJECT_LOGO tag one can specify a logo or an icon that is included
# in the documentation. The maximum height of the logo should not exceed 55
# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy
# the logo to the output directory.
PROJECT_LOGO =
@ -60,7 +60,7 @@ PROJECT_LOGO =
OUTPUT_DIRECTORY =
# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 4096 sub-
# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub-
# directories (in 2 levels) under the output directory of each output format and
# will distribute the generated files over these directories. Enabling this
# option can be useful when feeding doxygen a huge amount of source files, where
@ -93,14 +93,14 @@ ALLOW_UNICODE_NAMES = NO
OUTPUT_LANGUAGE = English
# If the BRIEF_MEMBER_DESC tag is set to YES doxygen will include brief member
# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member
# descriptions after the members that are listed in the file and class
# documentation (similar to Javadoc). Set to NO to disable this.
# The default value is: YES.
BRIEF_MEMBER_DESC = YES
# If the REPEAT_BRIEF tag is set to YES doxygen will prepend the brief
# If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief
# description of a member or function before the detailed description
#
# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
@ -145,7 +145,7 @@ ALWAYS_DETAILED_SEC = NO
INLINE_INHERITED_MEMB = NO
# If the FULL_PATH_NAMES tag is set to YES doxygen will prepend the full path
# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path
# before files name in the file list and in the header files. If set to NO the
# shortest path that makes the file name unique will be used
# The default value is: YES.
@ -215,9 +215,9 @@ MULTILINE_CPP_IS_BRIEF = NO
INHERIT_DOCS = YES
# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce a
# new page for each member. If set to NO, the documentation of a member will be
# part of the file/class/namespace that contains it.
# If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new
# page for each member. If set to NO, the documentation of a member will be part
# of the file/class/namespace that contains it.
# The default value is: NO.
SEPARATE_MEMBER_PAGES = NO
@ -286,7 +286,7 @@ OPTIMIZE_OUTPUT_VHDL = NO
# instance to make doxygen treat .inc files as Fortran files (default is PHP),
# and .f files as C (default is Fortran), use: inc=Fortran f=C.
#
# Note For files without extension you can use no_extension as a placeholder.
# Note: For files without extension you can use no_extension as a placeholder.
#
# Note that for custom extensions you also need to set FILE_PATTERNS otherwise
# the files are not read by doxygen.
@ -305,8 +305,8 @@ MARKDOWN_SUPPORT = YES
# When enabled doxygen tries to link words that correspond to documented
# classes, or namespaces to their corresponding documentation. Such a link can
# be prevented in individual cases by by putting a % sign in front of the word
# or globally by setting AUTOLINK_SUPPORT to NO.
# be prevented in individual cases by putting a % sign in front of the word or
# globally by setting AUTOLINK_SUPPORT to NO.
# The default value is: YES.
AUTOLINK_SUPPORT = YES
@ -346,7 +346,7 @@ SIP_SUPPORT = NO
IDL_PROPERTY_SUPPORT = YES
# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
# tag is set to YES, then doxygen will reuse the documentation of the first
# tag is set to YES then doxygen will reuse the documentation of the first
# member in the group (if any) for the other members of the group. By default
# all members of a group must be documented explicitly.
# The default value is: NO.
@ -411,7 +411,7 @@ LOOKUP_CACHE_SIZE = 0
# Build related configuration options
#---------------------------------------------------------------------------
# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in
# documentation are documented, even if no documentation was available. Private
# class members and static file members will be hidden unless the
# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES.
@ -421,35 +421,35 @@ LOOKUP_CACHE_SIZE = 0
EXTRACT_ALL = YES
# If the EXTRACT_PRIVATE tag is set to YES all private members of a class will
# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will
# be included in the documentation.
# The default value is: NO.
EXTRACT_PRIVATE = NO
# If the EXTRACT_PACKAGE tag is set to YES all members with package or internal
# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal
# scope will be included in the documentation.
# The default value is: NO.
EXTRACT_PACKAGE = NO
# If the EXTRACT_STATIC tag is set to YES all static members of a file will be
# If the EXTRACT_STATIC tag is set to YES, all static members of a file will be
# included in the documentation.
# The default value is: NO.
EXTRACT_STATIC = NO
# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) defined
# locally in source files will be included in the documentation. If set to NO
# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined
# locally in source files will be included in the documentation. If set to NO,
# only classes defined in header files are included. Does not have any effect
# for Java sources.
# The default value is: YES.
EXTRACT_LOCAL_CLASSES = YES
# This flag is only useful for Objective-C code. When set to YES local methods,
# This flag is only useful for Objective-C code. If set to YES, local methods,
# which are defined in the implementation section but not in the interface are
# included in the documentation. If set to NO only methods in the interface are
# included in the documentation. If set to NO, only methods in the interface are
# included.
# The default value is: NO.
@ -474,21 +474,21 @@ HIDE_UNDOC_MEMBERS = NO
# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all
# undocumented classes that are normally visible in the class hierarchy. If set
# to NO these classes will be included in the various overviews. This option has
# no effect if EXTRACT_ALL is enabled.
# to NO, these classes will be included in the various overviews. This option
# has no effect if EXTRACT_ALL is enabled.
# The default value is: NO.
HIDE_UNDOC_CLASSES = NO
# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend
# (class|struct|union) declarations. If set to NO these declarations will be
# (class|struct|union) declarations. If set to NO, these declarations will be
# included in the documentation.
# The default value is: NO.
HIDE_FRIEND_COMPOUNDS = NO
# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any
# documentation blocks found inside the body of a function. If set to NO these
# documentation blocks found inside the body of a function. If set to NO, these
# blocks will be appended to the function's detailed documentation block.
# The default value is: NO.
@ -502,7 +502,7 @@ HIDE_IN_BODY_DOCS = NO
INTERNAL_DOCS = NO
# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file
# names in lower-case letters. If set to YES upper-case letters are also
# names in lower-case letters. If set to YES, upper-case letters are also
# allowed. This is useful if you have classes or files whose names only differ
# in case and if your file system supports case sensitive file names. Windows
# and Mac users are advised to set this option to NO.
@ -511,12 +511,19 @@ INTERNAL_DOCS = NO
CASE_SENSE_NAMES = NO
# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with
# their full class and namespace scopes in the documentation. If set to YES the
# their full class and namespace scopes in the documentation. If set to YES, the
# scope will be hidden.
# The default value is: NO.
HIDE_SCOPE_NAMES = NO
# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will
# append additional text to a page's title, such as Class Reference. If set to
# YES the compound reference will be hidden.
# The default value is: NO.
HIDE_COMPOUND_REFERENCE= NO
# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of
# the files that are included by a file in the documentation of that file.
# The default value is: YES.
@ -544,14 +551,14 @@ INLINE_INFO = YES
# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the
# (detailed) documentation of file and class members alphabetically by member
# name. If set to NO the members will appear in declaration order.
# name. If set to NO, the members will appear in declaration order.
# The default value is: YES.
SORT_MEMBER_DOCS = NO
# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief
# descriptions of file, namespace and class members alphabetically by member
# name. If set to NO the members will appear in declaration order. Note that
# name. If set to NO, the members will appear in declaration order. Note that
# this will also influence the order of the classes in the class list.
# The default value is: NO.
@ -596,16 +603,14 @@ SORT_BY_SCOPE_NAME = NO
STRICT_PROTO_MATCHING = NO
# The GENERATE_TODOLIST tag can be used to enable ( YES) or disable ( NO) the
# todo list. This list is created by putting \todo commands in the
# documentation.
# The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo
# list. This list is created by putting \todo commands in the documentation.
# The default value is: YES.
GENERATE_TODOLIST = YES
# The GENERATE_TESTLIST tag can be used to enable ( YES) or disable ( NO) the
# test list. This list is created by putting \test commands in the
# documentation.
# The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test
# list. This list is created by putting \test commands in the documentation.
# The default value is: YES.
GENERATE_TESTLIST = YES
@ -641,8 +646,8 @@ ENABLED_SECTIONS =
MAX_INITIALIZER_LINES = 30
# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at
# the bottom of the documentation of classes and structs. If set to YES the list
# will mention the files that were used to generate the documentation.
# the bottom of the documentation of classes and structs. If set to YES, the
# list will mention the files that were used to generate the documentation.
# The default value is: YES.
SHOW_USED_FILES = YES
@ -690,8 +695,7 @@ LAYOUT_FILE =
# to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info.
# For LaTeX the style of the bibliography can be controlled using
# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the
# search path. Do not use file names with spaces, bibtex cannot handle them. See
# also \cite for info how to create references.
# search path. See also \cite for info how to create references.
CITE_BIB_FILES =
@ -715,7 +719,7 @@ QUIET = NO
WARNINGS = YES
# If the WARN_IF_UNDOCUMENTED tag is set to YES, then doxygen will generate
# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate
# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag
# will automatically be disabled.
# The default value is: YES.
@ -732,8 +736,8 @@ WARN_IF_DOC_ERROR = YES
# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that
# are documented, but have no documentation for their parameters or return
# value. If set to NO doxygen will only warn about wrong or incomplete parameter
# documentation, but not about the absence of documentation.
# value. If set to NO, doxygen will only warn about wrong or incomplete
# parameter documentation, but not about the absence of documentation.
# The default value is: NO.
WARN_NO_PARAMDOC = NO
@ -974,7 +978,7 @@ REFERENCED_BY_RELATION = NO
REFERENCES_RELATION = NO
# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set
# to YES, then the hyperlinks from functions in REFERENCES_RELATION and
# to YES then the hyperlinks from functions in REFERENCES_RELATION and
# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will
# link to the documentation.
# The default value is: YES.
@ -1021,7 +1025,7 @@ USE_HTAGS = NO
VERBATIM_HEADERS = YES
# If the CLANG_ASSISTED_PARSING tag is set to YES, then doxygen will use the
# If the CLANG_ASSISTED_PARSING tag is set to YES then doxygen will use the
# clang parser (see: http://clang.llvm.org/) for more accurate parsing at the
# cost of reduced performance. This can be particularly helpful with template
# rich C++ code for which doxygen's built-in parser lacks the necessary type
@ -1070,7 +1074,7 @@ IGNORE_PREFIX =
# Configuration options related to the HTML output
#---------------------------------------------------------------------------
# If the GENERATE_HTML tag is set to YES doxygen will generate HTML output
# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output
# The default value is: YES.
GENERATE_HTML = YES
@ -1132,13 +1136,15 @@ HTML_FOOTER =
HTML_STYLESHEET =
# The HTML_EXTRA_STYLESHEET tag can be used to specify an additional user-
# defined cascading style sheet that is included after the standard style sheets
# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined
# cascading style sheets that are included after the standard style sheets
# created by doxygen. Using this option one can overrule certain style aspects.
# This is preferred over using HTML_STYLESHEET since it does not replace the
# standard style sheet and is therefor more robust against future updates.
# Doxygen will copy the style sheet file to the output directory. For an example
# see the documentation.
# standard style sheet and is therefore more robust against future updates.
# Doxygen will copy the style sheet files to the output directory.
# Note: The order of the extra style sheet files is of importance (e.g. the last
# style sheet in the list overrules the setting of the previous ones in the
# list). For an example see the documentation.
# This tag requires that the tag GENERATE_HTML is set to YES.
HTML_EXTRA_STYLESHEET = imageStyle.css
@ -1282,15 +1288,15 @@ GENERATE_HTMLHELP = NO
CHM_FILE =
# The HHC_LOCATION tag can be used to specify the location (absolute path
# including file name) of the HTML help compiler ( hhc.exe). If non-empty
# including file name) of the HTML help compiler (hhc.exe). If non-empty,
# doxygen will try to run the HTML help compiler on the generated index.hhp.
# The file has to be specified with full path.
# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
HHC_LOCATION =
# The GENERATE_CHI flag controls if a separate .chi index file is generated (
# YES) or that it should be included in the master .chm file ( NO).
# The GENERATE_CHI flag controls if a separate .chi index file is generated
# (YES) or that it should be included in the master .chm file (NO).
# The default value is: NO.
# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
@ -1302,8 +1308,8 @@ GENERATE_CHI = NO
CHM_INDEX_ENCODING =
# The BINARY_TOC flag controls whether a binary table of contents is generated (
# YES) or a normal table of contents ( NO) in the .chm file. Furthermore it
# The BINARY_TOC flag controls whether a binary table of contents is generated
# (YES) or a normal table of contents (NO) in the .chm file. Furthermore it
# enables the Previous and Next buttons.
# The default value is: NO.
# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
@ -1445,7 +1451,7 @@ ENUM_VALUES_PER_LINE = 4
TREEVIEW_WIDTH = 250
# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open links to
# If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to
# external symbols imported via tag files in a separate window.
# The default value is: NO.
# This tag requires that the tag GENERATE_HTML is set to YES.
@ -1474,7 +1480,7 @@ FORMULA_TRANSPARENT = YES
# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
# http://www.mathjax.org) which uses client side Javascript for the rendering
# instead of using prerendered bitmaps. Use this if you do not have LaTeX
# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX
# installed or if you want to formulas look prettier in the HTML output. When
# enabled you may also need to install MathJax separately and configure the path
# to it using the MATHJAX_RELPATH option.
@ -1611,7 +1617,7 @@ EXTRA_SEARCH_MAPPINGS =
# Configuration options related to the LaTeX output
#---------------------------------------------------------------------------
# If the GENERATE_LATEX tag is set to YES doxygen will generate LaTeX output.
# If the GENERATE_LATEX tag is set to YES, doxygen will generate LaTeX output.
# The default value is: YES.
GENERATE_LATEX = NO
@ -1642,7 +1648,7 @@ LATEX_CMD_NAME = latex
MAKEINDEX_CMD_NAME = makeindex
# If the COMPACT_LATEX tag is set to YES doxygen generates more compact LaTeX
# If the COMPACT_LATEX tag is set to YES, doxygen generates more compact LaTeX
# documents. This may be useful for small projects and may help to save some
# trees in general.
# The default value is: NO.
@ -1676,23 +1682,36 @@ EXTRA_PACKAGES =
#
# Note: Only use a user-defined header if you know what you are doing! The
# following commands have a special meaning inside the header: $title,
# $datetime, $date, $doxygenversion, $projectname, $projectnumber. Doxygen will
# replace them by respectively the title of the page, the current date and time,
# only the current date, the version number of doxygen, the project name (see
# PROJECT_NAME), or the project number (see PROJECT_NUMBER).
# $datetime, $date, $doxygenversion, $projectname, $projectnumber,
# $projectbrief, $projectlogo. Doxygen will replace $title with the empty
# string, for the replacement values of the other commands the user is referred
# to HTML_HEADER.
# This tag requires that the tag GENERATE_LATEX is set to YES.
LATEX_HEADER =
# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the
# generated LaTeX document. The footer should contain everything after the last
# chapter. If it is left blank doxygen will generate a standard footer.
# chapter. If it is left blank doxygen will generate a standard footer. See
# LATEX_HEADER for more information on how to generate a default footer and what
# special commands can be used inside the footer.
#
# Note: Only use a user-defined footer if you know what you are doing!
# This tag requires that the tag GENERATE_LATEX is set to YES.
LATEX_FOOTER =
# The LATEX_EXTRA_STYLESHEET tag can be used to specify additional user-defined
# LaTeX style sheets that are included after the standard style sheets created
# by doxygen. Using this option one can overrule certain style aspects. Doxygen
# will copy the style sheet files to the output directory.
# Note: The order of the extra style sheet files is of importance (e.g. the last
# style sheet in the list overrules the setting of the previous ones in the
# list).
# This tag requires that the tag GENERATE_LATEX is set to YES.
LATEX_EXTRA_STYLESHEET =
# The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or
# other source files which should be copied to the LATEX_OUTPUT output
# directory. Note that the files will be copied as-is; there are no commands or
@ -1710,8 +1729,8 @@ LATEX_EXTRA_FILES =
PDF_HYPERLINKS = YES
# If the LATEX_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate
# the PDF file directly from the LaTeX files. Set this option to YES to get a
# If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate
# the PDF file directly from the LaTeX files. Set this option to YES, to get a
# higher quality PDF documentation.
# The default value is: YES.
# This tag requires that the tag GENERATE_LATEX is set to YES.
@ -1756,7 +1775,7 @@ LATEX_BIB_STYLE = plain
# Configuration options related to the RTF output
#---------------------------------------------------------------------------
# If the GENERATE_RTF tag is set to YES doxygen will generate RTF output. The
# If the GENERATE_RTF tag is set to YES, doxygen will generate RTF output. The
# RTF output is optimized for Word 97 and may not look too pretty with other RTF
# readers/editors.
# The default value is: NO.
@ -1771,7 +1790,7 @@ GENERATE_RTF = NO
RTF_OUTPUT = rtf
# If the COMPACT_RTF tag is set to YES doxygen generates more compact RTF
# If the COMPACT_RTF tag is set to YES, doxygen generates more compact RTF
# documents. This may be useful for small projects and may help to save some
# trees in general.
# The default value is: NO.
@ -1808,11 +1827,21 @@ RTF_STYLESHEET_FILE =
RTF_EXTENSIONS_FILE =
# If the RTF_SOURCE_CODE tag is set to YES then doxygen will include source code
# with syntax highlighting in the RTF output.
#
# Note that which sources are shown also depends on other settings such as
# SOURCE_BROWSER.
# The default value is: NO.
# This tag requires that the tag GENERATE_RTF is set to YES.
RTF_SOURCE_CODE = NO
#---------------------------------------------------------------------------
# Configuration options related to the man page output
#---------------------------------------------------------------------------
# If the GENERATE_MAN tag is set to YES doxygen will generate man pages for
# If the GENERATE_MAN tag is set to YES, doxygen will generate man pages for
# classes and files.
# The default value is: NO.
@ -1856,7 +1885,7 @@ MAN_LINKS = NO
# Configuration options related to the XML output
#---------------------------------------------------------------------------
# If the GENERATE_XML tag is set to YES doxygen will generate an XML file that
# If the GENERATE_XML tag is set to YES, doxygen will generate an XML file that
# captures the structure of the code including all documentation.
# The default value is: NO.
@ -1870,7 +1899,7 @@ GENERATE_XML = NO
XML_OUTPUT = xml
# If the XML_PROGRAMLISTING tag is set to YES doxygen will dump the program
# If the XML_PROGRAMLISTING tag is set to YES, doxygen will dump the program
# listings (including syntax highlighting and cross-referencing information) to
# the XML output. Note that enabling this will significantly increase the size
# of the XML output.
@ -1883,7 +1912,7 @@ XML_PROGRAMLISTING = YES
# Configuration options related to the DOCBOOK output
#---------------------------------------------------------------------------
# If the GENERATE_DOCBOOK tag is set to YES doxygen will generate Docbook files
# If the GENERATE_DOCBOOK tag is set to YES, doxygen will generate Docbook files
# that can be used to generate PDF.
# The default value is: NO.
@ -1897,14 +1926,23 @@ GENERATE_DOCBOOK = NO
DOCBOOK_OUTPUT = docbook
# If the DOCBOOK_PROGRAMLISTING tag is set to YES, doxygen will include the
# program listings (including syntax highlighting and cross-referencing
# information) to the DOCBOOK output. Note that enabling this will significantly
# increase the size of the DOCBOOK output.
# The default value is: NO.
# This tag requires that the tag GENERATE_DOCBOOK is set to YES.
DOCBOOK_PROGRAMLISTING = NO
#---------------------------------------------------------------------------
# Configuration options for the AutoGen Definitions output
#---------------------------------------------------------------------------
# If the GENERATE_AUTOGEN_DEF tag is set to YES doxygen will generate an AutoGen
# Definitions (see http://autogen.sf.net) file that captures the structure of
# the code including all documentation. Note that this feature is still
# experimental and incomplete at the moment.
# If the GENERATE_AUTOGEN_DEF tag is set to YES, doxygen will generate an
# AutoGen Definitions (see http://autogen.sf.net) file that captures the
# structure of the code including all documentation. Note that this feature is
# still experimental and incomplete at the moment.
# The default value is: NO.
GENERATE_AUTOGEN_DEF = NO
@ -1913,7 +1951,7 @@ GENERATE_AUTOGEN_DEF = NO
# Configuration options related to the Perl module output
#---------------------------------------------------------------------------
# If the GENERATE_PERLMOD tag is set to YES doxygen will generate a Perl module
# If the GENERATE_PERLMOD tag is set to YES, doxygen will generate a Perl module
# file that captures the structure of the code including all documentation.
#
# Note that this feature is still experimental and incomplete at the moment.
@ -1921,7 +1959,7 @@ GENERATE_AUTOGEN_DEF = NO
GENERATE_PERLMOD = NO
# If the PERLMOD_LATEX tag is set to YES doxygen will generate the necessary
# If the PERLMOD_LATEX tag is set to YES, doxygen will generate the necessary
# Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI
# output from the Perl module output.
# The default value is: NO.
@ -1929,9 +1967,9 @@ GENERATE_PERLMOD = NO
PERLMOD_LATEX = NO
# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be nicely
# If the PERLMOD_PRETTY tag is set to YES, the Perl module output will be nicely
# formatted so it can be parsed by a human reader. This is useful if you want to
# understand what is going on. On the other hand, if this tag is set to NO the
# understand what is going on. On the other hand, if this tag is set to NO, the
# size of the Perl module output will be much smaller and Perl will parse it
# just the same.
# The default value is: YES.
@ -1951,14 +1989,14 @@ PERLMOD_MAKEVAR_PREFIX =
# Configuration options related to the preprocessor
#---------------------------------------------------------------------------
# If the ENABLE_PREPROCESSING tag is set to YES doxygen will evaluate all
# If the ENABLE_PREPROCESSING tag is set to YES, doxygen will evaluate all
# C-preprocessor directives found in the sources and include files.
# The default value is: YES.
ENABLE_PREPROCESSING = YES
# If the MACRO_EXPANSION tag is set to YES doxygen will expand all macro names
# in the source code. If set to NO only conditional compilation will be
# If the MACRO_EXPANSION tag is set to YES, doxygen will expand all macro names
# in the source code. If set to NO, only conditional compilation will be
# performed. Macro expansion can be done in a controlled way by setting
# EXPAND_ONLY_PREDEF to YES.
# The default value is: NO.
@ -1974,7 +2012,7 @@ MACRO_EXPANSION = YES
EXPAND_ONLY_PREDEF = YES
# If the SEARCH_INCLUDES tag is set to YES the includes files in the
# If the SEARCH_INCLUDES tag is set to YES, the include files in the
# INCLUDE_PATH will be searched if a #include is found.
# The default value is: YES.
# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
@ -2054,20 +2092,21 @@ TAGFILES =
GENERATE_TAGFILE =
# If the ALLEXTERNALS tag is set to YES all external class will be listed in the
# class index. If set to NO only the inherited external classes will be listed.
# If the ALLEXTERNALS tag is set to YES, all external class will be listed in
# the class index. If set to NO, only the inherited external classes will be
# listed.
# The default value is: NO.
ALLEXTERNALS = NO
# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed in
# the modules index. If set to NO, only the current project's groups will be
# If the EXTERNAL_GROUPS tag is set to YES, all external groups will be listed
# in the modules index. If set to NO, only the current project's groups will be
# listed.
# The default value is: YES.
EXTERNAL_GROUPS = YES
# If the EXTERNAL_PAGES tag is set to YES all external pages will be listed in
# If the EXTERNAL_PAGES tag is set to YES, all external pages will be listed in
# the related pages index. If set to NO, only the current project's pages will
# be listed.
# The default value is: YES.
@ -2084,7 +2123,7 @@ PERL_PATH = /usr/bin/perl
# Configuration options related to the dot tool
#---------------------------------------------------------------------------
# If the CLASS_DIAGRAMS tag is set to YES doxygen will generate a class diagram
# If the CLASS_DIAGRAMS tag is set to YES, doxygen will generate a class diagram
# (in HTML and LaTeX) for classes with base or super classes. Setting the tag to
# NO turns the diagrams off. Note that this option also works with HAVE_DOT
# disabled, but it is recommended to install and use dot, since it yields more
@ -2109,7 +2148,7 @@ MSCGEN_PATH =
DIA_PATH =
# If set to YES, the inheritance and collaboration graphs will hide inheritance
# If set to YES the inheritance and collaboration graphs will hide inheritance
# and usage relations if the target is undocumented or is not a class.
# The default value is: YES.
@ -2134,7 +2173,7 @@ HAVE_DOT = YES
DOT_NUM_THREADS = 0
# When you want a differently looking font n the dot files that doxygen
# When you want a differently looking font in the dot files that doxygen
# generates you can specify the font name using DOT_FONTNAME. You need to make
# sure dot is able to find the font, which can be done by putting it in a
# standard location or by setting the DOTFONTPATH environment variable or by
@ -2182,7 +2221,7 @@ COLLABORATION_GRAPH = YES
GROUP_GRAPHS = YES
# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
# If the UML_LOOK tag is set to YES, doxygen will generate inheritance and
# collaboration diagrams in a style similar to the OMG's Unified Modeling
# Language.
# The default value is: NO.
@ -2315,6 +2354,19 @@ MSCFILE_DIRS =
DIAFILE_DIRS =
# When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the
# path where java can find the plantuml.jar file. If left blank, it is assumed
# PlantUML is not used or called during a preprocessing step. Doxygen will
# generate a warning when it encounters a \startuml command in this case and
# will not generate output for the diagram.
PLANTUML_JAR_PATH =
# When using plantuml, the specified paths are searched for files specified by
# the !include statement in a plantuml block.
PLANTUML_INCLUDE_PATH =
# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes
# that will be shown in the graph. If the number of nodes in a graph becomes
# larger than this value, doxygen will truncate the graph, which is visualized
@ -2351,7 +2403,7 @@ MAX_DOT_GRAPH_DEPTH = 0
DOT_TRANSPARENT = NO
# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
# Set the DOT_MULTI_TARGETS tag to YES to allow dot to generate multiple output
# files in one run (i.e. multiple -o and -T options on the command line). This
# makes dot run faster, but since only newer versions of dot (>1.8.10) support
# this, this feature is disabled by default.
@ -2368,7 +2420,7 @@ DOT_MULTI_TARGETS = NO
GENERATE_LEGEND = YES
# If the DOT_CLEANUP tag is set to YES doxygen will remove the intermediate dot
# If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate dot
# files that are used to generate the various graphs.
# The default value is: YES.
# This tag requires that the tag HAVE_DOT is set to YES.

View file

@ -3,15 +3,16 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<meta name="generator" content="Doxygen 1.8.9.1"/>
<title>USB Host Shield 2.0: BTD.cpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="imageStyle.css" rel="stylesheet" type="text/css"/>
@ -31,7 +32,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.7 -->
<!-- Generated by Doxygen 1.8.9.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -70,7 +71,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
@ -95,7 +96,7 @@ Include dependency graph for BTD.cpp:</div>
<div class="dyncontent">
<div class="center"><img src="_b_t_d_8cpp__incl.png" border="0" usemap="#_b_t_d_8cpp" alt=""/></div>
<map name="_b_t_d_8cpp" id="_b_t_d_8cpp">
<area shape="rect" id="node2" href="_b_t_d_8h.html" title="BTD.h" alt="" coords="12,79,71,104"/><area shape="rect" id="node3" href="_usb_8h.html" title="Usb.h" alt="" coords="14,152,70,177"/></map>
<area shape="rect" id="node2" href="_b_t_d_8h.html" title="BTD.h" alt="" coords="12,79,71,104"/><area shape="rect" id="node3" href="_usb_8h.html" title="Usb.h" alt="" coords="34,299,90,324"/><area shape="rect" id="node4" href="hid_8h.html" title="hid.h" alt="" coords="49,152,99,177"/><area shape="rect" id="node5" href="hidusagestr_8h.html" title="hidusagestr.h" alt="" coords="100,225,200,251"/></map>
</div>
</div>
<p><a href="_b_t_d_8cpp_source.html">Go to the source code of this file.</a></p>
@ -104,7 +105,7 @@ Include dependency graph for BTD.cpp:</div>
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.7
</a> 1.8.9.1
</small></address>
</body>
</html>

View file

@ -1,4 +1,6 @@
<map id="BTD.cpp" name="BTD.cpp">
<area shape="rect" id="node2" href="$_b_t_d_8h.html" title="BTD.h" alt="" coords="12,79,71,104"/>
<area shape="rect" id="node3" href="$_usb_8h.html" title="Usb.h" alt="" coords="14,152,70,177"/>
<area shape="rect" id="node3" href="$_usb_8h.html" title="Usb.h" alt="" coords="34,299,90,324"/>
<area shape="rect" id="node4" href="$hid_8h.html" title="hid.h" alt="" coords="49,152,99,177"/>
<area shape="rect" id="node5" href="$hidusagestr_8h.html" title="hidusagestr.h" alt="" coords="100,225,200,251"/>
</map>

View file

@ -1 +1 @@
c765cc95de530749422030983e73bab2
a80eb4feea84cb3fbac6fb00fc2a6647

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 13 KiB

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1 +1 @@
a586d33041837831328e4bd5a24cb1bb
1cf25c5527b32b2a9e530f3758fe7f24

View file

@ -1,3 +1,5 @@
<map id="BTD.h" name="BTD.h">
<area shape="rect" id="node2" href="$_usb_8h.html" title="Usb.h" alt="" coords="7,79,63,104"/>
<area shape="rect" id="node2" href="$_usb_8h.html" title="Usb.h" alt="" coords="27,225,83,251"/>
<area shape="rect" id="node3" href="$hid_8h.html" title="hid.h" alt="" coords="42,79,92,104"/>
<area shape="rect" id="node4" href="$hidusagestr_8h.html" title="hidusagestr.h" alt="" coords="93,152,193,177"/>
</map>

View file

@ -1 +1 @@
6a148ecdc8a7fa65c24885517e9426dd
5207daceba9d7a9a37aadb1360508ea8

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View file

@ -3,15 +3,16 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<meta name="generator" content="Doxygen 1.8.9.1"/>
<title>USB Host Shield 2.0: BTD.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="imageStyle.css" rel="stylesheet" type="text/css"/>
@ -31,7 +32,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.7 -->
<!-- Generated by Doxygen 1.8.9.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -70,7 +71,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
@ -110,461 +111,477 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define _btd_h_</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_usb_8h.html">Usb.h</a>&quot;</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">//PID and VID of the Sony PS3 devices</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a5bb06f989db583d290ba79642d37c514"> 24</a></span>&#160;<span class="preprocessor">#define PS3_VID 0x054C // Sony Corporation</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a0ae276efa5e73a4da658c714e70402c0"> 25</a></span>&#160;<span class="preprocessor">#define PS3_PID 0x0268 // PS3 Controller DualShock 3</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a54903b410722a45f8246653cd4d00632"> 26</a></span>&#160;<span class="preprocessor">#define PS3NAVIGATION_PID 0x042F // Navigation controller</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#afc242b8a1b867f79c49ad78e3a47b37f"> 27</a></span>&#160;<span class="preprocessor">#define PS3MOVE_PID 0x03D5 // Motion controller</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div>
<div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a6a28bb0589fbe2da75b238d7568d894d"> 29</a></span>&#160;<span class="preprocessor">#define IOGEAR_GBU521_VID 0x0A5C // The IOGEAR GBU521 dongle does not presents itself correctly, so we have to check for it manually</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#aed4a7c4ebf618412176ef19023454fad"> 30</a></span>&#160;<span class="preprocessor">#define IOGEAR_GBU521_PID 0x21E8</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment">/* Bluetooth dongle data taken from descriptors */</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a32d591ef5742a99963130616ef146787"> 33</a></span>&#160;<span class="preprocessor">#define BULK_MAXPKTSIZE 64 // Max size for ACL data</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment">// Used in control endpoint header for HCI Commands</span></div>
<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ad70df063f83bf7000558b1d73aa009e5"> 36</a></span>&#160;<span class="preprocessor">#define bmREQ_HCI_OUT USB_SETUP_HOST_TO_DEVICE|USB_SETUP_TYPE_CLASS|USB_SETUP_RECIPIENT_DEVICE</span></div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="comment">// Used in control endpoint header for HID Commands</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a5bd4ea095da29635414952894bd527f5"> 38</a></span>&#160;<span class="preprocessor">#define bmREQ_HID_OUT USB_SETUP_HOST_TO_DEVICE|USB_SETUP_TYPE_CLASS|USB_SETUP_RECIPIENT_INTERFACE</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#aee05d40a014750b24a7e9967f6f389f4"> 39</a></span>&#160;<span class="preprocessor">#define HID_REQUEST_SET_REPORT 0x09</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment">/* Bluetooth HCI states for hci_task() */</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ac2b910cd6cc87c7bac09617815a1ee9a"> 42</a></span>&#160;<span class="preprocessor">#define HCI_INIT_STATE 0</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#af3a7567dba1a0a7ed4272324d7684440"> 43</a></span>&#160;<span class="preprocessor">#define HCI_RESET_STATE 1</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#aa4e852587db5ad51c6c5cfb8e9d4f002"> 44</a></span>&#160;<span class="preprocessor">#define HCI_CLASS_STATE 2</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a86fd72d2518d27c02c15af635b55fc8f"> 45</a></span>&#160;<span class="preprocessor">#define HCI_BDADDR_STATE 3</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a8f1d666addd0c2bba7602fbd7a692228"> 46</a></span>&#160;<span class="preprocessor">#define HCI_LOCAL_VERSION_STATE 4</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a1939cc2e06b3185be07a93c1ac7a10e1"> 47</a></span>&#160;<span class="preprocessor">#define HCI_SET_NAME_STATE 5</span></div>
<div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a2c060a7be42c5c4c57990cacec0b45f5"> 48</a></span>&#160;<span class="preprocessor">#define HCI_CHECK_DEVICE_SERVICE 6</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div>
<div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a09fa39bcefd3255f8ef762034e45679e"> 50</a></span>&#160;<span class="preprocessor">#define HCI_INQUIRY_STATE 7 // These three states are only used if it should pair and connect to a device</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a19b8f48838cdb9ca7db043878f1c11fa"> 51</a></span>&#160;<span class="preprocessor">#define HCI_CONNECT_DEVICE_STATE 8</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ab7fc323aab10c0fb1339e1c660fdd15d"> 52</a></span>&#160;<span class="preprocessor">#define HCI_CONNECTED_DEVICE_STATE 9</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div>
<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#acc9b6954b4bb6c19a9d25242869d5ddf"> 54</a></span>&#160;<span class="preprocessor">#define HCI_SCANNING_STATE 10</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a8bfcf6e1a0a044aba26d728fb0c6a17a"> 55</a></span>&#160;<span class="preprocessor">#define HCI_CONNECT_IN_STATE 11</span></div>
<div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a4bad48092981dffe97edb052f5ae08bd"> 56</a></span>&#160;<span class="preprocessor">#define HCI_REMOTE_NAME_STATE 12</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ae0a16d1cc0142186a20379b5c68bd1e0"> 57</a></span>&#160;<span class="preprocessor">#define HCI_CONNECTED_STATE 13</span></div>
<div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ad3500c7116f1bb564011dac09a387a5c"> 58</a></span>&#160;<span class="preprocessor">#define HCI_DISABLE_SCAN_STATE 14</span></div>
<div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a20fc1ebfc3da8e048f6afe53330e6b8f"> 59</a></span>&#160;<span class="preprocessor">#define HCI_DONE_STATE 15</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a31398eae2e433d1b7b39ea3d6d07cdd0"> 60</a></span>&#160;<span class="preprocessor">#define HCI_DISCONNECT_STATE 16</span></div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="comment">/* HCI event flags*/</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a14087b750ea2da7f0cef4daaa7683d01"> 63</a></span>&#160;<span class="preprocessor">#define HCI_FLAG_CMD_COMPLETE 0x01</span></div>
<div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a472a2cb241a6e13fa8f62d19b6c418bd"> 64</a></span>&#160;<span class="preprocessor">#define HCI_FLAG_CONNECT_COMPLETE 0x02</span></div>
<div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a094e0fa9b22cade79fe64a907aad5f2a"> 65</a></span>&#160;<span class="preprocessor">#define HCI_FLAG_DISCONNECT_COMPLETE 0x04</span></div>
<div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a400af4b61f6e94ab821fa368d8bf2b07"> 66</a></span>&#160;<span class="preprocessor">#define HCI_FLAG_REMOTE_NAME_COMPLETE 0x08</span></div>
<div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a0e8a8ce5838e265c1732795bf8822043"> 67</a></span>&#160;<span class="preprocessor">#define HCI_FLAG_INCOMING_REQUEST 0x10</span></div>
<div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#aabbf8a2ed694a2dc4d4e60fd389c44dd"> 68</a></span>&#160;<span class="preprocessor">#define HCI_FLAG_READ_BDADDR 0x20</span></div>
<div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ab3b1f616c1e885e697806f0167b73e8e"> 69</a></span>&#160;<span class="preprocessor">#define HCI_FLAG_READ_VERSION 0x40</span></div>
<div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a5ac3c55b54eff968d2327185a7e644ba"> 70</a></span>&#160;<span class="preprocessor">#define HCI_FLAG_DEVICE_FOUND 0x80</span></div>
<div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ad14762241e9195fc9a3b0a69ef1ab7f3"> 71</a></span>&#160;<span class="preprocessor">#define HCI_FLAG_CONNECT_EVENT 0x100</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="comment">/* Macros for HCI event flag tests */</span></div>
<div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a57c7f989e9b561a6301a0d6f2268bfd5"> 74</a></span>&#160;<span class="preprocessor">#define hci_check_flag(flag) (hci_event_flag &amp; (flag))</span></div>
<div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ada46cc57bb9134769989b1b18bdac525"> 75</a></span>&#160;<span class="preprocessor">#define hci_set_flag(flag) (hci_event_flag |= (flag))</span></div>
<div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a700e625eeda4ce1b35112721acbdfd19"> 76</a></span>&#160;<span class="preprocessor">#define hci_clear_flag(flag) (hci_event_flag &amp;= ~(flag))</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="comment">/* HCI Events managed */</span></div>
<div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a4c6ca5696adeab36258b3b0c58d804e0"> 79</a></span>&#160;<span class="preprocessor">#define EV_INQUIRY_COMPLETE 0x01</span></div>
<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a335df6d48c8cac828d62196eeaff360b"> 80</a></span>&#160;<span class="preprocessor">#define EV_INQUIRY_RESULT 0x02</span></div>
<div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ad4bce42e1ef20447655f8916f23d07a7"> 81</a></span>&#160;<span class="preprocessor">#define EV_CONNECT_COMPLETE 0x03</span></div>
<div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#af6c5584636f8958689f5cd67290254e1"> 82</a></span>&#160;<span class="preprocessor">#define EV_INCOMING_CONNECT 0x04</span></div>
<div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a1cf7e4d4426dcabed8976b65beee0d99"> 83</a></span>&#160;<span class="preprocessor">#define EV_DISCONNECT_COMPLETE 0x05</span></div>
<div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a68b8f78a0e0da80434afb1e6d40eacf4"> 84</a></span>&#160;<span class="preprocessor">#define EV_AUTHENTICATION_COMPLETE 0x06</span></div>
<div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a29c1744f72f3cd85865c8173eace5a36"> 85</a></span>&#160;<span class="preprocessor">#define EV_REMOTE_NAME_COMPLETE 0x07</span></div>
<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#aa0bf5ac66c412d3415dbb753630d0e58"> 86</a></span>&#160;<span class="preprocessor">#define EV_ENCRYPTION_CHANGE 0x08</span></div>
<div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a3e107e9d07793ca5cfaeea8b2181d4a4"> 87</a></span>&#160;<span class="preprocessor">#define EV_CHANGE_CONNECTION_LINK 0x09</span></div>
<div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ac61db50de3007a22e19e660bd7e68e69"> 88</a></span>&#160;<span class="preprocessor">#define EV_ROLE_CHANGED 0x12</span></div>
<div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a0987119cfc40f3011a2cec69686034df"> 89</a></span>&#160;<span class="preprocessor">#define EV_NUM_COMPLETE_PKT 0x13</span></div>
<div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a935633384e87daa14b60549134014ec4"> 90</a></span>&#160;<span class="preprocessor">#define EV_PIN_CODE_REQUEST 0x16</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a8c77c922bb61301760ebf5af5f1cc7f0"> 91</a></span>&#160;<span class="preprocessor">#define EV_LINK_KEY_REQUEST 0x17</span></div>
<div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a8c662496af1164370e5fdf7149ecd842"> 92</a></span>&#160;<span class="preprocessor">#define EV_LINK_KEY_NOTIFICATION 0x18</span></div>
<div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a6f8b4cf8546d9928a34c9c681dc5a6d5"> 93</a></span>&#160;<span class="preprocessor">#define EV_DATA_BUFFER_OVERFLOW 0x1A</span></div>
<div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a2ad6543cdfe06cbf0924c287c08f36d7"> 94</a></span>&#160;<span class="preprocessor">#define EV_MAX_SLOTS_CHANGE 0x1B</span></div>
<div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a830b2a3bcb09c4802910e8b05531d317"> 95</a></span>&#160;<span class="preprocessor">#define EV_READ_REMOTE_VERSION_INFORMATION_COMPLETE 0x0C</span></div>
<div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a1b58792b76e0f216df8160bf055032c3"> 96</a></span>&#160;<span class="preprocessor">#define EV_QOS_SETUP_COMPLETE 0x0D</span></div>
<div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a81b71e0ba648260143529b04ae84e528"> 97</a></span>&#160;<span class="preprocessor">#define EV_COMMAND_COMPLETE 0x0E</span></div>
<div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a090ee10cc1a1c1c3bbb29a93c330d2d4"> 98</a></span>&#160;<span class="preprocessor">#define EV_COMMAND_STATUS 0x0F</span></div>
<div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#acd5f65703cc34b112a1f656d9a49551b"> 99</a></span>&#160;<span class="preprocessor">#define EV_LOOPBACK_COMMAND 0x19</span></div>
<div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ad8481acc0b144d97017f8a06d63ff47c"> 100</a></span>&#160;<span class="preprocessor">#define EV_PAGE_SCAN_REP_MODE 0x20</span></div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="comment">/* Bluetooth states for the different Bluetooth drivers */</span></div>
<div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a15cc1db556ad9a4ec6144ca8a42f8919"> 103</a></span>&#160;<span class="preprocessor">#define L2CAP_WAIT 0</span></div>
<div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ae4da52ca67e1f8b977199b24e8f3a400"> 104</a></span>&#160;<span class="preprocessor">#define L2CAP_DONE 1</span></div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="comment">/* Used for HID Control channel */</span></div>
<div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a68bcdd68c269cd7970d5271a00bbe5fe"> 107</a></span>&#160;<span class="preprocessor">#define L2CAP_CONTROL_CONNECT_REQUEST 2</span></div>
<div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#aaaf733ee2c84bd8df4d24f2ae1f3b378"> 108</a></span>&#160;<span class="preprocessor">#define L2CAP_CONTROL_CONFIG_REQUEST 3</span></div>
<div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#abac08b5b24a1cd2b12517cd9aa6c616b"> 109</a></span>&#160;<span class="preprocessor">#define L2CAP_CONTROL_SUCCESS 4</span></div>
<div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a9b5140e7ca5941e5535c575255ffc1cc"> 110</a></span>&#160;<span class="preprocessor">#define L2CAP_CONTROL_DISCONNECT 5</span></div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="comment">/* Used for HID Interrupt channel */</span></div>
<div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ac7aa7fd7a8a34a6c9e420e3cb114737b"> 113</a></span>&#160;<span class="preprocessor">#define L2CAP_INTERRUPT_SETUP 6</span></div>
<div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#af0b913a7e9e54b1f6ab95d82bd36f954"> 114</a></span>&#160;<span class="preprocessor">#define L2CAP_INTERRUPT_CONNECT_REQUEST 7</span></div>
<div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a73e3a81d9a8850075fd10933acc5a035"> 115</a></span>&#160;<span class="preprocessor">#define L2CAP_INTERRUPT_CONFIG_REQUEST 8</span></div>
<div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ab569b2085ad29f41d1da9c0ed352bd65"> 116</a></span>&#160;<span class="preprocessor">#define L2CAP_INTERRUPT_DISCONNECT 9</span></div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="comment">/* Used for SDP channel */</span></div>
<div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a72444116eaac116983a3dec35b1944f0"> 119</a></span>&#160;<span class="preprocessor">#define L2CAP_SDP_WAIT 10</span></div>
<div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a1b8e3e654e4f55e27ca5054aef956edc"> 120</a></span>&#160;<span class="preprocessor">#define L2CAP_SDP_SUCCESS 11</span></div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<span class="comment">/* Used for RFCOMM channel */</span></div>
<div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a0b7cbe1aa26664847a48bd4578bc50bd"> 123</a></span>&#160;<span class="preprocessor">#define L2CAP_RFCOMM_WAIT 12</span></div>
<div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a75321d181cfa3c485bcd96918c1b353e"> 124</a></span>&#160;<span class="preprocessor">#define L2CAP_RFCOMM_SUCCESS 13</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="hid_8h.html">hid.h</a>&quot;</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">//PID and VID of the Sony PS3 devices</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a5bb06f989db583d290ba79642d37c514"> 25</a></span>&#160;<span class="preprocessor">#define PS3_VID 0x054C // Sony Corporation</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a0ae276efa5e73a4da658c714e70402c0"> 26</a></span>&#160;<span class="preprocessor">#define PS3_PID 0x0268 // PS3 Controller DualShock 3</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a54903b410722a45f8246653cd4d00632"> 27</a></span>&#160;<span class="preprocessor">#define PS3NAVIGATION_PID 0x042F // Navigation controller</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#afc242b8a1b867f79c49ad78e3a47b37f"> 28</a></span>&#160;<span class="preprocessor">#define PS3MOVE_PID 0x03D5 // Motion controller</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div>
<div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a6a28bb0589fbe2da75b238d7568d894d"> 30</a></span>&#160;<span class="preprocessor">#define IOGEAR_GBU521_VID 0x0A5C // The IOGEAR GBU521 dongle does not presents itself correctly, so we have to check for it manually</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#aed4a7c4ebf618412176ef19023454fad"> 31</a></span>&#160;<span class="preprocessor">#define IOGEAR_GBU521_PID 0x21E8</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment">/* Bluetooth dongle data taken from descriptors */</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a32d591ef5742a99963130616ef146787"> 34</a></span>&#160;<span class="preprocessor">#define BULK_MAXPKTSIZE 64 // Max size for ACL data</span></div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="comment">// Used in control endpoint header for HCI Commands</span></div>
<div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ad70df063f83bf7000558b1d73aa009e5"> 37</a></span>&#160;<span class="preprocessor">#define bmREQ_HCI_OUT USB_SETUP_HOST_TO_DEVICE|USB_SETUP_TYPE_CLASS|USB_SETUP_RECIPIENT_DEVICE</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="comment">/* Bluetooth HCI states for hci_task() */</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ac2b910cd6cc87c7bac09617815a1ee9a"> 40</a></span>&#160;<span class="preprocessor">#define HCI_INIT_STATE 0</span></div>
<div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#af3a7567dba1a0a7ed4272324d7684440"> 41</a></span>&#160;<span class="preprocessor">#define HCI_RESET_STATE 1</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#aa4e852587db5ad51c6c5cfb8e9d4f002"> 42</a></span>&#160;<span class="preprocessor">#define HCI_CLASS_STATE 2</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a86fd72d2518d27c02c15af635b55fc8f"> 43</a></span>&#160;<span class="preprocessor">#define HCI_BDADDR_STATE 3</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a8f1d666addd0c2bba7602fbd7a692228"> 44</a></span>&#160;<span class="preprocessor">#define HCI_LOCAL_VERSION_STATE 4</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a1939cc2e06b3185be07a93c1ac7a10e1"> 45</a></span>&#160;<span class="preprocessor">#define HCI_SET_NAME_STATE 5</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a2c060a7be42c5c4c57990cacec0b45f5"> 46</a></span>&#160;<span class="preprocessor">#define HCI_CHECK_DEVICE_SERVICE 6</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div>
<div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a09fa39bcefd3255f8ef762034e45679e"> 48</a></span>&#160;<span class="preprocessor">#define HCI_INQUIRY_STATE 7 // These three states are only used if it should pair and connect to a device</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a19b8f48838cdb9ca7db043878f1c11fa"> 49</a></span>&#160;<span class="preprocessor">#define HCI_CONNECT_DEVICE_STATE 8</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ab7fc323aab10c0fb1339e1c660fdd15d"> 50</a></span>&#160;<span class="preprocessor">#define HCI_CONNECTED_DEVICE_STATE 9</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div>
<div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#acc9b6954b4bb6c19a9d25242869d5ddf"> 52</a></span>&#160;<span class="preprocessor">#define HCI_SCANNING_STATE 10</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a8bfcf6e1a0a044aba26d728fb0c6a17a"> 53</a></span>&#160;<span class="preprocessor">#define HCI_CONNECT_IN_STATE 11</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a4bad48092981dffe97edb052f5ae08bd"> 54</a></span>&#160;<span class="preprocessor">#define HCI_REMOTE_NAME_STATE 12</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ae0a16d1cc0142186a20379b5c68bd1e0"> 55</a></span>&#160;<span class="preprocessor">#define HCI_CONNECTED_STATE 13</span></div>
<div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ad3500c7116f1bb564011dac09a387a5c"> 56</a></span>&#160;<span class="preprocessor">#define HCI_DISABLE_SCAN_STATE 14</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a20fc1ebfc3da8e048f6afe53330e6b8f"> 57</a></span>&#160;<span class="preprocessor">#define HCI_DONE_STATE 15</span></div>
<div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a31398eae2e433d1b7b39ea3d6d07cdd0"> 58</a></span>&#160;<span class="preprocessor">#define HCI_DISCONNECT_STATE 16</span></div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="comment">/* HCI event flags*/</span></div>
<div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a14087b750ea2da7f0cef4daaa7683d01"> 61</a></span>&#160;<span class="preprocessor">#define HCI_FLAG_CMD_COMPLETE (1UL &lt;&lt; 0)</span></div>
<div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a472a2cb241a6e13fa8f62d19b6c418bd"> 62</a></span>&#160;<span class="preprocessor">#define HCI_FLAG_CONNECT_COMPLETE (1UL &lt;&lt; 1)</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a094e0fa9b22cade79fe64a907aad5f2a"> 63</a></span>&#160;<span class="preprocessor">#define HCI_FLAG_DISCONNECT_COMPLETE (1UL &lt;&lt; 2)</span></div>
<div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a400af4b61f6e94ab821fa368d8bf2b07"> 64</a></span>&#160;<span class="preprocessor">#define HCI_FLAG_REMOTE_NAME_COMPLETE (1UL &lt;&lt; 3)</span></div>
<div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a0e8a8ce5838e265c1732795bf8822043"> 65</a></span>&#160;<span class="preprocessor">#define HCI_FLAG_INCOMING_REQUEST (1UL &lt;&lt; 4)</span></div>
<div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#aabbf8a2ed694a2dc4d4e60fd389c44dd"> 66</a></span>&#160;<span class="preprocessor">#define HCI_FLAG_READ_BDADDR (1UL &lt;&lt; 5)</span></div>
<div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ab3b1f616c1e885e697806f0167b73e8e"> 67</a></span>&#160;<span class="preprocessor">#define HCI_FLAG_READ_VERSION (1UL &lt;&lt; 6)</span></div>
<div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a5ac3c55b54eff968d2327185a7e644ba"> 68</a></span>&#160;<span class="preprocessor">#define HCI_FLAG_DEVICE_FOUND (1UL &lt;&lt; 7)</span></div>
<div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ad14762241e9195fc9a3b0a69ef1ab7f3"> 69</a></span>&#160;<span class="preprocessor">#define HCI_FLAG_CONNECT_EVENT (1UL &lt;&lt; 8)</span></div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="comment">/* Macros for HCI event flag tests */</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a57c7f989e9b561a6301a0d6f2268bfd5"> 72</a></span>&#160;<span class="preprocessor">#define hci_check_flag(flag) (hci_event_flag &amp; (flag))</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ada46cc57bb9134769989b1b18bdac525"> 73</a></span>&#160;<span class="preprocessor">#define hci_set_flag(flag) (hci_event_flag |= (flag))</span></div>
<div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a700e625eeda4ce1b35112721acbdfd19"> 74</a></span>&#160;<span class="preprocessor">#define hci_clear_flag(flag) (hci_event_flag &amp;= ~(flag))</span></div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="comment">/* HCI Events managed */</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a4c6ca5696adeab36258b3b0c58d804e0"> 77</a></span>&#160;<span class="preprocessor">#define EV_INQUIRY_COMPLETE 0x01</span></div>
<div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a335df6d48c8cac828d62196eeaff360b"> 78</a></span>&#160;<span class="preprocessor">#define EV_INQUIRY_RESULT 0x02</span></div>
<div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ad4bce42e1ef20447655f8916f23d07a7"> 79</a></span>&#160;<span class="preprocessor">#define EV_CONNECT_COMPLETE 0x03</span></div>
<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#af6c5584636f8958689f5cd67290254e1"> 80</a></span>&#160;<span class="preprocessor">#define EV_INCOMING_CONNECT 0x04</span></div>
<div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a1cf7e4d4426dcabed8976b65beee0d99"> 81</a></span>&#160;<span class="preprocessor">#define EV_DISCONNECT_COMPLETE 0x05</span></div>
<div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a68b8f78a0e0da80434afb1e6d40eacf4"> 82</a></span>&#160;<span class="preprocessor">#define EV_AUTHENTICATION_COMPLETE 0x06</span></div>
<div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a29c1744f72f3cd85865c8173eace5a36"> 83</a></span>&#160;<span class="preprocessor">#define EV_REMOTE_NAME_COMPLETE 0x07</span></div>
<div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#aa0bf5ac66c412d3415dbb753630d0e58"> 84</a></span>&#160;<span class="preprocessor">#define EV_ENCRYPTION_CHANGE 0x08</span></div>
<div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a3e107e9d07793ca5cfaeea8b2181d4a4"> 85</a></span>&#160;<span class="preprocessor">#define EV_CHANGE_CONNECTION_LINK 0x09</span></div>
<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ac61db50de3007a22e19e660bd7e68e69"> 86</a></span>&#160;<span class="preprocessor">#define EV_ROLE_CHANGED 0x12</span></div>
<div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a0987119cfc40f3011a2cec69686034df"> 87</a></span>&#160;<span class="preprocessor">#define EV_NUM_COMPLETE_PKT 0x13</span></div>
<div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a935633384e87daa14b60549134014ec4"> 88</a></span>&#160;<span class="preprocessor">#define EV_PIN_CODE_REQUEST 0x16</span></div>
<div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a8c77c922bb61301760ebf5af5f1cc7f0"> 89</a></span>&#160;<span class="preprocessor">#define EV_LINK_KEY_REQUEST 0x17</span></div>
<div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a8c662496af1164370e5fdf7149ecd842"> 90</a></span>&#160;<span class="preprocessor">#define EV_LINK_KEY_NOTIFICATION 0x18</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a6f8b4cf8546d9928a34c9c681dc5a6d5"> 91</a></span>&#160;<span class="preprocessor">#define EV_DATA_BUFFER_OVERFLOW 0x1A</span></div>
<div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a2ad6543cdfe06cbf0924c287c08f36d7"> 92</a></span>&#160;<span class="preprocessor">#define EV_MAX_SLOTS_CHANGE 0x1B</span></div>
<div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a830b2a3bcb09c4802910e8b05531d317"> 93</a></span>&#160;<span class="preprocessor">#define EV_READ_REMOTE_VERSION_INFORMATION_COMPLETE 0x0C</span></div>
<div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a1b58792b76e0f216df8160bf055032c3"> 94</a></span>&#160;<span class="preprocessor">#define EV_QOS_SETUP_COMPLETE 0x0D</span></div>
<div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a81b71e0ba648260143529b04ae84e528"> 95</a></span>&#160;<span class="preprocessor">#define EV_COMMAND_COMPLETE 0x0E</span></div>
<div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a090ee10cc1a1c1c3bbb29a93c330d2d4"> 96</a></span>&#160;<span class="preprocessor">#define EV_COMMAND_STATUS 0x0F</span></div>
<div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#acd5f65703cc34b112a1f656d9a49551b"> 97</a></span>&#160;<span class="preprocessor">#define EV_LOOPBACK_COMMAND 0x19</span></div>
<div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ad8481acc0b144d97017f8a06d63ff47c"> 98</a></span>&#160;<span class="preprocessor">#define EV_PAGE_SCAN_REP_MODE 0x20</span></div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="comment">/* Bluetooth states for the different Bluetooth drivers */</span></div>
<div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a15cc1db556ad9a4ec6144ca8a42f8919"> 101</a></span>&#160;<span class="preprocessor">#define L2CAP_WAIT 0</span></div>
<div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ae4da52ca67e1f8b977199b24e8f3a400"> 102</a></span>&#160;<span class="preprocessor">#define L2CAP_DONE 1</span></div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="comment">/* Used for HID Control channel */</span></div>
<div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a68bcdd68c269cd7970d5271a00bbe5fe"> 105</a></span>&#160;<span class="preprocessor">#define L2CAP_CONTROL_CONNECT_REQUEST 2</span></div>
<div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#aaaf733ee2c84bd8df4d24f2ae1f3b378"> 106</a></span>&#160;<span class="preprocessor">#define L2CAP_CONTROL_CONFIG_REQUEST 3</span></div>
<div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#abac08b5b24a1cd2b12517cd9aa6c616b"> 107</a></span>&#160;<span class="preprocessor">#define L2CAP_CONTROL_SUCCESS 4</span></div>
<div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a9b5140e7ca5941e5535c575255ffc1cc"> 108</a></span>&#160;<span class="preprocessor">#define L2CAP_CONTROL_DISCONNECT 5</span></div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="comment">/* Used for HID Interrupt channel */</span></div>
<div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ac7aa7fd7a8a34a6c9e420e3cb114737b"> 111</a></span>&#160;<span class="preprocessor">#define L2CAP_INTERRUPT_SETUP 6</span></div>
<div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#af0b913a7e9e54b1f6ab95d82bd36f954"> 112</a></span>&#160;<span class="preprocessor">#define L2CAP_INTERRUPT_CONNECT_REQUEST 7</span></div>
<div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a73e3a81d9a8850075fd10933acc5a035"> 113</a></span>&#160;<span class="preprocessor">#define L2CAP_INTERRUPT_CONFIG_REQUEST 8</span></div>
<div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ab569b2085ad29f41d1da9c0ed352bd65"> 114</a></span>&#160;<span class="preprocessor">#define L2CAP_INTERRUPT_DISCONNECT 9</span></div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="comment">/* Used for SDP channel */</span></div>
<div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a72444116eaac116983a3dec35b1944f0"> 117</a></span>&#160;<span class="preprocessor">#define L2CAP_SDP_WAIT 10</span></div>
<div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a1b8e3e654e4f55e27ca5054aef956edc"> 118</a></span>&#160;<span class="preprocessor">#define L2CAP_SDP_SUCCESS 11</span></div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="comment">/* Used for RFCOMM channel */</span></div>
<div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a0b7cbe1aa26664847a48bd4578bc50bd"> 121</a></span>&#160;<span class="preprocessor">#define L2CAP_RFCOMM_WAIT 12</span></div>
<div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a75321d181cfa3c485bcd96918c1b353e"> 122</a></span>&#160;<span class="preprocessor">#define L2CAP_RFCOMM_SUCCESS 13</span></div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div>
<div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#adf2585ad5d49cf2df2595d860ad6b258"> 124</a></span>&#160;<span class="preprocessor">#define L2CAP_DISCONNECT_RESPONSE 14 // Used for both SDP and RFCOMM channel</span></div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div>
<div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#adf2585ad5d49cf2df2595d860ad6b258"> 126</a></span>&#160;<span class="preprocessor">#define L2CAP_DISCONNECT_RESPONSE 14 // Used for both SDP and RFCOMM channel</span></div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="comment">/* Bluetooth states used by some drivers */</span></div>
<div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a6b3038e881952934873fd533de842670"> 129</a></span>&#160;<span class="preprocessor">#define TURN_ON_LED 17</span></div>
<div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#aa25fc1cab2e76831c39705932cf1d828"> 130</a></span>&#160;<span class="preprocessor">#define PS3_ENABLE_SIXAXIS 18</span></div>
<div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a11b0db0910ac44ec8b090647d6a71088"> 131</a></span>&#160;<span class="preprocessor">#define WII_CHECK_MOTION_PLUS_STATE 19</span></div>
<div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a990925c3f1ef4962db33ab74d79976e8"> 132</a></span>&#160;<span class="preprocessor">#define WII_CHECK_EXTENSION_STATE 20</span></div>
<div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#acdcb0586ca7e9d357279bf4fba8b5257"> 133</a></span>&#160;<span class="preprocessor">#define WII_INIT_MOTION_PLUS_STATE 21</span></div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="comment">/* L2CAP event flags for HID Control channel */</span></div>
<div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a969a1ee84797f3ee5006c41f67373f96"> 136</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_CONNECTION_CONTROL_REQUEST 0x00000001</span></div>
<div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a0c444d5d06ec604820d426556c2f38d7"> 137</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_CONFIG_CONTROL_SUCCESS 0x00000002</span></div>
<div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a2e5a9c283f0912833f3e0418d3feadd7"> 138</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_CONTROL_CONNECTED 0x00000004</span></div>
<div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a27057737ae0b2246442511c01eeed192"> 139</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_DISCONNECT_CONTROL_RESPONSE 0x00000008</span></div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="comment">/* L2CAP event flags for HID Interrupt channel */</span></div>
<div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a015f3b25bd7a2908c84b973dec453f45"> 142</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_CONNECTION_INTERRUPT_REQUEST 0x00000010</span></div>
<div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a2b3cdcd3124251a40ce825da0d8dcb6f"> 143</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_CONFIG_INTERRUPT_SUCCESS 0x00000020</span></div>
<div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#aad823543553cc7500ac49d7479eb858f"> 144</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_INTERRUPT_CONNECTED 0x00000040</span></div>
<div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#acc096a05301f3cbdece4ad372cc149c3"> 145</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_DISCONNECT_INTERRUPT_RESPONSE 0x00000080</span></div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="comment">/* L2CAP event flags for SDP channel */</span></div>
<div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a0d649771ff995585c2bff030b7c1a2d3"> 148</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_CONNECTION_SDP_REQUEST 0x00000100</span></div>
<div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a75ef214ce8a03e8d62a1b24554bc1a05"> 149</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_CONFIG_SDP_SUCCESS 0x00000200</span></div>
<div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#aac25fa1de5df70a97a6ccc6267d65fea"> 150</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_DISCONNECT_SDP_REQUEST 0x00000400</span></div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="comment">/* L2CAP event flags for RFCOMM channel */</span></div>
<div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a61b15e54b1c5f9a28c996ae8e04ca3c0"> 153</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_CONNECTION_RFCOMM_REQUEST 0x00000800</span></div>
<div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a8af4ce4d4c42d85f0d84a514354fc570"> 154</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_CONFIG_RFCOMM_SUCCESS 0x00001000</span></div>
<div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a9da70c702c0b792d99f8e39713ac0ee7"> 155</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_DISCONNECT_RFCOMM_REQUEST 0x00002000</span></div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="comment">/* Bluetooth states used by some drivers */</span></div>
<div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a6b3038e881952934873fd533de842670"> 127</a></span>&#160;<span class="preprocessor">#define TURN_ON_LED 17</span></div>
<div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#aa25fc1cab2e76831c39705932cf1d828"> 128</a></span>&#160;<span class="preprocessor">#define PS3_ENABLE_SIXAXIS 18</span></div>
<div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a11b0db0910ac44ec8b090647d6a71088"> 129</a></span>&#160;<span class="preprocessor">#define WII_CHECK_MOTION_PLUS_STATE 19</span></div>
<div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a990925c3f1ef4962db33ab74d79976e8"> 130</a></span>&#160;<span class="preprocessor">#define WII_CHECK_EXTENSION_STATE 20</span></div>
<div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#acdcb0586ca7e9d357279bf4fba8b5257"> 131</a></span>&#160;<span class="preprocessor">#define WII_INIT_MOTION_PLUS_STATE 21</span></div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="comment">/* L2CAP event flags for HID Control channel */</span></div>
<div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a969a1ee84797f3ee5006c41f67373f96"> 134</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_CONNECTION_CONTROL_REQUEST (1UL &lt;&lt; 0)</span></div>
<div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a0c444d5d06ec604820d426556c2f38d7"> 135</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_CONFIG_CONTROL_SUCCESS (1UL &lt;&lt; 1)</span></div>
<div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a2e5a9c283f0912833f3e0418d3feadd7"> 136</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_CONTROL_CONNECTED (1UL &lt;&lt; 2)</span></div>
<div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a27057737ae0b2246442511c01eeed192"> 137</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_DISCONNECT_CONTROL_RESPONSE (1UL &lt;&lt; 3)</span></div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="comment">/* L2CAP event flags for HID Interrupt channel */</span></div>
<div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a015f3b25bd7a2908c84b973dec453f45"> 140</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_CONNECTION_INTERRUPT_REQUEST (1UL &lt;&lt; 4)</span></div>
<div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a2b3cdcd3124251a40ce825da0d8dcb6f"> 141</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_CONFIG_INTERRUPT_SUCCESS (1UL &lt;&lt; 5)</span></div>
<div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#aad823543553cc7500ac49d7479eb858f"> 142</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_INTERRUPT_CONNECTED (1UL &lt;&lt; 6)</span></div>
<div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#acc096a05301f3cbdece4ad372cc149c3"> 143</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_DISCONNECT_INTERRUPT_RESPONSE (1UL &lt;&lt; 7)</span></div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;<span class="comment">/* L2CAP event flags for SDP channel */</span></div>
<div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a0d649771ff995585c2bff030b7c1a2d3"> 146</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_CONNECTION_SDP_REQUEST (1UL &lt;&lt; 8)</span></div>
<div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a75ef214ce8a03e8d62a1b24554bc1a05"> 147</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_CONFIG_SDP_SUCCESS (1UL &lt;&lt; 9)</span></div>
<div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#aac25fa1de5df70a97a6ccc6267d65fea"> 148</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_DISCONNECT_SDP_REQUEST (1UL &lt;&lt; 10)</span></div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;<span class="comment">/* L2CAP event flags for RFCOMM channel */</span></div>
<div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a61b15e54b1c5f9a28c996ae8e04ca3c0"> 151</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_CONNECTION_RFCOMM_REQUEST (1UL &lt;&lt; 11)</span></div>
<div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a8af4ce4d4c42d85f0d84a514354fc570"> 152</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_CONFIG_RFCOMM_SUCCESS (1UL &lt;&lt; 12)</span></div>
<div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a9da70c702c0b792d99f8e39713ac0ee7"> 153</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_DISCONNECT_RFCOMM_REQUEST (1UL &lt;&lt; 13)</span></div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div>
<div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ae16d9fcc820433592ba171c8b2a9e25d"> 155</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_DISCONNECT_RESPONSE (1UL &lt;&lt; 14)</span></div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div>
<div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ae16d9fcc820433592ba171c8b2a9e25d"> 157</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_DISCONNECT_RESPONSE 0x00004000</span></div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;<span class="comment">/* Macros for L2CAP event flag tests */</span></div>
<div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8"> 160</a></span>&#160;<span class="preprocessor">#define l2cap_check_flag(flag) (l2cap_event_flag &amp; (flag))</span></div>
<div class="line"><a name="l00161"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a5f035450f226204f021e69ad1faa2e3a"> 161</a></span>&#160;<span class="preprocessor">#define l2cap_set_flag(flag) (l2cap_event_flag |= (flag))</span></div>
<div class="line"><a name="l00162"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ab7cbb63a22e09b8d1c63a754c4280f7f"> 162</a></span>&#160;<span class="preprocessor">#define l2cap_clear_flag(flag) (l2cap_event_flag &amp;= ~(flag))</span></div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;<span class="comment">/* L2CAP signaling commands */</span></div>
<div class="line"><a name="l00165"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a6ffcd72787c86f248192eb06a3fe18cb"> 165</a></span>&#160;<span class="preprocessor">#define L2CAP_CMD_COMMAND_REJECT 0x01</span></div>
<div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ac4bae0c65fd00ed849cb226302d19c85"> 166</a></span>&#160;<span class="preprocessor">#define L2CAP_CMD_CONNECTION_REQUEST 0x02</span></div>
<div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#aef7b306479de265d725dbe5816a8227b"> 167</a></span>&#160;<span class="preprocessor">#define L2CAP_CMD_CONNECTION_RESPONSE 0x03</span></div>
<div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a48bcd73461d736d0ef889e1fe6e36f69"> 168</a></span>&#160;<span class="preprocessor">#define L2CAP_CMD_CONFIG_REQUEST 0x04</span></div>
<div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a8151b1fe5d940a5a7a34f43a8b8ce434"> 169</a></span>&#160;<span class="preprocessor">#define L2CAP_CMD_CONFIG_RESPONSE 0x05</span></div>
<div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a398676a2e9a2351a5a52afdddf4b660b"> 170</a></span>&#160;<span class="preprocessor">#define L2CAP_CMD_DISCONNECT_REQUEST 0x06</span></div>
<div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a4c64a41200714e457b397496183dc0e4"> 171</a></span>&#160;<span class="preprocessor">#define L2CAP_CMD_DISCONNECT_RESPONSE 0x07</span></div>
<div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a200eb6c7c905ec74a9daf0f262af0448"> 172</a></span>&#160;<span class="preprocessor">#define L2CAP_CMD_INFORMATION_REQUEST 0x0A</span></div>
<div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#af32d4c53927d596a8727ff232310dec1"> 173</a></span>&#160;<span class="preprocessor">#define L2CAP_CMD_INFORMATION_RESPONSE 0x0B</span></div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<span class="comment">// Used For Connection Response - Remember to Include High Byte</span></div>
<div class="line"><a name="l00176"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a9960d0d5ae92fc92c70bbb84c2a5c0cc"> 176</a></span>&#160;<span class="preprocessor">#define PENDING 0x01</span></div>
<div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a1be7a56cdddcdb7dedf16d4dee381e93"> 177</a></span>&#160;<span class="preprocessor">#define SUCCESSFUL 0x00</span></div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="comment">/* Bluetooth L2CAP PSM - see http://www.bluetooth.org/Technical/AssignedNumbers/logical_link.htm */</span></div>
<div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a25ce859d7ee2730e1d22d11c051ed60d"> 180</a></span>&#160;<span class="preprocessor">#define SDP_PSM 0x01 // Service Discovery Protocol PSM Value</span></div>
<div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a2924020f2e7e82fe956574538e2bc3eb"> 181</a></span>&#160;<span class="preprocessor">#define RFCOMM_PSM 0x03 // RFCOMM PSM Value</span></div>
<div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a1465673868452307bcdab8e201430c27"> 182</a></span>&#160;<span class="preprocessor">#define HID_CTRL_PSM 0x11 // HID_Control PSM Value</span></div>
<div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a4c5ac96db74d61d4a5a5d945a400e7da"> 183</a></span>&#160;<span class="preprocessor">#define HID_INTR_PSM 0x13 // HID_Interrupt PSM Value</span></div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;<span class="comment">// Used to determine if it is a Bluetooth dongle</span></div>
<div class="line"><a name="l00186"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a177fe269ddb7979d99b76d52bc281551"> 186</a></span>&#160;<span class="preprocessor">#define WI_SUBCLASS_RF 0x01 // RF Controller</span></div>
<div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a05903a9351c5ced6b8be27b2869e62af"> 187</a></span>&#160;<span class="preprocessor">#define WI_PROTOCOL_BT 0x01 // Bluetooth Programming Interface</span></div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div>
<div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#aee41c4878894db24e7ad8cd6246595cd"> 189</a></span>&#160;<span class="preprocessor">#define BTD_MAX_ENDPOINTS 4</span></div>
<div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#afeaafddda417fd2f053dbd476332ea19"> 190</a></span>&#160;<span class="preprocessor">#define BTD_NUM_SERVICES 4 // Max number of Bluetooth services - if you need more than 4 simply increase this number</span></div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;<span class="comment">/* Macros for L2CAP event flag tests */</span></div>
<div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8"> 158</a></span>&#160;<span class="preprocessor">#define l2cap_check_flag(flag) (l2cap_event_flag &amp; (flag))</span></div>
<div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a5f035450f226204f021e69ad1faa2e3a"> 159</a></span>&#160;<span class="preprocessor">#define l2cap_set_flag(flag) (l2cap_event_flag |= (flag))</span></div>
<div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ab7cbb63a22e09b8d1c63a754c4280f7f"> 160</a></span>&#160;<span class="preprocessor">#define l2cap_clear_flag(flag) (l2cap_event_flag &amp;= ~(flag))</span></div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="comment">/* L2CAP signaling commands */</span></div>
<div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a6ffcd72787c86f248192eb06a3fe18cb"> 163</a></span>&#160;<span class="preprocessor">#define L2CAP_CMD_COMMAND_REJECT 0x01</span></div>
<div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ac4bae0c65fd00ed849cb226302d19c85"> 164</a></span>&#160;<span class="preprocessor">#define L2CAP_CMD_CONNECTION_REQUEST 0x02</span></div>
<div class="line"><a name="l00165"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#aef7b306479de265d725dbe5816a8227b"> 165</a></span>&#160;<span class="preprocessor">#define L2CAP_CMD_CONNECTION_RESPONSE 0x03</span></div>
<div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a48bcd73461d736d0ef889e1fe6e36f69"> 166</a></span>&#160;<span class="preprocessor">#define L2CAP_CMD_CONFIG_REQUEST 0x04</span></div>
<div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a8151b1fe5d940a5a7a34f43a8b8ce434"> 167</a></span>&#160;<span class="preprocessor">#define L2CAP_CMD_CONFIG_RESPONSE 0x05</span></div>
<div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a398676a2e9a2351a5a52afdddf4b660b"> 168</a></span>&#160;<span class="preprocessor">#define L2CAP_CMD_DISCONNECT_REQUEST 0x06</span></div>
<div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a4c64a41200714e457b397496183dc0e4"> 169</a></span>&#160;<span class="preprocessor">#define L2CAP_CMD_DISCONNECT_RESPONSE 0x07</span></div>
<div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a200eb6c7c905ec74a9daf0f262af0448"> 170</a></span>&#160;<span class="preprocessor">#define L2CAP_CMD_INFORMATION_REQUEST 0x0A</span></div>
<div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#af32d4c53927d596a8727ff232310dec1"> 171</a></span>&#160;<span class="preprocessor">#define L2CAP_CMD_INFORMATION_RESPONSE 0x0B</span></div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;<span class="comment">// Used For Connection Response - Remember to Include High Byte</span></div>
<div class="line"><a name="l00174"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a9960d0d5ae92fc92c70bbb84c2a5c0cc"> 174</a></span>&#160;<span class="preprocessor">#define PENDING 0x01</span></div>
<div class="line"><a name="l00175"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a1be7a56cdddcdb7dedf16d4dee381e93"> 175</a></span>&#160;<span class="preprocessor">#define SUCCESSFUL 0x00</span></div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;</div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;<span class="comment">/* Bluetooth L2CAP PSM - see http://www.bluetooth.org/Technical/AssignedNumbers/logical_link.htm */</span></div>
<div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a25ce859d7ee2730e1d22d11c051ed60d"> 178</a></span>&#160;<span class="preprocessor">#define SDP_PSM 0x01 // Service Discovery Protocol PSM Value</span></div>
<div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a2924020f2e7e82fe956574538e2bc3eb"> 179</a></span>&#160;<span class="preprocessor">#define RFCOMM_PSM 0x03 // RFCOMM PSM Value</span></div>
<div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a1465673868452307bcdab8e201430c27"> 180</a></span>&#160;<span class="preprocessor">#define HID_CTRL_PSM 0x11 // HID_Control PSM Value</span></div>
<div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a4c5ac96db74d61d4a5a5d945a400e7da"> 181</a></span>&#160;<span class="preprocessor">#define HID_INTR_PSM 0x13 // HID_Interrupt PSM Value</span></div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="comment">// Used to determine if it is a Bluetooth dongle</span></div>
<div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a177fe269ddb7979d99b76d52bc281551"> 184</a></span>&#160;<span class="preprocessor">#define WI_SUBCLASS_RF 0x01 // RF Controller</span></div>
<div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a05903a9351c5ced6b8be27b2869e62af"> 185</a></span>&#160;<span class="preprocessor">#define WI_PROTOCOL_BT 0x01 // Bluetooth Programming Interface</span></div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div>
<div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#aee41c4878894db24e7ad8cd6246595cd"> 187</a></span>&#160;<span class="preprocessor">#define BTD_MAX_ENDPOINTS 4</span></div>
<div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#afeaafddda417fd2f053dbd476332ea19"> 188</a></span>&#160;<span class="preprocessor">#define BTD_NUM_SERVICES 4 // Max number of Bluetooth services - if you need more than 4 simply increase this number</span></div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div>
<div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a8f0b5b0dedaf5c25c4887f03ebfdd425"> 190</a></span>&#160;<span class="preprocessor">#define PAIR 1</span></div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div>
<div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a8f0b5b0dedaf5c25c4887f03ebfdd425"> 192</a></span>&#160;<span class="preprocessor">#define PAIR 1</span></div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;<span class="keyword">class </span><a class="code" href="class_bluetooth_service.html">BluetoothService</a>;</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;</div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<span class="comment">/* acl_handle_ok or it&#39;s a new connection */</span></div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="preprocessor">#if 0</span></div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;<span class="preprocessor">#define UHS_ACL_HANDLE_OK(x, y) ((uint16_t)(x[0]) | (uint16_t)(x[1] &lt;&lt; 8)) == (y | 0x2000U)</span></div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;<span class="comment"> * Better implementation.</span></div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="comment"> * o One place for this code, it is reused four times in the source.</span></div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;<span class="comment"> * Perhaps it is better as a function.</span></div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;<span class="comment"> * o This should be faster since the &amp;&amp; operation can early exit, this means</span></div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="comment"> * the shift would only be performed if the first byte matches.</span></div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;<span class="comment"> * o Casting is eliminated.</span></div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;<span class="comment"> * o How does this compare in code size? No difference. It is a free optimization.</span></div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00207"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a3aa6623f7fa8839754d3deefa6d60372"> 207</a></span>&#160;<span class="preprocessor">#define UHS_ACL_HANDLE_OK(x, y) ((x[0] == (y &amp; 0xff)) &amp;&amp; (x[1] == ((y &gt;&gt; 8) | 0x20)))</span></div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div>
<div class="line"><a name="l00211"></a><span class="lineno"><a class="line" href="class_bluetooth_service.html"> 211</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_bluetooth_service.html">BluetoothService</a> {</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_bluetooth_service.html#a8dc98310fe481357eaa86c53e49af113">ACLData</a>(uint8_t* <a class="code" href="class_bluetooth_service.html#a8dc98310fe481357eaa86c53e49af113">ACLData</a>);</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_bluetooth_service.html#a680692ff13cb37eb81ddbb74bc9e0383">Run</a>();</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_bluetooth_service.html#a1dff7caf251f1d8a5f358b368445cb48">Reset</a>();</div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_bluetooth_service.html#a66ee2f09c6087b82e3920c3d652a99b2">disconnect</a>();</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;};</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;</div>
<div class="line"><a name="l00230"></a><span class="lineno"><a class="line" href="class_b_t_d.html"> 230</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_b_t_d.html">BTD</a> : <span class="keyword">public</span> <a class="code" href="class_u_s_b_device_config.html">USBDeviceConfig</a>, <span class="keyword">public</span> <a class="code" href="class_usb_config_xtracter.html">UsbConfigXtracter</a> {</div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <a class="code" href="class_b_t_d.html#a5f07597fe15a2b917cce405fe87f2981">BTD</a>(<a class="code" href="class_u_s_b.html">USB</a> *p);</div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;</div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_b_t_d.html#a4f1808a49e9aca397ba829fac16dc5c3">ConfigureDevice</a>(uint8_t parent, uint8_t port, <span class="keywordtype">bool</span> lowspeed);</div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_b_t_d.html#a48608619d8253972dd132edbb3001c5f">Init</a>(uint8_t parent, uint8_t port, <span class="keywordtype">bool</span> lowspeed);</div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_b_t_d.html#aa87c23bce56a20f2db47c6a40c8eda87">Release</a>();</div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_b_t_d.html#a76e201c5b561e3a6d0405894ba5c2e41">Poll</a>();</div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;</div>
<div class="line"><a name="l00270"></a><span class="lineno"><a class="line" href="class_b_t_d.html#aecdd9d00fc9c12bb3677ed213a6687c3"> 270</a></span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_b_t_d.html#aecdd9d00fc9c12bb3677ed213a6687c3">GetAddress</a>() {</div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_b_t_d.html#a58f78a9a28db81858dcc34a32a2ec82c">bAddress</a>;</div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; };</div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;</div>
<div class="line"><a name="l00278"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a1b2440748bdaaeb552a05b0f0902f5d8"> 278</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_b_t_d.html#a1b2440748bdaaeb552a05b0f0902f5d8">isReady</a>() {</div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="keywordflow">return</span> bPollEnable;</div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; };</div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;</div>
<div class="line"><a name="l00287"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a8760371377c1ba08292b6cc71824754e"> 287</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">boolean</span> <a class="code" href="class_b_t_d.html#a8760371377c1ba08292b6cc71824754e">DEVCLASSOK</a>(uint8_t klass) {</div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keywordflow">return</span> (klass == <a class="code" href="_usb_core_8h.html#afce880b09049d7105f8e68ff36d9ad17">USB_CLASS_WIRELESS_CTRL</a>);</div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; };</div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;</div>
<div class="line"><a name="l00298"></a><span class="lineno"><a class="line" href="class_b_t_d.html#adf5dce0907ea33c919908fea5dc0cf21"> 298</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">boolean</span> <a class="code" href="class_b_t_d.html#adf5dce0907ea33c919908fea5dc0cf21">VIDPIDOK</a>(uint16_t vid, uint16_t pid) {</div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keywordflow">if</span>(vid == <a class="code" href="_b_t_d_8h.html#a6a28bb0589fbe2da75b238d7568d894d">IOGEAR_GBU521_VID</a> &amp;&amp; pid == <a class="code" href="_b_t_d_8h.html#aed4a7c4ebf618412176ef19023454fad">IOGEAR_GBU521_PID</a>)</div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_b_t_d.html#a1f8e9171a310e50f2c4a3c19066efe5a">my_bdaddr</a>[0] != 0x00 || <a class="code" href="class_b_t_d.html#a1f8e9171a310e50f2c4a3c19066efe5a">my_bdaddr</a>[1] != 0x00 || <a class="code" href="class_b_t_d.html#a1f8e9171a310e50f2c4a3c19066efe5a">my_bdaddr</a>[2] != 0x00 || <a class="code" href="class_b_t_d.html#a1f8e9171a310e50f2c4a3c19066efe5a">my_bdaddr</a>[3] != 0x00 || <a class="code" href="class_b_t_d.html#a1f8e9171a310e50f2c4a3c19066efe5a">my_bdaddr</a>[4] != 0x00 || <a class="code" href="class_b_t_d.html#a1f8e9171a310e50f2c4a3c19066efe5a">my_bdaddr</a>[5] != 0x00) { <span class="comment">// Check if Bluetooth address is set</span></div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="keywordflow">if</span>(vid == <a class="code" href="_b_t_d_8h.html#a5bb06f989db583d290ba79642d37c514">PS3_VID</a> &amp;&amp; (pid == <a class="code" href="_b_t_d_8h.html#a0ae276efa5e73a4da658c714e70402c0">PS3_PID</a> || pid == <a class="code" href="_b_t_d_8h.html#a54903b410722a45f8246653cd4d00632">PS3NAVIGATION_PID</a> || pid == <a class="code" href="_b_t_d_8h.html#afc242b8a1b867f79c49ad78e3a47b37f">PS3MOVE_PID</a>))</div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; }</div>
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; };</div>
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a23928cd0e5711a2433aec763cfa55773">EndpointXtract</a>(uint8_t conf, uint8_t iface, uint8_t alt, uint8_t proto, <span class="keyword">const</span> <a class="code" href="struct_u_s_b___e_n_d_p_o_i_n_t___d_e_s_c_r_i_p_t_o_r.html">USB_ENDPOINT_DESCRIPTOR</a> *ep);</div>
<div class="line"><a name="l00322"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a610183f9ddf04155ef2612d1839af7da"> 322</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a610183f9ddf04155ef2612d1839af7da">disconnect</a>() {</div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <span class="keywordflow">for</span>(uint8_t i = 0; i &lt; <a class="code" href="_b_t_d_8h.html#afeaafddda417fd2f053dbd476332ea19">BTD_NUM_SERVICES</a>; i++)</div>
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <span class="keywordflow">if</span>(btService[i])</div>
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; btService[i]-&gt;<a class="code" href="class_bluetooth_service.html#a66ee2f09c6087b82e3920c3d652a99b2">disconnect</a>();</div>
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; };</div>
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;</div>
<div class="line"><a name="l00333"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a4adfc7e51ad3b3c03e7c37d1af159e73"> 333</a></span>&#160; int8_t <a class="code" href="class_b_t_d.html#a4adfc7e51ad3b3c03e7c37d1af159e73">registerServiceClass</a>(<a class="code" href="class_bluetooth_service.html">BluetoothService</a> *pService) {</div>
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="keywordflow">for</span>(uint8_t i = 0; i &lt; <a class="code" href="_b_t_d_8h.html#afeaafddda417fd2f053dbd476332ea19">BTD_NUM_SERVICES</a>; i++) {</div>
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <span class="keywordflow">if</span>(!btService[i]) {</div>
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; btService[i] = pService;</div>
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <span class="keywordflow">return</span> i; <span class="comment">// Return ID</span></div>
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; }</div>
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; }</div>
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <span class="keywordflow">return</span> -1; <span class="comment">// ErrorregisterServiceClass</span></div>
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; };</div>
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;</div>
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#af11ad71d20783d46fe42dd405d10dfda">HCI_Command</a>(uint8_t* data, uint16_t nbytes);</div>
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#ae6f942eabd29257bc4896e5f263275b6">hci_reset</a>();</div>
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#acb94a629477d85cebd16a9c5ecd4a8b3">hci_read_bdaddr</a>();</div>
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#ae2ba215b6942f4131e4c5fdef2771e22">hci_read_local_version_information</a>();</div>
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a9a6747d58951f53389922d80e25b886c">hci_set_local_name</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* name);</div>
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a7dd7faaec1d3d9a1d8159cc2a4190977">hci_write_scan_enable</a>();</div>
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#aff59ab45d917406141ae0c9c79047f08">hci_write_scan_disable</a>();</div>
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a8767529bd203c549348a38ac9c6682b3">hci_remote_name</a>();</div>
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a1cb07a155c69bb1fcf45ae030b8947ec">hci_accept_connection</a>();</div>
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a1bea5dd793a2f47006b4a7642efc9e56">hci_disconnect</a>(uint16_t handle);</div>
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a70047b0f624c3f0ef29f8b76b8a34938">hci_pin_code_request_reply</a>();</div>
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a7114d2cb62aa413e5ecb25c45c76832b">hci_pin_code_negative_request_reply</a>();</div>
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#af4d28b9c1a3b9688a1871610caee2cfc">hci_link_key_request_negative_reply</a>();</div>
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#addd07c18c725a324a05792a83026d36d">hci_authentication_request</a>();</div>
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a678f2c995553ce6a9f48f9b59f2f1555">hci_inquiry</a>();</div>
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a45ffbc7a40bbb763b0ece907c3dfc9ff">hci_inquiry_cancel</a>();</div>
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#ae7066ea743f8907708db945ebef3ad76">hci_connect</a>();</div>
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#ae7066ea743f8907708db945ebef3ad76">hci_connect</a>(uint8_t *bdaddr);</div>
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a9a17405df60591b909ff1502fb8f3141">hci_write_class_of_device</a>();</div>
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#aad7d8ef46e60b48ff4aaabefb0b290e7">L2CAP_Command</a>(uint16_t handle, uint8_t* data, uint8_t nbytes, uint8_t channelLow = 0x01, uint8_t channelHigh = 0x00);</div>
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a55cf412a2053972a353b1ab964ca9d3e">l2cap_connection_request</a>(uint16_t handle, uint8_t rxid, uint8_t* scid, uint16_t psm);</div>
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a7d34c62b1d561679dea5cd27356b38a7">l2cap_connection_response</a>(uint16_t handle, uint8_t rxid, uint8_t* dcid, uint8_t* scid, uint8_t result);</div>
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#ab646a59311344966f139bb3b78f30233">l2cap_config_request</a>(uint16_t handle, uint8_t rxid, uint8_t* dcid);</div>
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a792ac4529b65235698ecf3d37982c05e">l2cap_config_response</a>(uint16_t handle, uint8_t rxid, uint8_t* scid);</div>
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#ac7053ef7ac690be3afbbdd985b163f10">l2cap_disconnection_request</a>(uint16_t handle, uint8_t rxid, uint8_t* dcid, uint8_t* scid);</div>
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a29d176d9194e5c92fbe54791fc245407">l2cap_disconnection_response</a>(uint16_t handle, uint8_t rxid, uint8_t* dcid, uint8_t* scid);</div>
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a91f61915c503fe7b861c88f5b3e6733c">l2cap_information_response</a>(uint16_t handle, uint8_t rxid, uint8_t infoTypeLow, uint8_t infoTypeHigh);</div>
<div class="line"><a name="l00471"></a><span class="lineno"><a class="line" href="class_b_t_d.html#aa7735da01865bab01b569ee836173737"> 471</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_b_t_d.html#aa7735da01865bab01b569ee836173737">watingForConnection</a>;</div>
<div class="line"><a name="l00473"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a0f1c28a03bcbe62cc7c083f97ea27594"> 473</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_b_t_d.html#a0f1c28a03bcbe62cc7c083f97ea27594">l2capConnectionClaimed</a>;</div>
<div class="line"><a name="l00475"></a><span class="lineno"><a class="line" href="class_b_t_d.html#af5e5b085cec1da5c83c75e80e95b3590"> 475</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_b_t_d.html#af5e5b085cec1da5c83c75e80e95b3590">sdpConnectionClaimed</a>;</div>
<div class="line"><a name="l00477"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a9e5a34242007b64cd6a226cfd1901e74"> 477</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_b_t_d.html#a9e5a34242007b64cd6a226cfd1901e74">rfcommConnectionClaimed</a>;</div>
<div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="class_b_t_d.html"> 198</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_b_t_d.html">BTD</a> : <span class="keyword">public</span> <a class="code" href="class_u_s_b_device_config.html">USBDeviceConfig</a>, <span class="keyword">public</span> <a class="code" href="class_usb_config_xtracter.html">UsbConfigXtracter</a> {</div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <a class="code" href="class_b_t_d.html#a5f07597fe15a2b917cce405fe87f2981">BTD</a>(<a class="code" href="class_u_s_b.html">USB</a> *p);</div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; uint8_t <a class="code" href="class_b_t_d.html#a4f1808a49e9aca397ba829fac16dc5c3">ConfigureDevice</a>(uint8_t parent, uint8_t port, <span class="keywordtype">bool</span> lowspeed);</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; uint8_t <a class="code" href="class_b_t_d.html#a48608619d8253972dd132edbb3001c5f">Init</a>(uint8_t parent, uint8_t port, <span class="keywordtype">bool</span> lowspeed);</div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; uint8_t <a class="code" href="class_b_t_d.html#aa87c23bce56a20f2db47c6a40c8eda87">Release</a>();</div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; uint8_t <a class="code" href="class_b_t_d.html#a76e201c5b561e3a6d0405894ba5c2e41">Poll</a>();</div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;</div>
<div class="line"><a name="l00238"></a><span class="lineno"><a class="line" href="class_b_t_d.html#aecdd9d00fc9c12bb3677ed213a6687c3"> 238</a></span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_b_t_d.html#aecdd9d00fc9c12bb3677ed213a6687c3">GetAddress</a>() {</div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_b_t_d.html#a58f78a9a28db81858dcc34a32a2ec82c">bAddress</a>;</div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; };</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;</div>
<div class="line"><a name="l00246"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a1b2440748bdaaeb552a05b0f0902f5d8"> 246</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_b_t_d.html#a1b2440748bdaaeb552a05b0f0902f5d8">isReady</a>() {</div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keywordflow">return</span> bPollEnable;</div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; };</div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;</div>
<div class="line"><a name="l00255"></a><span class="lineno"><a class="line" href="class_b_t_d.html#af2cd7fd7592348f26c78e49b40e83935"> 255</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_b_t_d.html#af2cd7fd7592348f26c78e49b40e83935">DEVCLASSOK</a>(uint8_t klass) {</div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keywordflow">return</span> (klass == <a class="code" href="_usb_core_8h.html#afce880b09049d7105f8e68ff36d9ad17">USB_CLASS_WIRELESS_CTRL</a>);</div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; };</div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;</div>
<div class="line"><a name="l00266"></a><span class="lineno"><a class="line" href="class_b_t_d.html#ae0808ebf7578fc022b8f05c8779d3102"> 266</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_b_t_d.html#ae0808ebf7578fc022b8f05c8779d3102">VIDPIDOK</a>(uint16_t vid, uint16_t pid) {</div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keywordflow">if</span>(vid == <a class="code" href="_b_t_d_8h.html#a6a28bb0589fbe2da75b238d7568d894d">IOGEAR_GBU521_VID</a> &amp;&amp; pid == <a class="code" href="_b_t_d_8h.html#aed4a7c4ebf618412176ef19023454fad">IOGEAR_GBU521_PID</a>)</div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_b_t_d.html#a1f8e9171a310e50f2c4a3c19066efe5a">my_bdaddr</a>[0] != 0x00 || <a class="code" href="class_b_t_d.html#a1f8e9171a310e50f2c4a3c19066efe5a">my_bdaddr</a>[1] != 0x00 || <a class="code" href="class_b_t_d.html#a1f8e9171a310e50f2c4a3c19066efe5a">my_bdaddr</a>[2] != 0x00 || <a class="code" href="class_b_t_d.html#a1f8e9171a310e50f2c4a3c19066efe5a">my_bdaddr</a>[3] != 0x00 || <a class="code" href="class_b_t_d.html#a1f8e9171a310e50f2c4a3c19066efe5a">my_bdaddr</a>[4] != 0x00 || <a class="code" href="class_b_t_d.html#a1f8e9171a310e50f2c4a3c19066efe5a">my_bdaddr</a>[5] != 0x00) { <span class="comment">// Check if Bluetooth address is set</span></div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="keywordflow">if</span>(vid == <a class="code" href="_b_t_d_8h.html#a5bb06f989db583d290ba79642d37c514">PS3_VID</a> &amp;&amp; (pid == <a class="code" href="_b_t_d_8h.html#a0ae276efa5e73a4da658c714e70402c0">PS3_PID</a> || pid == <a class="code" href="_b_t_d_8h.html#a54903b410722a45f8246653cd4d00632">PS3NAVIGATION_PID</a> || pid == <a class="code" href="_b_t_d_8h.html#afc242b8a1b867f79c49ad78e3a47b37f">PS3MOVE_PID</a>))</div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; }</div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; };</div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a23928cd0e5711a2433aec763cfa55773">EndpointXtract</a>(uint8_t conf, uint8_t iface, uint8_t alt, uint8_t proto, <span class="keyword">const</span> <a class="code" href="struct_u_s_b___e_n_d_p_o_i_n_t___d_e_s_c_r_i_p_t_o_r.html">USB_ENDPOINT_DESCRIPTOR</a> *ep);</div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a610183f9ddf04155ef2612d1839af7da">disconnect</a>();</div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;</div>
<div class="line"><a name="l00297"></a><span class="lineno"><a class="line" href="class_b_t_d.html#ad00d299e64c1a939e4a781ef39f75684"> 297</a></span>&#160; int8_t <a class="code" href="class_b_t_d.html#ad00d299e64c1a939e4a781ef39f75684">registerBluetoothService</a>(<a class="code" href="class_bluetooth_service.html">BluetoothService</a> *pService) {</div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keywordflow">for</span>(uint8_t i = 0; i &lt; <a class="code" href="_b_t_d_8h.html#afeaafddda417fd2f053dbd476332ea19">BTD_NUM_SERVICES</a>; i++) {</div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keywordflow">if</span>(!btService[i]) {</div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; btService[i] = pService;</div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="keywordflow">return</span> i; <span class="comment">// Return ID</span></div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; }</div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; }</div>
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keywordflow">return</span> -1; <span class="comment">// Error registering BluetoothService</span></div>
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; };</div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;</div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#af11ad71d20783d46fe42dd405d10dfda">HCI_Command</a>(uint8_t* data, uint16_t nbytes);</div>
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#ae6f942eabd29257bc4896e5f263275b6">hci_reset</a>();</div>
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#acb94a629477d85cebd16a9c5ecd4a8b3">hci_read_bdaddr</a>();</div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#ae2ba215b6942f4131e4c5fdef2771e22">hci_read_local_version_information</a>();</div>
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a9a6747d58951f53389922d80e25b886c">hci_set_local_name</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* name);</div>
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a7dd7faaec1d3d9a1d8159cc2a4190977">hci_write_scan_enable</a>();</div>
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#aff59ab45d917406141ae0c9c79047f08">hci_write_scan_disable</a>();</div>
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a8767529bd203c549348a38ac9c6682b3">hci_remote_name</a>();</div>
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a1cb07a155c69bb1fcf45ae030b8947ec">hci_accept_connection</a>();</div>
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a1bea5dd793a2f47006b4a7642efc9e56">hci_disconnect</a>(uint16_t handle);</div>
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a70047b0f624c3f0ef29f8b76b8a34938">hci_pin_code_request_reply</a>();</div>
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a7114d2cb62aa413e5ecb25c45c76832b">hci_pin_code_negative_request_reply</a>();</div>
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#af4d28b9c1a3b9688a1871610caee2cfc">hci_link_key_request_negative_reply</a>();</div>
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#addd07c18c725a324a05792a83026d36d">hci_authentication_request</a>();</div>
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a678f2c995553ce6a9f48f9b59f2f1555">hci_inquiry</a>();</div>
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a45ffbc7a40bbb763b0ece907c3dfc9ff">hci_inquiry_cancel</a>();</div>
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#ae7066ea743f8907708db945ebef3ad76">hci_connect</a>();</div>
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#ae7066ea743f8907708db945ebef3ad76">hci_connect</a>(uint8_t *bdaddr);</div>
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a9a17405df60591b909ff1502fb8f3141">hci_write_class_of_device</a>();</div>
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#aad7d8ef46e60b48ff4aaabefb0b290e7">L2CAP_Command</a>(uint16_t handle, uint8_t* data, uint8_t nbytes, uint8_t channelLow = 0x01, uint8_t channelHigh = 0x00);</div>
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a55cf412a2053972a353b1ab964ca9d3e">l2cap_connection_request</a>(uint16_t handle, uint8_t rxid, uint8_t* scid, uint16_t psm);</div>
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a7d34c62b1d561679dea5cd27356b38a7">l2cap_connection_response</a>(uint16_t handle, uint8_t rxid, uint8_t* dcid, uint8_t* scid, uint8_t result);</div>
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#ab646a59311344966f139bb3b78f30233">l2cap_config_request</a>(uint16_t handle, uint8_t rxid, uint8_t* dcid);</div>
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a792ac4529b65235698ecf3d37982c05e">l2cap_config_response</a>(uint16_t handle, uint8_t rxid, uint8_t* scid);</div>
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#ac7053ef7ac690be3afbbdd985b163f10">l2cap_disconnection_request</a>(uint16_t handle, uint8_t rxid, uint8_t* dcid, uint8_t* scid);</div>
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a29d176d9194e5c92fbe54791fc245407">l2cap_disconnection_response</a>(uint16_t handle, uint8_t rxid, uint8_t* dcid, uint8_t* scid);</div>
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a91f61915c503fe7b861c88f5b3e6733c">l2cap_information_response</a>(uint16_t handle, uint8_t rxid, uint8_t infoTypeLow, uint8_t infoTypeHigh);</div>
<div class="line"><a name="l00435"></a><span class="lineno"><a class="line" href="class_b_t_d.html#aa7735da01865bab01b569ee836173737"> 435</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_b_t_d.html#aa7735da01865bab01b569ee836173737">watingForConnection</a>;</div>
<div class="line"><a name="l00437"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a0f1c28a03bcbe62cc7c083f97ea27594"> 437</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_b_t_d.html#a0f1c28a03bcbe62cc7c083f97ea27594">l2capConnectionClaimed</a>;</div>
<div class="line"><a name="l00439"></a><span class="lineno"><a class="line" href="class_b_t_d.html#af5e5b085cec1da5c83c75e80e95b3590"> 439</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_b_t_d.html#af5e5b085cec1da5c83c75e80e95b3590">sdpConnectionClaimed</a>;</div>
<div class="line"><a name="l00441"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a9e5a34242007b64cd6a226cfd1901e74"> 441</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_b_t_d.html#a9e5a34242007b64cd6a226cfd1901e74">rfcommConnectionClaimed</a>;</div>
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;</div>
<div class="line"><a name="l00444"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a0359c0c158c864c27319810cbd1534f9"> 444</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="class_b_t_d.html#a0359c0c158c864c27319810cbd1534f9">btdName</a>;</div>
<div class="line"><a name="l00446"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a215cb939c01ed3ff56db37841224546c"> 446</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="class_b_t_d.html#a215cb939c01ed3ff56db37841224546c">btdPin</a>;</div>
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160;</div>
<div class="line"><a name="l00449"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a1f8e9171a310e50f2c4a3c19066efe5a"> 449</a></span>&#160; uint8_t <a class="code" href="class_b_t_d.html#a1f8e9171a310e50f2c4a3c19066efe5a">my_bdaddr</a>[6];</div>
<div class="line"><a name="l00451"></a><span class="lineno"><a class="line" href="class_b_t_d.html#aa3bb6c692701cb33dfad1ea4d68b6f98"> 451</a></span>&#160; uint16_t <a class="code" href="class_b_t_d.html#aa3bb6c692701cb33dfad1ea4d68b6f98">hci_handle</a>;</div>
<div class="line"><a name="l00453"></a><span class="lineno"><a class="line" href="class_b_t_d.html#ab23f95f12675d7b4505ca6807d379182"> 453</a></span>&#160; uint8_t <a class="code" href="class_b_t_d.html#ab23f95f12675d7b4505ca6807d379182">disc_bdaddr</a>[6];</div>
<div class="line"><a name="l00455"></a><span class="lineno"><a class="line" href="class_b_t_d.html#aa0fd5483f227e29de23c20ee31c940aa"> 455</a></span>&#160; <span class="keywordtype">char</span> <a class="code" href="class_b_t_d.html#aa0fd5483f227e29de23c20ee31c940aa">remote_name</a>[30];</div>
<div class="line"><a name="l00461"></a><span class="lineno"><a class="line" href="class_b_t_d.html#addaddee110af23a3195ad56f631e69ea"> 461</a></span>&#160; uint8_t <a class="code" href="class_b_t_d.html#addaddee110af23a3195ad56f631e69ea">hci_version</a>;</div>
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160;</div>
<div class="line"><a name="l00464"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a6b66a27c0fd359e3129f53451352b55c"> 464</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a6b66a27c0fd359e3129f53451352b55c">pairWithWiimote</a>() {</div>
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; <a class="code" href="class_b_t_d.html#a0c8cc2a2dd2cda3e760b8b4c1a2d169c">pairWithWii</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; hci_state = <a class="code" href="_b_t_d_8h.html#a2c060a7be42c5c4c57990cacec0b45f5">HCI_CHECK_DEVICE_SERVICE</a>;</div>
<div class="line"><a name="l00467"></a><span class="lineno"><a class="line" href="class_b_t_d.html#ac7caac80fb6f5f0e794af3644887d88e"> 467</a></span>&#160; };</div>
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_b_t_d.html#ac7caac80fb6f5f0e794af3644887d88e">connectToWii</a>;</div>
<div class="line"><a name="l00471"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a4dc8f94fe85028f3d54f13dde1e5b4ee"> 471</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_b_t_d.html#a4dc8f94fe85028f3d54f13dde1e5b4ee">incomingWii</a>;</div>
<div class="line"><a name="l00473"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a0c8cc2a2dd2cda3e760b8b4c1a2d169c"> 473</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_b_t_d.html#a0c8cc2a2dd2cda3e760b8b4c1a2d169c">pairWithWii</a>;</div>
<div class="line"><a name="l00475"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a3aea445b2349e99ef057db1a4ffdd9dc"> 475</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_b_t_d.html#a3aea445b2349e99ef057db1a4ffdd9dc">motionPlusInside</a>;</div>
<div class="line"><a name="l00477"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a962a5714c225dcb633434f02e3657583"> 477</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_b_t_d.html#a962a5714c225dcb633434f02e3657583">wiiUProController</a>;</div>
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160;</div>
<div class="line"><a name="l00480"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a0359c0c158c864c27319810cbd1534f9"> 480</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="class_b_t_d.html#a0359c0c158c864c27319810cbd1534f9">btdName</a>;</div>
<div class="line"><a name="l00482"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a215cb939c01ed3ff56db37841224546c"> 482</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="class_b_t_d.html#a215cb939c01ed3ff56db37841224546c">btdPin</a>;</div>
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160;</div>
<div class="line"><a name="l00485"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a1f8e9171a310e50f2c4a3c19066efe5a"> 485</a></span>&#160; uint8_t <a class="code" href="class_b_t_d.html#a1f8e9171a310e50f2c4a3c19066efe5a">my_bdaddr</a>[6];</div>
<div class="line"><a name="l00487"></a><span class="lineno"><a class="line" href="class_b_t_d.html#aa3bb6c692701cb33dfad1ea4d68b6f98"> 487</a></span>&#160; uint16_t <a class="code" href="class_b_t_d.html#aa3bb6c692701cb33dfad1ea4d68b6f98">hci_handle</a>;</div>
<div class="line"><a name="l00489"></a><span class="lineno"><a class="line" href="class_b_t_d.html#ab23f95f12675d7b4505ca6807d379182"> 489</a></span>&#160; uint8_t <a class="code" href="class_b_t_d.html#ab23f95f12675d7b4505ca6807d379182">disc_bdaddr</a>[6];</div>
<div class="line"><a name="l00491"></a><span class="lineno"><a class="line" href="class_b_t_d.html#aa0fd5483f227e29de23c20ee31c940aa"> 491</a></span>&#160; <span class="keywordtype">char</span> <a class="code" href="class_b_t_d.html#aa0fd5483f227e29de23c20ee31c940aa">remote_name</a>[30];</div>
<div class="line"><a name="l00497"></a><span class="lineno"><a class="line" href="class_b_t_d.html#addaddee110af23a3195ad56f631e69ea"> 497</a></span>&#160; uint8_t <a class="code" href="class_b_t_d.html#addaddee110af23a3195ad56f631e69ea">hci_version</a>;</div>
<div class="line"><a name="l00480"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a0b59db80825ffd5974e0d2c4a046b328"> 480</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a0b59db80825ffd5974e0d2c4a046b328">pairWithHID</a>() {</div>
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <a class="code" href="class_b_t_d.html#a2aa418d820fb6b877ea079e0436a518e">pairWithHIDDevice</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; hci_state = <a class="code" href="_b_t_d_8h.html#a2c060a7be42c5c4c57990cacec0b45f5">HCI_CHECK_DEVICE_SERVICE</a>;</div>
<div class="line"><a name="l00483"></a><span class="lineno"><a class="line" href="class_b_t_d.html#af40b8d52df99192880c8a13443b6c6d8"> 483</a></span>&#160; };</div>
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_b_t_d.html#af40b8d52df99192880c8a13443b6c6d8">connectToHIDDevice</a>;</div>
<div class="line"><a name="l00487"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a685d6371fb0c950ff6bad4510a8cc85a"> 487</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_b_t_d.html#a685d6371fb0c950ff6bad4510a8cc85a">incomingHIDDevice</a>;</div>
<div class="line"><a name="l00489"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a2aa418d820fb6b877ea079e0436a518e"> 489</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_b_t_d.html#a2aa418d820fb6b877ea079e0436a518e">pairWithHIDDevice</a>;</div>
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160;</div>
<div class="line"><a name="l00495"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a2a9ecb996243e070e70972370e45e4fd"> 495</a></span>&#160; uint8_t <a class="code" href="class_b_t_d.html#a2a9ecb996243e070e70972370e45e4fd">readPollInterval</a>() {</div>
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; <span class="keywordflow">return</span> pollInterval;</div>
<div class="line"><a name="l00497"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a4bcd1d622a6455ee3d0cccc4408700a1"> 497</a></span>&#160; };</div>
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160;</div>
<div class="line"><a name="l00500"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a6b66a27c0fd359e3129f53451352b55c"> 500</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a6b66a27c0fd359e3129f53451352b55c">pairWithWiimote</a>() {</div>
<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <a class="code" href="class_b_t_d.html#a0c8cc2a2dd2cda3e760b8b4c1a2d169c">pairWithWii</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; hci_state = <a class="code" href="_b_t_d_8h.html#a2c060a7be42c5c4c57990cacec0b45f5">HCI_CHECK_DEVICE_SERVICE</a>;</div>
<div class="line"><a name="l00503"></a><span class="lineno"><a class="line" href="class_b_t_d.html#ac7caac80fb6f5f0e794af3644887d88e"> 503</a></span>&#160; };</div>
<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_b_t_d.html#ac7caac80fb6f5f0e794af3644887d88e">connectToWii</a>;</div>
<div class="line"><a name="l00507"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a4dc8f94fe85028f3d54f13dde1e5b4ee"> 507</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_b_t_d.html#a4dc8f94fe85028f3d54f13dde1e5b4ee">incomingWii</a>;</div>
<div class="line"><a name="l00509"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a0c8cc2a2dd2cda3e760b8b4c1a2d169c"> 509</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_b_t_d.html#a0c8cc2a2dd2cda3e760b8b4c1a2d169c">pairWithWii</a>;</div>
<div class="line"><a name="l00511"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a3aea445b2349e99ef057db1a4ffdd9dc"> 511</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_b_t_d.html#a3aea445b2349e99ef057db1a4ffdd9dc">motionPlusInside</a>;</div>
<div class="line"><a name="l00513"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a962a5714c225dcb633434f02e3657583"> 513</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_b_t_d.html#a962a5714c225dcb633434f02e3657583">wiiUProController</a>;</div>
<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160;</div>
<div class="line"><a name="l00516"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a0b59db80825ffd5974e0d2c4a046b328"> 516</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a0b59db80825ffd5974e0d2c4a046b328">pairWithHID</a>() {</div>
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; <a class="code" href="class_b_t_d.html#a2aa418d820fb6b877ea079e0436a518e">pairWithHIDDevice</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; hci_state = <a class="code" href="_b_t_d_8h.html#a2c060a7be42c5c4c57990cacec0b45f5">HCI_CHECK_DEVICE_SERVICE</a>;</div>
<div class="line"><a name="l00519"></a><span class="lineno"><a class="line" href="class_b_t_d.html#af40b8d52df99192880c8a13443b6c6d8"> 519</a></span>&#160; };</div>
<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_b_t_d.html#af40b8d52df99192880c8a13443b6c6d8">connectToHIDDevice</a>;</div>
<div class="line"><a name="l00523"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a685d6371fb0c950ff6bad4510a8cc85a"> 523</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_b_t_d.html#a685d6371fb0c950ff6bad4510a8cc85a">incomingHIDDevice</a>;</div>
<div class="line"><a name="l00525"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a2aa418d820fb6b877ea079e0436a518e"> 525</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_b_t_d.html#a2aa418d820fb6b877ea079e0436a518e">pairWithHIDDevice</a>;</div>
<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160;</div>
<div class="line"><a name="l00531"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a2a9ecb996243e070e70972370e45e4fd"> 531</a></span>&#160; uint8_t <a class="code" href="class_b_t_d.html#a2a9ecb996243e070e70972370e45e4fd">readPollInterval</a>() {</div>
<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; <span class="keywordflow">return</span> pollInterval;</div>
<div class="line"><a name="l00533"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a4bcd1d622a6455ee3d0cccc4408700a1"> 533</a></span>&#160; };</div>
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160;<span class="keyword">protected</span>:</div>
<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <a class="code" href="class_u_s_b.html">USB</a> *<a class="code" href="class_b_t_d.html#a4bcd1d622a6455ee3d0cccc4408700a1">pUsb</a>;</div>
<div class="line"><a name="l00503"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a58f78a9a28db81858dcc34a32a2ec82c"> 503</a></span>&#160; uint8_t <a class="code" href="class_b_t_d.html#a58f78a9a28db81858dcc34a32a2ec82c">bAddress</a>;</div>
<div class="line"><a name="l00505"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a91d92fee94e5a4cbca472bb3fd883e3e"> 505</a></span>&#160; <a class="code" href="struct_ep_info.html">EpInfo</a> <a class="code" href="class_b_t_d.html#a91d92fee94e5a4cbca472bb3fd883e3e">epInfo</a>[<a class="code" href="_b_t_d_8h.html#aee41c4878894db24e7ad8cd6246595cd">BTD_MAX_ENDPOINTS</a>];</div>
<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160;</div>
<div class="line"><a name="l00508"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a10c34527ae90e95791ac48ac7d1154a2"> 508</a></span>&#160; uint8_t <a class="code" href="class_b_t_d.html#a10c34527ae90e95791ac48ac7d1154a2">bConfNum</a>;</div>
<div class="line"><a name="l00510"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a893dd35932821cddda7e482a1904af66"> 510</a></span>&#160; uint8_t <a class="code" href="class_b_t_d.html#a893dd35932821cddda7e482a1904af66">bNumEP</a>;</div>
<div class="line"><a name="l00512"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a52d6c7895f6bb01729d01ce28a2f3079"> 512</a></span>&#160; uint32_t <a class="code" href="class_b_t_d.html#a52d6c7895f6bb01729d01ce28a2f3079">qNextPollTime</a>;</div>
<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160;</div>
<div class="line"><a name="l00515"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a49f433ab824f259c3815e180c73bb0ad"> 515</a></span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> uint8_t <a class="code" href="class_b_t_d.html#a49f433ab824f259c3815e180c73bb0ad">BTD_CONTROL_PIPE</a>;</div>
<div class="line"><a name="l00517"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a24166c9b308925eeb2f635fae43ca5ec"> 517</a></span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> uint8_t <a class="code" href="class_b_t_d.html#a24166c9b308925eeb2f635fae43ca5ec">BTD_EVENT_PIPE</a>;</div>
<div class="line"><a name="l00519"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a480510bd399ae74a97cd74c8474ef59c"> 519</a></span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> uint8_t <a class="code" href="class_b_t_d.html#a480510bd399ae74a97cd74c8474ef59c">BTD_DATAIN_PIPE</a>;</div>
<div class="line"><a name="l00521"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a0d82870f7eef8c27c33e6f5989d7a4dd"> 521</a></span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> uint8_t <a class="code" href="class_b_t_d.html#a0d82870f7eef8c27c33e6f5989d7a4dd">BTD_DATAOUT_PIPE</a>;</div>
<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160;</div>
<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#aa5976eead215a58553aee683d42405a0">PrintEndpointDescriptor</a>(<span class="keyword">const</span> <a class="code" href="struct_u_s_b___e_n_d_p_o_i_n_t___d_e_s_c_r_i_p_t_o_r.html">USB_ENDPOINT_DESCRIPTOR</a>* ep_ptr);</div>
<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160;</div>
<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; <span class="keywordtype">void</span> Initialize(); <span class="comment">// Set all variables, endpoint structs etc. to default values</span></div>
<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; <a class="code" href="class_bluetooth_service.html">BluetoothService</a> *btService[<a class="code" href="_b_t_d_8h.html#afeaafddda417fd2f053dbd476332ea19">BTD_NUM_SERVICES</a>];</div>
<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160;</div>
<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; uint16_t PID, VID; <span class="comment">// PID and VID of device connected</span></div>
<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160;</div>
<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160;<span class="keyword">protected</span>:</div>
<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; <a class="code" href="class_u_s_b.html">USB</a> *<a class="code" href="class_b_t_d.html#a4bcd1d622a6455ee3d0cccc4408700a1">pUsb</a>;</div>
<div class="line"><a name="l00539"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a58f78a9a28db81858dcc34a32a2ec82c"> 539</a></span>&#160; uint8_t <a class="code" href="class_b_t_d.html#a58f78a9a28db81858dcc34a32a2ec82c">bAddress</a>;</div>
<div class="line"><a name="l00541"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a91d92fee94e5a4cbca472bb3fd883e3e"> 541</a></span>&#160; <a class="code" href="struct_ep_info.html">EpInfo</a> <a class="code" href="class_b_t_d.html#a91d92fee94e5a4cbca472bb3fd883e3e">epInfo</a>[<a class="code" href="_b_t_d_8h.html#aee41c4878894db24e7ad8cd6246595cd">BTD_MAX_ENDPOINTS</a>];</div>
<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160;</div>
<div class="line"><a name="l00544"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a10c34527ae90e95791ac48ac7d1154a2"> 544</a></span>&#160; uint8_t <a class="code" href="class_b_t_d.html#a10c34527ae90e95791ac48ac7d1154a2">bConfNum</a>;</div>
<div class="line"><a name="l00546"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a893dd35932821cddda7e482a1904af66"> 546</a></span>&#160; uint8_t <a class="code" href="class_b_t_d.html#a893dd35932821cddda7e482a1904af66">bNumEP</a>;</div>
<div class="line"><a name="l00548"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a52d6c7895f6bb01729d01ce28a2f3079"> 548</a></span>&#160; uint32_t <a class="code" href="class_b_t_d.html#a52d6c7895f6bb01729d01ce28a2f3079">qNextPollTime</a>;</div>
<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160;</div>
<div class="line"><a name="l00551"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a49f433ab824f259c3815e180c73bb0ad"> 551</a></span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> uint8_t <a class="code" href="class_b_t_d.html#a49f433ab824f259c3815e180c73bb0ad">BTD_CONTROL_PIPE</a>;</div>
<div class="line"><a name="l00553"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a24166c9b308925eeb2f635fae43ca5ec"> 553</a></span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> uint8_t <a class="code" href="class_b_t_d.html#a24166c9b308925eeb2f635fae43ca5ec">BTD_EVENT_PIPE</a>;</div>
<div class="line"><a name="l00555"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a480510bd399ae74a97cd74c8474ef59c"> 555</a></span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> uint8_t <a class="code" href="class_b_t_d.html#a480510bd399ae74a97cd74c8474ef59c">BTD_DATAIN_PIPE</a>;</div>
<div class="line"><a name="l00557"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a0d82870f7eef8c27c33e6f5989d7a4dd"> 557</a></span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> uint8_t <a class="code" href="class_b_t_d.html#a0d82870f7eef8c27c33e6f5989d7a4dd">BTD_DATAOUT_PIPE</a>;</div>
<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160;</div>
<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#aa5976eead215a58553aee683d42405a0">PrintEndpointDescriptor</a>(<span class="keyword">const</span> <a class="code" href="struct_u_s_b___e_n_d_p_o_i_n_t___d_e_s_c_r_i_p_t_o_r.html">USB_ENDPOINT_DESCRIPTOR</a>* ep_ptr);</div>
<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160;</div>
<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; <span class="keywordtype">void</span> Initialize(); <span class="comment">// Set all variables, endpoint structs etc. to default values</span></div>
<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; <a class="code" href="class_bluetooth_service.html">BluetoothService</a> *btService[<a class="code" href="_b_t_d_8h.html#afeaafddda417fd2f053dbd476332ea19">BTD_NUM_SERVICES</a>];</div>
<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160;</div>
<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; uint16_t PID, VID; <span class="comment">// PID and VID of device connected</span></div>
<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160;</div>
<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; uint8_t pollInterval;</div>
<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; <span class="keywordtype">bool</span> bPollEnable;</div>
<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160;</div>
<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; <span class="keywordtype">bool</span> incomingPS4; <span class="comment">// True if a PS4 controller is connecting</span></div>
<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; uint8_t classOfDevice[3]; <span class="comment">// Class of device of last device</span></div>
<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160;</div>
<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; <span class="comment">/* Variables used by high level HCI task */</span></div>
<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; uint8_t hci_state; <span class="comment">// Current state of Bluetooth HCI connection</span></div>
<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; uint16_t hci_counter; <span class="comment">// Counter used for Bluetooth HCI reset loops</span></div>
<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; uint16_t hci_num_reset_loops; <span class="comment">// This value indicate how many times it should read before trying to reset</span></div>
<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; uint16_t hci_event_flag; <span class="comment">// HCI flags of received Bluetooth events</span></div>
<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; uint8_t inquiry_counter;</div>
<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160;</div>
<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; uint8_t hcibuf[<a class="code" href="_b_t_d_8h.html#a32d591ef5742a99963130616ef146787">BULK_MAXPKTSIZE</a>]; <span class="comment">// General purpose buffer for HCI data</span></div>
<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; uint8_t l2capinbuf[<a class="code" href="_b_t_d_8h.html#a32d591ef5742a99963130616ef146787">BULK_MAXPKTSIZE</a>]; <span class="comment">// General purpose buffer for L2CAP in data</span></div>
<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; uint8_t l2capoutbuf[14]; <span class="comment">// General purpose buffer for L2CAP out data</span></div>
<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160;</div>
<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; <span class="comment">/* State machines */</span></div>
<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; <span class="keywordtype">void</span> HCI_event_task(); <span class="comment">// Poll the HCI event pipe</span></div>
<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; <span class="keywordtype">void</span> HCI_task(); <span class="comment">// HCI state machine</span></div>
<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; <span class="keywordtype">void</span> ACL_event_task(); <span class="comment">// ACL input pipe</span></div>
<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160;</div>
<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; <span class="comment">/* Used to set the Bluetooth Address internally to the PS3 Controllers */</span></div>
<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; <span class="keywordtype">void</span> setBdaddr(uint8_t* BDADDR);</div>
<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; <span class="keywordtype">void</span> setMoveBdaddr(uint8_t* BDADDR);</div>
<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160;};</div>
<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="ttc" id="class_b_t_d_html_a0d82870f7eef8c27c33e6f5989d7a4dd"><div class="ttname"><a href="class_b_t_d.html#a0d82870f7eef8c27c33e6f5989d7a4dd">BTD::BTD_DATAOUT_PIPE</a></div><div class="ttdeci">static const uint8_t BTD_DATAOUT_PIPE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00557">BTD.h:557</a></div></div>
<div class="ttc" id="class_b_t_d_html_a4dc8f94fe85028f3d54f13dde1e5b4ee"><div class="ttname"><a href="class_b_t_d.html#a4dc8f94fe85028f3d54f13dde1e5b4ee">BTD::incomingWii</a></div><div class="ttdeci">bool incomingWii</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00507">BTD.h:507</a></div></div>
<div class="ttc" id="class_b_t_d_html_ae7066ea743f8907708db945ebef3ad76"><div class="ttname"><a href="class_b_t_d.html#ae7066ea743f8907708db945ebef3ad76">BTD::hci_connect</a></div><div class="ttdeci">void hci_connect()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01042">BTD.cpp:1042</a></div></div>
<div class="ttc" id="class_b_t_d_html_a893dd35932821cddda7e482a1904af66"><div class="ttname"><a href="class_b_t_d.html#a893dd35932821cddda7e482a1904af66">BTD::bNumEP</a></div><div class="ttdeci">uint8_t bNumEP</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00546">BTD.h:546</a></div></div>
<div class="ttc" id="class_b_t_d_html_a0359c0c158c864c27319810cbd1534f9"><div class="ttname"><a href="class_b_t_d.html#a0359c0c158c864c27319810cbd1534f9">BTD::btdName</a></div><div class="ttdeci">const char * btdName</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00480">BTD.h:480</a></div></div>
<div class="ttc" id="class_b_t_d_html_ae6f942eabd29257bc4896e5f263275b6"><div class="ttname"><a href="class_b_t_d.html#ae6f942eabd29257bc4896e5f263275b6">BTD::hci_reset</a></div><div class="ttdeci">void hci_reset()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l00924">BTD.cpp:924</a></div></div>
<div class="ttc" id="class_b_t_d_html_a7d34c62b1d561679dea5cd27356b38a7"><div class="ttname"><a href="class_b_t_d.html#a7d34c62b1d561679dea5cd27356b38a7">BTD::l2cap_connection_response</a></div><div class="ttdeci">void l2cap_connection_response(uint16_t handle, uint8_t rxid, uint8_t *dcid, uint8_t *scid, uint8_t result)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01231">BTD.cpp:1231</a></div></div>
<div class="ttc" id="class_b_t_d_html_a55cf412a2053972a353b1ab964ca9d3e"><div class="ttname"><a href="class_b_t_d.html#a55cf412a2053972a353b1ab964ca9d3e">BTD::l2cap_connection_request</a></div><div class="ttdeci">void l2cap_connection_request(uint16_t handle, uint8_t rxid, uint8_t *scid, uint16_t psm)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01218">BTD.cpp:1218</a></div></div>
<div class="ttc" id="class_b_t_d_html_af5e5b085cec1da5c83c75e80e95b3590"><div class="ttname"><a href="class_b_t_d.html#af5e5b085cec1da5c83c75e80e95b3590">BTD::sdpConnectionClaimed</a></div><div class="ttdeci">bool sdpConnectionClaimed</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00475">BTD.h:475</a></div></div>
<div class="ttc" id="class_b_t_d_html"><div class="ttname"><a href="class_b_t_d.html">BTD</a></div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00230">BTD.h:230</a></div></div>
<div class="ttc" id="class_b_t_d_html_a8760371377c1ba08292b6cc71824754e"><div class="ttname"><a href="class_b_t_d.html#a8760371377c1ba08292b6cc71824754e">BTD::DEVCLASSOK</a></div><div class="ttdeci">virtual boolean DEVCLASSOK(uint8_t klass)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00287">BTD.h:287</a></div></div>
<div class="ttc" id="class_b_t_d_html_ac7053ef7ac690be3afbbdd985b163f10"><div class="ttname"><a href="class_b_t_d.html#ac7053ef7ac690be3afbbdd985b163f10">BTD::l2cap_disconnection_request</a></div><div class="ttdeci">void l2cap_disconnection_request(uint16_t handle, uint8_t rxid, uint8_t *dcid, uint8_t *scid)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01284">BTD.cpp:1284</a></div></div>
<div class="ttc" id="class_b_t_d_html_a9e5a34242007b64cd6a226cfd1901e74"><div class="ttname"><a href="class_b_t_d.html#a9e5a34242007b64cd6a226cfd1901e74">BTD::rfcommConnectionClaimed</a></div><div class="ttdeci">bool rfcommConnectionClaimed</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00477">BTD.h:477</a></div></div>
<div class="ttc" id="class_b_t_d_html_addaddee110af23a3195ad56f631e69ea"><div class="ttname"><a href="class_b_t_d.html#addaddee110af23a3195ad56f631e69ea">BTD::hci_version</a></div><div class="ttdeci">uint8_t hci_version</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00497">BTD.h:497</a></div></div>
<div class="ttc" id="class_b_t_d_html_a678f2c995553ce6a9f48f9b59f2f1555"><div class="ttname"><a href="class_b_t_d.html#a678f2c995553ce6a9f48f9b59f2f1555">BTD::hci_inquiry</a></div><div class="ttdeci">void hci_inquiry()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01020">BTD.cpp:1020</a></div></div>
<div class="ttc" id="class_b_t_d_html_a24166c9b308925eeb2f635fae43ca5ec"><div class="ttname"><a href="class_b_t_d.html#a24166c9b308925eeb2f635fae43ca5ec">BTD::BTD_EVENT_PIPE</a></div><div class="ttdeci">static const uint8_t BTD_EVENT_PIPE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00553">BTD.h:553</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_afc242b8a1b867f79c49ad78e3a47b37f"><div class="ttname"><a href="_b_t_d_8h.html#afc242b8a1b867f79c49ad78e3a47b37f">PS3MOVE_PID</a></div><div class="ttdeci">#define PS3MOVE_PID</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00027">BTD.h:27</a></div></div>
<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; uint8_t pollInterval;</div>
<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; <span class="keywordtype">bool</span> bPollEnable;</div>
<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160;</div>
<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; <span class="keywordtype">bool</span> incomingPS4; <span class="comment">// True if a PS4 controller is connecting</span></div>
<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; uint8_t classOfDevice[3]; <span class="comment">// Class of device of last device</span></div>
<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160;</div>
<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; <span class="comment">/* Variables used by high level HCI task */</span></div>
<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; uint8_t hci_state; <span class="comment">// Current state of Bluetooth HCI connection</span></div>
<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; uint16_t hci_counter; <span class="comment">// Counter used for Bluetooth HCI reset loops</span></div>
<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; uint16_t hci_num_reset_loops; <span class="comment">// This value indicate how many times it should read before trying to reset</span></div>
<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; uint16_t hci_event_flag; <span class="comment">// HCI flags of received Bluetooth events</span></div>
<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; uint8_t inquiry_counter;</div>
<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160;</div>
<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; uint8_t hcibuf[<a class="code" href="_b_t_d_8h.html#a32d591ef5742a99963130616ef146787">BULK_MAXPKTSIZE</a>]; <span class="comment">// General purpose buffer for HCI data</span></div>
<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; uint8_t l2capinbuf[<a class="code" href="_b_t_d_8h.html#a32d591ef5742a99963130616ef146787">BULK_MAXPKTSIZE</a>]; <span class="comment">// General purpose buffer for L2CAP in data</span></div>
<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; uint8_t l2capoutbuf[14]; <span class="comment">// General purpose buffer for L2CAP out data</span></div>
<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160;</div>
<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; <span class="comment">/* State machines */</span></div>
<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; <span class="keywordtype">void</span> HCI_event_task(); <span class="comment">// Poll the HCI event pipe</span></div>
<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; <span class="keywordtype">void</span> HCI_task(); <span class="comment">// HCI state machine</span></div>
<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; <span class="keywordtype">void</span> ACL_event_task(); <span class="comment">// ACL input pipe</span></div>
<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160;</div>
<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; <span class="comment">/* Used to set the Bluetooth Address internally to the PS3 Controllers */</span></div>
<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; <span class="keywordtype">void</span> setBdaddr(uint8_t* BDADDR);</div>
<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; <span class="keywordtype">void</span> setMoveBdaddr(uint8_t* BDADDR);</div>
<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160;};</div>
<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160;</div>
<div class="line"><a name="l00563"></a><span class="lineno"><a class="line" href="class_bluetooth_service.html"> 563</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_bluetooth_service.html">BluetoothService</a> {</div>
<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00565"></a><span class="lineno"><a class="line" href="class_bluetooth_service.html#a410c7df1e49328de23a89921c89f9573"> 565</a></span>&#160; <a class="code" href="class_bluetooth_service.html#a410c7df1e49328de23a89921c89f9573">BluetoothService</a>(<a class="code" href="class_b_t_d.html">BTD</a> *p) : <a class="code" href="class_bluetooth_service.html#aa67faf901f78a55a202945a20f6d778a">pBtd</a>(p) {</div>
<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_bluetooth_service.html#aa67faf901f78a55a202945a20f6d778a">pBtd</a>)</div>
<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; <a class="code" href="class_bluetooth_service.html#aa67faf901f78a55a202945a20f6d778a">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#ad00d299e64c1a939e4a781ef39f75684">registerBluetoothService</a>(<span class="keyword">this</span>); <span class="comment">// Register it as a Bluetooth service</span></div>
<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; };</div>
<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_bluetooth_service.html#a9740e997198485c9629a146a9c981043">ACLData</a>(uint8_t* <a class="code" href="class_bluetooth_service.html#a9740e997198485c9629a146a9c981043">ACLData</a>) = 0;</div>
<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_bluetooth_service.html#a16df27af39d09963cf0d43910d92ff4c">Run</a>() = 0;</div>
<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_bluetooth_service.html#aa7c81841d4e898e9dc91533da6d7ab64">Reset</a>() = 0;</div>
<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_bluetooth_service.html#a7bb2c8cccf3f2931629ead9becc51ec9">disconnect</a>() = 0;</div>
<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160;</div>
<div class="line"><a name="l00585"></a><span class="lineno"><a class="line" href="class_bluetooth_service.html#a488e219cf0a90d39e643615b1f12e91f"> 585</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_bluetooth_service.html#a488e219cf0a90d39e643615b1f12e91f">attachOnInit</a>(<span class="keywordtype">void</span> (*funcOnInit)(<span class="keywordtype">void</span>)) {</div>
<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; <a class="code" href="class_bluetooth_service.html#a321393d44ce59213fa1c7498c247d5ff">pFuncOnInit</a> = funcOnInit; <span class="comment">// TODO: This really belong in a class of it&#39;s own as it is repeated several times</span></div>
<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; };</div>
<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160;</div>
<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160;<span class="keyword">protected</span>:</div>
<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_bluetooth_service.html#a34d08d56c560c892c9684133f69b971b">onInit</a>() = 0;</div>
<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160;</div>
<div class="line"><a name="l00598"></a><span class="lineno"><a class="line" href="class_bluetooth_service.html#a2a3674a4bb5d409840995eabe07049bd"> 598</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_bluetooth_service.html#a2a3674a4bb5d409840995eabe07049bd">checkHciHandle</a>(uint8_t *buf, uint16_t handle) {</div>
<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; <span class="keywordflow">return</span> (buf[0] == (handle &amp; 0xFF)) &amp;&amp; (buf[1] == ((handle &gt;&gt; 8) | 0x20));</div>
<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; }</div>
<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160;</div>
<div class="line"><a name="l00603"></a><span class="lineno"><a class="line" href="class_bluetooth_service.html#a321393d44ce59213fa1c7498c247d5ff"> 603</a></span>&#160; void (*<a class="code" href="class_bluetooth_service.html#a321393d44ce59213fa1c7498c247d5ff">pFuncOnInit</a>)(void);</div>
<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160;</div>
<div class="line"><a name="l00606"></a><span class="lineno"><a class="line" href="class_bluetooth_service.html#aa67faf901f78a55a202945a20f6d778a"> 606</a></span>&#160; <a class="code" href="class_b_t_d.html">BTD</a> *<a class="code" href="class_bluetooth_service.html#aa67faf901f78a55a202945a20f6d778a">pBtd</a>;</div>
<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160;</div>
<div class="line"><a name="l00609"></a><span class="lineno"><a class="line" href="class_bluetooth_service.html#a67b1db67c05d0bbdcd9c992135455437"> 609</a></span>&#160; uint16_t <a class="code" href="class_bluetooth_service.html#a67b1db67c05d0bbdcd9c992135455437">hci_handle</a>;</div>
<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160;</div>
<div class="line"><a name="l00612"></a><span class="lineno"><a class="line" href="class_bluetooth_service.html#a78a1a893ec9c2db32e42bc2271c4a4f2"> 612</a></span>&#160; uint32_t <a class="code" href="class_bluetooth_service.html#a78a1a893ec9c2db32e42bc2271c4a4f2">l2cap_event_flag</a>;</div>
<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160;</div>
<div class="line"><a name="l00615"></a><span class="lineno"><a class="line" href="class_bluetooth_service.html#ad643db609c7e2e3fae8904dbc7991262"> 615</a></span>&#160; uint8_t <a class="code" href="class_bluetooth_service.html#ad643db609c7e2e3fae8904dbc7991262">identifier</a>;</div>
<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160;};</div>
<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160;</div>
<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="ttc" id="class_b_t_d_html_a0d82870f7eef8c27c33e6f5989d7a4dd"><div class="ttname"><a href="class_b_t_d.html#a0d82870f7eef8c27c33e6f5989d7a4dd">BTD::BTD_DATAOUT_PIPE</a></div><div class="ttdeci">static const uint8_t BTD_DATAOUT_PIPE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00521">BTD.h:521</a></div></div>
<div class="ttc" id="class_b_t_d_html_a4dc8f94fe85028f3d54f13dde1e5b4ee"><div class="ttname"><a href="class_b_t_d.html#a4dc8f94fe85028f3d54f13dde1e5b4ee">BTD::incomingWii</a></div><div class="ttdeci">bool incomingWii</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00471">BTD.h:471</a></div></div>
<div class="ttc" id="class_b_t_d_html_ae7066ea743f8907708db945ebef3ad76"><div class="ttname"><a href="class_b_t_d.html#ae7066ea743f8907708db945ebef3ad76">BTD::hci_connect</a></div><div class="ttdeci">void hci_connect()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01050">BTD.cpp:1050</a></div></div>
<div class="ttc" id="class_b_t_d_html_a893dd35932821cddda7e482a1904af66"><div class="ttname"><a href="class_b_t_d.html#a893dd35932821cddda7e482a1904af66">BTD::bNumEP</a></div><div class="ttdeci">uint8_t bNumEP</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00510">BTD.h:510</a></div></div>
<div class="ttc" id="class_b_t_d_html_a0359c0c158c864c27319810cbd1534f9"><div class="ttname"><a href="class_b_t_d.html#a0359c0c158c864c27319810cbd1534f9">BTD::btdName</a></div><div class="ttdeci">const char * btdName</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00444">BTD.h:444</a></div></div>
<div class="ttc" id="class_b_t_d_html_ae6f942eabd29257bc4896e5f263275b6"><div class="ttname"><a href="class_b_t_d.html#ae6f942eabd29257bc4896e5f263275b6">BTD::hci_reset</a></div><div class="ttdeci">void hci_reset()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l00932">BTD.cpp:932</a></div></div>
<div class="ttc" id="class_b_t_d_html_a7d34c62b1d561679dea5cd27356b38a7"><div class="ttname"><a href="class_b_t_d.html#a7d34c62b1d561679dea5cd27356b38a7">BTD::l2cap_connection_response</a></div><div class="ttdeci">void l2cap_connection_response(uint16_t handle, uint8_t rxid, uint8_t *dcid, uint8_t *scid, uint8_t result)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01239">BTD.cpp:1239</a></div></div>
<div class="ttc" id="class_b_t_d_html_a55cf412a2053972a353b1ab964ca9d3e"><div class="ttname"><a href="class_b_t_d.html#a55cf412a2053972a353b1ab964ca9d3e">BTD::l2cap_connection_request</a></div><div class="ttdeci">void l2cap_connection_request(uint16_t handle, uint8_t rxid, uint8_t *scid, uint16_t psm)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01226">BTD.cpp:1226</a></div></div>
<div class="ttc" id="class_b_t_d_html_af5e5b085cec1da5c83c75e80e95b3590"><div class="ttname"><a href="class_b_t_d.html#af5e5b085cec1da5c83c75e80e95b3590">BTD::sdpConnectionClaimed</a></div><div class="ttdeci">bool sdpConnectionClaimed</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00439">BTD.h:439</a></div></div>
<div class="ttc" id="class_b_t_d_html"><div class="ttname"><a href="class_b_t_d.html">BTD</a></div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00198">BTD.h:198</a></div></div>
<div class="ttc" id="class_b_t_d_html_ad00d299e64c1a939e4a781ef39f75684"><div class="ttname"><a href="class_b_t_d.html#ad00d299e64c1a939e4a781ef39f75684">BTD::registerBluetoothService</a></div><div class="ttdeci">int8_t registerBluetoothService(BluetoothService *pService)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00297">BTD.h:297</a></div></div>
<div class="ttc" id="class_b_t_d_html_ac7053ef7ac690be3afbbdd985b163f10"><div class="ttname"><a href="class_b_t_d.html#ac7053ef7ac690be3afbbdd985b163f10">BTD::l2cap_disconnection_request</a></div><div class="ttdeci">void l2cap_disconnection_request(uint16_t handle, uint8_t rxid, uint8_t *dcid, uint8_t *scid)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01292">BTD.cpp:1292</a></div></div>
<div class="ttc" id="class_b_t_d_html_a9e5a34242007b64cd6a226cfd1901e74"><div class="ttname"><a href="class_b_t_d.html#a9e5a34242007b64cd6a226cfd1901e74">BTD::rfcommConnectionClaimed</a></div><div class="ttdeci">bool rfcommConnectionClaimed</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00441">BTD.h:441</a></div></div>
<div class="ttc" id="class_b_t_d_html_addaddee110af23a3195ad56f631e69ea"><div class="ttname"><a href="class_b_t_d.html#addaddee110af23a3195ad56f631e69ea">BTD::hci_version</a></div><div class="ttdeci">uint8_t hci_version</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00461">BTD.h:461</a></div></div>
<div class="ttc" id="hid_8h_html"><div class="ttname"><a href="hid_8h.html">hid.h</a></div></div>
<div class="ttc" id="class_b_t_d_html_a678f2c995553ce6a9f48f9b59f2f1555"><div class="ttname"><a href="class_b_t_d.html#a678f2c995553ce6a9f48f9b59f2f1555">BTD::hci_inquiry</a></div><div class="ttdeci">void hci_inquiry()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01028">BTD.cpp:1028</a></div></div>
<div class="ttc" id="class_b_t_d_html_a24166c9b308925eeb2f635fae43ca5ec"><div class="ttname"><a href="class_b_t_d.html#a24166c9b308925eeb2f635fae43ca5ec">BTD::BTD_EVENT_PIPE</a></div><div class="ttdeci">static const uint8_t BTD_EVENT_PIPE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00517">BTD.h:517</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_afc242b8a1b867f79c49ad78e3a47b37f"><div class="ttname"><a href="_b_t_d_8h.html#afc242b8a1b867f79c49ad78e3a47b37f">PS3MOVE_PID</a></div><div class="ttdeci">#define PS3MOVE_PID</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00028">BTD.h:28</a></div></div>
<div class="ttc" id="struct_u_s_b___e_n_d_p_o_i_n_t___d_e_s_c_r_i_p_t_o_r_html"><div class="ttname"><a href="struct_u_s_b___e_n_d_p_o_i_n_t___d_e_s_c_r_i_p_t_o_r.html">USB_ENDPOINT_DESCRIPTOR</a></div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00141">usb_ch9.h:141</a></div></div>
<div class="ttc" id="class_b_t_d_html_a0c8cc2a2dd2cda3e760b8b4c1a2d169c"><div class="ttname"><a href="class_b_t_d.html#a0c8cc2a2dd2cda3e760b8b4c1a2d169c">BTD::pairWithWii</a></div><div class="ttdeci">bool pairWithWii</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00509">BTD.h:509</a></div></div>
<div class="ttc" id="class_b_t_d_html_aff59ab45d917406141ae0c9c79047f08"><div class="ttname"><a href="class_b_t_d.html#aff59ab45d917406141ae0c9c79047f08">BTD::hci_write_scan_disable</a></div><div class="ttdeci">void hci_write_scan_disable()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l00946">BTD.cpp:946</a></div></div>
<div class="ttc" id="class_b_t_d_html_a23928cd0e5711a2433aec763cfa55773"><div class="ttname"><a href="class_b_t_d.html#a23928cd0e5711a2433aec763cfa55773">BTD::EndpointXtract</a></div><div class="ttdeci">virtual void EndpointXtract(uint8_t conf, uint8_t iface, uint8_t alt, uint8_t proto, const USB_ENDPOINT_DESCRIPTOR *ep)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l00314">BTD.cpp:314</a></div></div>
<div class="ttc" id="class_b_t_d_html_aecdd9d00fc9c12bb3677ed213a6687c3"><div class="ttname"><a href="class_b_t_d.html#aecdd9d00fc9c12bb3677ed213a6687c3">BTD::GetAddress</a></div><div class="ttdeci">virtual uint8_t GetAddress()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00270">BTD.h:270</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_afeaafddda417fd2f053dbd476332ea19"><div class="ttname"><a href="_b_t_d_8h.html#afeaafddda417fd2f053dbd476332ea19">BTD_NUM_SERVICES</a></div><div class="ttdeci">#define BTD_NUM_SERVICES</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00190">BTD.h:190</a></div></div>
<div class="ttc" id="class_b_t_d_html_a215cb939c01ed3ff56db37841224546c"><div class="ttname"><a href="class_b_t_d.html#a215cb939c01ed3ff56db37841224546c">BTD::btdPin</a></div><div class="ttdeci">const char * btdPin</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00482">BTD.h:482</a></div></div>
<div class="ttc" id="class_b_t_d_html_a3aea445b2349e99ef057db1a4ffdd9dc"><div class="ttname"><a href="class_b_t_d.html#a3aea445b2349e99ef057db1a4ffdd9dc">BTD::motionPlusInside</a></div><div class="ttdeci">bool motionPlusInside</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00511">BTD.h:511</a></div></div>
<div class="ttc" id="class_b_t_d_html_a8767529bd203c549348a38ac9c6682b3"><div class="ttname"><a href="class_b_t_d.html#a8767529bd203c549348a38ac9c6682b3">BTD::hci_remote_name</a></div><div class="ttdeci">void hci_remote_name()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l00989">BTD.cpp:989</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html"><div class="ttname"><a href="class_u_s_b_device_config.html">USBDeviceConfig</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00119">UsbCore.h:119</a></div></div>
<div class="ttc" id="class_b_t_d_html_a0c8cc2a2dd2cda3e760b8b4c1a2d169c"><div class="ttname"><a href="class_b_t_d.html#a0c8cc2a2dd2cda3e760b8b4c1a2d169c">BTD::pairWithWii</a></div><div class="ttdeci">bool pairWithWii</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00473">BTD.h:473</a></div></div>
<div class="ttc" id="class_bluetooth_service_html_ad643db609c7e2e3fae8904dbc7991262"><div class="ttname"><a href="class_bluetooth_service.html#ad643db609c7e2e3fae8904dbc7991262">BluetoothService::identifier</a></div><div class="ttdeci">uint8_t identifier</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00615">BTD.h:615</a></div></div>
<div class="ttc" id="class_b_t_d_html_aff59ab45d917406141ae0c9c79047f08"><div class="ttname"><a href="class_b_t_d.html#aff59ab45d917406141ae0c9c79047f08">BTD::hci_write_scan_disable</a></div><div class="ttdeci">void hci_write_scan_disable()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l00954">BTD.cpp:954</a></div></div>
<div class="ttc" id="class_b_t_d_html_a23928cd0e5711a2433aec763cfa55773"><div class="ttname"><a href="class_b_t_d.html#a23928cd0e5711a2433aec763cfa55773">BTD::EndpointXtract</a></div><div class="ttdeci">void EndpointXtract(uint8_t conf, uint8_t iface, uint8_t alt, uint8_t proto, const USB_ENDPOINT_DESCRIPTOR *ep)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l00314">BTD.cpp:314</a></div></div>
<div class="ttc" id="class_b_t_d_html_ae0808ebf7578fc022b8f05c8779d3102"><div class="ttname"><a href="class_b_t_d.html#ae0808ebf7578fc022b8f05c8779d3102">BTD::VIDPIDOK</a></div><div class="ttdeci">virtual bool VIDPIDOK(uint16_t vid, uint16_t pid)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00266">BTD.h:266</a></div></div>
<div class="ttc" id="class_b_t_d_html_aecdd9d00fc9c12bb3677ed213a6687c3"><div class="ttname"><a href="class_b_t_d.html#aecdd9d00fc9c12bb3677ed213a6687c3">BTD::GetAddress</a></div><div class="ttdeci">virtual uint8_t GetAddress()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00238">BTD.h:238</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_afeaafddda417fd2f053dbd476332ea19"><div class="ttname"><a href="_b_t_d_8h.html#afeaafddda417fd2f053dbd476332ea19">BTD_NUM_SERVICES</a></div><div class="ttdeci">#define BTD_NUM_SERVICES</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00188">BTD.h:188</a></div></div>
<div class="ttc" id="class_b_t_d_html_a215cb939c01ed3ff56db37841224546c"><div class="ttname"><a href="class_b_t_d.html#a215cb939c01ed3ff56db37841224546c">BTD::btdPin</a></div><div class="ttdeci">const char * btdPin</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00446">BTD.h:446</a></div></div>
<div class="ttc" id="class_b_t_d_html_a3aea445b2349e99ef057db1a4ffdd9dc"><div class="ttname"><a href="class_b_t_d.html#a3aea445b2349e99ef057db1a4ffdd9dc">BTD::motionPlusInside</a></div><div class="ttdeci">bool motionPlusInside</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00475">BTD.h:475</a></div></div>
<div class="ttc" id="class_b_t_d_html_a8767529bd203c549348a38ac9c6682b3"><div class="ttname"><a href="class_b_t_d.html#a8767529bd203c549348a38ac9c6682b3">BTD::hci_remote_name</a></div><div class="ttdeci">void hci_remote_name()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l00997">BTD.cpp:997</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html"><div class="ttname"><a href="class_u_s_b_device_config.html">USBDeviceConfig</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00121">UsbCore.h:121</a></div></div>
<div class="ttc" id="_usb_8h_html"><div class="ttname"><a href="_usb_8h.html">Usb.h</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a5bb06f989db583d290ba79642d37c514"><div class="ttname"><a href="_b_t_d_8h.html#a5bb06f989db583d290ba79642d37c514">PS3_VID</a></div><div class="ttdeci">#define PS3_VID</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00024">BTD.h:24</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a5bb06f989db583d290ba79642d37c514"><div class="ttname"><a href="_b_t_d_8h.html#a5bb06f989db583d290ba79642d37c514">PS3_VID</a></div><div class="ttdeci">#define PS3_VID</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00025">BTD.h:25</a></div></div>
<div class="ttc" id="class_b_t_d_html_a5f07597fe15a2b917cce405fe87f2981"><div class="ttname"><a href="class_b_t_d.html#a5f07597fe15a2b917cce405fe87f2981">BTD::BTD</a></div><div class="ttdeci">BTD(USB *p)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l00027">BTD.cpp:27</a></div></div>
<div class="ttc" id="class_b_t_d_html_aa0fd5483f227e29de23c20ee31c940aa"><div class="ttname"><a href="class_b_t_d.html#aa0fd5483f227e29de23c20ee31c940aa">BTD::remote_name</a></div><div class="ttdeci">char remote_name[30]</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00491">BTD.h:491</a></div></div>
<div class="ttc" id="class_b_t_d_html_a2a9ecb996243e070e70972370e45e4fd"><div class="ttname"><a href="class_b_t_d.html#a2a9ecb996243e070e70972370e45e4fd">BTD::readPollInterval</a></div><div class="ttdeci">uint8_t readPollInterval()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00531">BTD.h:531</a></div></div>
<div class="ttc" id="class_bluetooth_service_html_a1dff7caf251f1d8a5f358b368445cb48"><div class="ttname"><a href="class_bluetooth_service.html#a1dff7caf251f1d8a5f358b368445cb48">BluetoothService::Reset</a></div><div class="ttdeci">virtual void Reset()</div></div>
<div class="ttc" id="class_b_t_d_html_a480510bd399ae74a97cd74c8474ef59c"><div class="ttname"><a href="class_b_t_d.html#a480510bd399ae74a97cd74c8474ef59c">BTD::BTD_DATAIN_PIPE</a></div><div class="ttdeci">static const uint8_t BTD_DATAIN_PIPE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00555">BTD.h:555</a></div></div>
<div class="ttc" id="class_b_t_d_html_a9a6747d58951f53389922d80e25b886c"><div class="ttname"><a href="class_b_t_d.html#a9a6747d58951f53389922d80e25b886c">BTD::hci_set_local_name</a></div><div class="ttdeci">void hci_set_local_name(const char *name)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01008">BTD.cpp:1008</a></div></div>
<div class="ttc" id="class_b_t_d_html_a7dd7faaec1d3d9a1d8159cc2a4190977"><div class="ttname"><a href="class_b_t_d.html#a7dd7faaec1d3d9a1d8159cc2a4190977">BTD::hci_write_scan_enable</a></div><div class="ttdeci">void hci_write_scan_enable()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l00933">BTD.cpp:933</a></div></div>
<div class="ttc" id="class_b_t_d_html_aa87c23bce56a20f2db47c6a40c8eda87"><div class="ttname"><a href="class_b_t_d.html#aa87c23bce56a20f2db47c6a40c8eda87">BTD::Release</a></div><div class="ttdeci">virtual uint8_t Release()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l00365">BTD.cpp:365</a></div></div>
<div class="ttc" id="class_b_t_d_html_a29d176d9194e5c92fbe54791fc245407"><div class="ttname"><a href="class_b_t_d.html#a29d176d9194e5c92fbe54791fc245407">BTD::l2cap_disconnection_response</a></div><div class="ttdeci">void l2cap_disconnection_response(uint16_t handle, uint8_t rxid, uint8_t *dcid, uint8_t *scid)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01297">BTD.cpp:1297</a></div></div>
<div class="ttc" id="_usb_core_8h_html_afce880b09049d7105f8e68ff36d9ad17"><div class="ttname"><a href="_usb_core_8h.html#afce880b09049d7105f8e68ff36d9ad17">USB_CLASS_WIRELESS_CTRL</a></div><div class="ttdeci">#define USB_CLASS_WIRELESS_CTRL</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00069">UsbCore.h:69</a></div></div>
<div class="ttc" id="class_b_t_d_html_aa7735da01865bab01b569ee836173737"><div class="ttname"><a href="class_b_t_d.html#aa7735da01865bab01b569ee836173737">BTD::watingForConnection</a></div><div class="ttdeci">bool watingForConnection</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00471">BTD.h:471</a></div></div>
<div class="ttc" id="class_b_t_d_html_af40b8d52df99192880c8a13443b6c6d8"><div class="ttname"><a href="class_b_t_d.html#af40b8d52df99192880c8a13443b6c6d8">BTD::connectToHIDDevice</a></div><div class="ttdeci">bool connectToHIDDevice</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00519">BTD.h:519</a></div></div>
<div class="ttc" id="class_b_t_d_html_a58f78a9a28db81858dcc34a32a2ec82c"><div class="ttname"><a href="class_b_t_d.html#a58f78a9a28db81858dcc34a32a2ec82c">BTD::bAddress</a></div><div class="ttdeci">uint8_t bAddress</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00539">BTD.h:539</a></div></div>
<div class="ttc" id="class_b_t_d_html_a685d6371fb0c950ff6bad4510a8cc85a"><div class="ttname"><a href="class_b_t_d.html#a685d6371fb0c950ff6bad4510a8cc85a">BTD::incomingHIDDevice</a></div><div class="ttdeci">bool incomingHIDDevice</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00523">BTD.h:523</a></div></div>
<div class="ttc" id="class_b_t_d_html_a2aa418d820fb6b877ea079e0436a518e"><div class="ttname"><a href="class_b_t_d.html#a2aa418d820fb6b877ea079e0436a518e">BTD::pairWithHIDDevice</a></div><div class="ttdeci">bool pairWithHIDDevice</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00525">BTD.h:525</a></div></div>
<div class="ttc" id="class_b_t_d_html_a52d6c7895f6bb01729d01ce28a2f3079"><div class="ttname"><a href="class_b_t_d.html#a52d6c7895f6bb01729d01ce28a2f3079">BTD::qNextPollTime</a></div><div class="ttdeci">uint32_t qNextPollTime</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00548">BTD.h:548</a></div></div>
<div class="ttc" id="class_b_t_d_html_aa0fd5483f227e29de23c20ee31c940aa"><div class="ttname"><a href="class_b_t_d.html#aa0fd5483f227e29de23c20ee31c940aa">BTD::remote_name</a></div><div class="ttdeci">char remote_name[30]</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00455">BTD.h:455</a></div></div>
<div class="ttc" id="class_b_t_d_html_a2a9ecb996243e070e70972370e45e4fd"><div class="ttname"><a href="class_b_t_d.html#a2a9ecb996243e070e70972370e45e4fd">BTD::readPollInterval</a></div><div class="ttdeci">uint8_t readPollInterval()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00495">BTD.h:495</a></div></div>
<div class="ttc" id="class_bluetooth_service_html_aa7c81841d4e898e9dc91533da6d7ab64"><div class="ttname"><a href="class_bluetooth_service.html#aa7c81841d4e898e9dc91533da6d7ab64">BluetoothService::Reset</a></div><div class="ttdeci">virtual void Reset()=0</div></div>
<div class="ttc" id="class_b_t_d_html_a480510bd399ae74a97cd74c8474ef59c"><div class="ttname"><a href="class_b_t_d.html#a480510bd399ae74a97cd74c8474ef59c">BTD::BTD_DATAIN_PIPE</a></div><div class="ttdeci">static const uint8_t BTD_DATAIN_PIPE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00519">BTD.h:519</a></div></div>
<div class="ttc" id="class_b_t_d_html_a9a6747d58951f53389922d80e25b886c"><div class="ttname"><a href="class_b_t_d.html#a9a6747d58951f53389922d80e25b886c">BTD::hci_set_local_name</a></div><div class="ttdeci">void hci_set_local_name(const char *name)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01016">BTD.cpp:1016</a></div></div>
<div class="ttc" id="class_b_t_d_html_a7dd7faaec1d3d9a1d8159cc2a4190977"><div class="ttname"><a href="class_b_t_d.html#a7dd7faaec1d3d9a1d8159cc2a4190977">BTD::hci_write_scan_enable</a></div><div class="ttdeci">void hci_write_scan_enable()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l00941">BTD.cpp:941</a></div></div>
<div class="ttc" id="class_b_t_d_html_aa87c23bce56a20f2db47c6a40c8eda87"><div class="ttname"><a href="class_b_t_d.html#aa87c23bce56a20f2db47c6a40c8eda87">BTD::Release</a></div><div class="ttdeci">uint8_t Release()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l00365">BTD.cpp:365</a></div></div>
<div class="ttc" id="class_b_t_d_html_a29d176d9194e5c92fbe54791fc245407"><div class="ttname"><a href="class_b_t_d.html#a29d176d9194e5c92fbe54791fc245407">BTD::l2cap_disconnection_response</a></div><div class="ttdeci">void l2cap_disconnection_response(uint16_t handle, uint8_t rxid, uint8_t *dcid, uint8_t *scid)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01305">BTD.cpp:1305</a></div></div>
<div class="ttc" id="_usb_core_8h_html_afce880b09049d7105f8e68ff36d9ad17"><div class="ttname"><a href="_usb_core_8h.html#afce880b09049d7105f8e68ff36d9ad17">USB_CLASS_WIRELESS_CTRL</a></div><div class="ttdeci">#define USB_CLASS_WIRELESS_CTRL</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00071">UsbCore.h:71</a></div></div>
<div class="ttc" id="class_b_t_d_html_aa7735da01865bab01b569ee836173737"><div class="ttname"><a href="class_b_t_d.html#aa7735da01865bab01b569ee836173737">BTD::watingForConnection</a></div><div class="ttdeci">bool watingForConnection</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00435">BTD.h:435</a></div></div>
<div class="ttc" id="class_b_t_d_html_af40b8d52df99192880c8a13443b6c6d8"><div class="ttname"><a href="class_b_t_d.html#af40b8d52df99192880c8a13443b6c6d8">BTD::connectToHIDDevice</a></div><div class="ttdeci">bool connectToHIDDevice</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00483">BTD.h:483</a></div></div>
<div class="ttc" id="class_b_t_d_html_a58f78a9a28db81858dcc34a32a2ec82c"><div class="ttname"><a href="class_b_t_d.html#a58f78a9a28db81858dcc34a32a2ec82c">BTD::bAddress</a></div><div class="ttdeci">uint8_t bAddress</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00503">BTD.h:503</a></div></div>
<div class="ttc" id="class_b_t_d_html_a685d6371fb0c950ff6bad4510a8cc85a"><div class="ttname"><a href="class_b_t_d.html#a685d6371fb0c950ff6bad4510a8cc85a">BTD::incomingHIDDevice</a></div><div class="ttdeci">bool incomingHIDDevice</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00487">BTD.h:487</a></div></div>
<div class="ttc" id="class_b_t_d_html_a2aa418d820fb6b877ea079e0436a518e"><div class="ttname"><a href="class_b_t_d.html#a2aa418d820fb6b877ea079e0436a518e">BTD::pairWithHIDDevice</a></div><div class="ttdeci">bool pairWithHIDDevice</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00489">BTD.h:489</a></div></div>
<div class="ttc" id="class_b_t_d_html_a52d6c7895f6bb01729d01ce28a2f3079"><div class="ttname"><a href="class_b_t_d.html#a52d6c7895f6bb01729d01ce28a2f3079">BTD::qNextPollTime</a></div><div class="ttdeci">uint32_t qNextPollTime</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00512">BTD.h:512</a></div></div>
<div class="ttc" id="class_b_t_d_html_aa5976eead215a58553aee683d42405a0"><div class="ttname"><a href="class_b_t_d.html#aa5976eead215a58553aee683d42405a0">BTD::PrintEndpointDescriptor</a></div><div class="ttdeci">void PrintEndpointDescriptor(const USB_ENDPOINT_DESCRIPTOR *ep_ptr)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l00346">BTD.cpp:346</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_aed4a7c4ebf618412176ef19023454fad"><div class="ttname"><a href="_b_t_d_8h.html#aed4a7c4ebf618412176ef19023454fad">IOGEAR_GBU521_PID</a></div><div class="ttdeci">#define IOGEAR_GBU521_PID</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00030">BTD.h:30</a></div></div>
<div class="ttc" id="class_b_t_d_html_ac7caac80fb6f5f0e794af3644887d88e"><div class="ttname"><a href="class_b_t_d.html#ac7caac80fb6f5f0e794af3644887d88e">BTD::connectToWii</a></div><div class="ttdeci">bool connectToWii</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00503">BTD.h:503</a></div></div>
<div class="ttc" id="class_b_t_d_html_a4f1808a49e9aca397ba829fac16dc5c3"><div class="ttname"><a href="class_b_t_d.html#a4f1808a49e9aca397ba829fac16dc5c3">BTD::ConfigureDevice</a></div><div class="ttdeci">virtual uint8_t ConfigureDevice(uint8_t parent, uint8_t port, bool lowspeed)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l00048">BTD.cpp:48</a></div></div>
<div class="ttc" id="class_b_t_d_html_a962a5714c225dcb633434f02e3657583"><div class="ttname"><a href="class_b_t_d.html#a962a5714c225dcb633434f02e3657583">BTD::wiiUProController</a></div><div class="ttdeci">bool wiiUProController</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00513">BTD.h:513</a></div></div>
<div class="ttc" id="class_b_t_d_html_aa3bb6c692701cb33dfad1ea4d68b6f98"><div class="ttname"><a href="class_b_t_d.html#aa3bb6c692701cb33dfad1ea4d68b6f98">BTD::hci_handle</a></div><div class="ttdeci">uint16_t hci_handle</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00487">BTD.h:487</a></div></div>
<div class="ttc" id="class_b_t_d_html_a48608619d8253972dd132edbb3001c5f"><div class="ttname"><a href="class_b_t_d.html#a48608619d8253972dd132edbb3001c5f">BTD::Init</a></div><div class="ttdeci">virtual uint8_t Init(uint8_t parent, uint8_t port, bool lowspeed)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l00122">BTD.cpp:122</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_aed4a7c4ebf618412176ef19023454fad"><div class="ttname"><a href="_b_t_d_8h.html#aed4a7c4ebf618412176ef19023454fad">IOGEAR_GBU521_PID</a></div><div class="ttdeci">#define IOGEAR_GBU521_PID</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00031">BTD.h:31</a></div></div>
<div class="ttc" id="class_b_t_d_html_ac7caac80fb6f5f0e794af3644887d88e"><div class="ttname"><a href="class_b_t_d.html#ac7caac80fb6f5f0e794af3644887d88e">BTD::connectToWii</a></div><div class="ttdeci">bool connectToWii</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00467">BTD.h:467</a></div></div>
<div class="ttc" id="class_b_t_d_html_a4f1808a49e9aca397ba829fac16dc5c3"><div class="ttname"><a href="class_b_t_d.html#a4f1808a49e9aca397ba829fac16dc5c3">BTD::ConfigureDevice</a></div><div class="ttdeci">uint8_t ConfigureDevice(uint8_t parent, uint8_t port, bool lowspeed)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l00048">BTD.cpp:48</a></div></div>
<div class="ttc" id="class_bluetooth_service_html_a7bb2c8cccf3f2931629ead9becc51ec9"><div class="ttname"><a href="class_bluetooth_service.html#a7bb2c8cccf3f2931629ead9becc51ec9">BluetoothService::disconnect</a></div><div class="ttdeci">virtual void disconnect()=0</div></div>
<div class="ttc" id="class_b_t_d_html_a962a5714c225dcb633434f02e3657583"><div class="ttname"><a href="class_b_t_d.html#a962a5714c225dcb633434f02e3657583">BTD::wiiUProController</a></div><div class="ttdeci">bool wiiUProController</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00477">BTD.h:477</a></div></div>
<div class="ttc" id="class_b_t_d_html_aa3bb6c692701cb33dfad1ea4d68b6f98"><div class="ttname"><a href="class_b_t_d.html#aa3bb6c692701cb33dfad1ea4d68b6f98">BTD::hci_handle</a></div><div class="ttdeci">uint16_t hci_handle</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00451">BTD.h:451</a></div></div>
<div class="ttc" id="class_b_t_d_html_a48608619d8253972dd132edbb3001c5f"><div class="ttname"><a href="class_b_t_d.html#a48608619d8253972dd132edbb3001c5f">BTD::Init</a></div><div class="ttdeci">uint8_t Init(uint8_t parent, uint8_t port, bool lowspeed)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l00122">BTD.cpp:122</a></div></div>
<div class="ttc" id="struct_ep_info_html"><div class="ttname"><a href="struct_ep_info.html">EpInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00032">address.h:32</a></div></div>
<div class="ttc" id="class_b_t_d_html_a0b59db80825ffd5974e0d2c4a046b328"><div class="ttname"><a href="class_b_t_d.html#a0b59db80825ffd5974e0d2c4a046b328">BTD::pairWithHID</a></div><div class="ttdeci">void pairWithHID()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00516">BTD.h:516</a></div></div>
<div class="ttc" id="class_b_t_d_html_a1bea5dd793a2f47006b4a7642efc9e56"><div class="ttname"><a href="class_b_t_d.html#a1bea5dd793a2f47006b4a7642efc9e56">BTD::hci_disconnect</a></div><div class="ttdeci">void hci_disconnect(uint16_t handle)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01142">BTD.cpp:1142</a></div></div>
<div class="ttc" id="class_bluetooth_service_html"><div class="ttname"><a href="class_bluetooth_service.html">BluetoothService</a></div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00211">BTD.h:211</a></div></div>
<div class="ttc" id="class_b_t_d_html_acb94a629477d85cebd16a9c5ecd4a8b3"><div class="ttname"><a href="class_b_t_d.html#acb94a629477d85cebd16a9c5ecd4a8b3">BTD::hci_read_bdaddr</a></div><div class="ttdeci">void hci_read_bdaddr()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l00955">BTD.cpp:955</a></div></div>
<div class="ttc" id="class_b_t_d_html_a45ffbc7a40bbb763b0ece907c3dfc9ff"><div class="ttname"><a href="class_b_t_d.html#a45ffbc7a40bbb763b0ece907c3dfc9ff">BTD::hci_inquiry_cancel</a></div><div class="ttdeci">void hci_inquiry_cancel()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01034">BTD.cpp:1034</a></div></div>
<div class="ttc" id="class_b_t_d_html_a1f8e9171a310e50f2c4a3c19066efe5a"><div class="ttname"><a href="class_b_t_d.html#a1f8e9171a310e50f2c4a3c19066efe5a">BTD::my_bdaddr</a></div><div class="ttdeci">uint8_t my_bdaddr[6]</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00485">BTD.h:485</a></div></div>
<div class="ttc" id="class_b_t_d_html_a76e201c5b561e3a6d0405894ba5c2e41"><div class="ttname"><a href="class_b_t_d.html#a76e201c5b561e3a6d0405894ba5c2e41">BTD::Poll</a></div><div class="ttdeci">virtual uint8_t Poll()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l00371">BTD.cpp:371</a></div></div>
<div class="ttc" id="class_b_t_d_html_adf5dce0907ea33c919908fea5dc0cf21"><div class="ttname"><a href="class_b_t_d.html#adf5dce0907ea33c919908fea5dc0cf21">BTD::VIDPIDOK</a></div><div class="ttdeci">virtual boolean VIDPIDOK(uint16_t vid, uint16_t pid)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00298">BTD.h:298</a></div></div>
<div class="ttc" id="class_b_t_d_html_a49f433ab824f259c3815e180c73bb0ad"><div class="ttname"><a href="class_b_t_d.html#a49f433ab824f259c3815e180c73bb0ad">BTD::BTD_CONTROL_PIPE</a></div><div class="ttdeci">static const uint8_t BTD_CONTROL_PIPE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00551">BTD.h:551</a></div></div>
<div class="ttc" id="class_b_t_d_html_a0b59db80825ffd5974e0d2c4a046b328"><div class="ttname"><a href="class_b_t_d.html#a0b59db80825ffd5974e0d2c4a046b328">BTD::pairWithHID</a></div><div class="ttdeci">void pairWithHID()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00480">BTD.h:480</a></div></div>
<div class="ttc" id="class_b_t_d_html_a1bea5dd793a2f47006b4a7642efc9e56"><div class="ttname"><a href="class_b_t_d.html#a1bea5dd793a2f47006b4a7642efc9e56">BTD::hci_disconnect</a></div><div class="ttdeci">void hci_disconnect(uint16_t handle)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01150">BTD.cpp:1150</a></div></div>
<div class="ttc" id="class_bluetooth_service_html"><div class="ttname"><a href="class_bluetooth_service.html">BluetoothService</a></div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00563">BTD.h:563</a></div></div>
<div class="ttc" id="class_b_t_d_html_acb94a629477d85cebd16a9c5ecd4a8b3"><div class="ttname"><a href="class_b_t_d.html#acb94a629477d85cebd16a9c5ecd4a8b3">BTD::hci_read_bdaddr</a></div><div class="ttdeci">void hci_read_bdaddr()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l00963">BTD.cpp:963</a></div></div>
<div class="ttc" id="class_b_t_d_html_a45ffbc7a40bbb763b0ece907c3dfc9ff"><div class="ttname"><a href="class_b_t_d.html#a45ffbc7a40bbb763b0ece907c3dfc9ff">BTD::hci_inquiry_cancel</a></div><div class="ttdeci">void hci_inquiry_cancel()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01042">BTD.cpp:1042</a></div></div>
<div class="ttc" id="class_bluetooth_service_html_a16df27af39d09963cf0d43910d92ff4c"><div class="ttname"><a href="class_bluetooth_service.html#a16df27af39d09963cf0d43910d92ff4c">BluetoothService::Run</a></div><div class="ttdeci">virtual void Run()=0</div></div>
<div class="ttc" id="class_b_t_d_html_a1f8e9171a310e50f2c4a3c19066efe5a"><div class="ttname"><a href="class_b_t_d.html#a1f8e9171a310e50f2c4a3c19066efe5a">BTD::my_bdaddr</a></div><div class="ttdeci">uint8_t my_bdaddr[6]</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00449">BTD.h:449</a></div></div>
<div class="ttc" id="class_bluetooth_service_html_a321393d44ce59213fa1c7498c247d5ff"><div class="ttname"><a href="class_bluetooth_service.html#a321393d44ce59213fa1c7498c247d5ff">BluetoothService::pFuncOnInit</a></div><div class="ttdeci">void(* pFuncOnInit)(void)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00603">BTD.h:603</a></div></div>
<div class="ttc" id="class_bluetooth_service_html_a488e219cf0a90d39e643615b1f12e91f"><div class="ttname"><a href="class_bluetooth_service.html#a488e219cf0a90d39e643615b1f12e91f">BluetoothService::attachOnInit</a></div><div class="ttdeci">void attachOnInit(void(*funcOnInit)(void))</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00585">BTD.h:585</a></div></div>
<div class="ttc" id="class_b_t_d_html_a76e201c5b561e3a6d0405894ba5c2e41"><div class="ttname"><a href="class_b_t_d.html#a76e201c5b561e3a6d0405894ba5c2e41">BTD::Poll</a></div><div class="ttdeci">uint8_t Poll()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l00371">BTD.cpp:371</a></div></div>
<div class="ttc" id="class_b_t_d_html_a49f433ab824f259c3815e180c73bb0ad"><div class="ttname"><a href="class_b_t_d.html#a49f433ab824f259c3815e180c73bb0ad">BTD::BTD_CONTROL_PIPE</a></div><div class="ttdeci">static const uint8_t BTD_CONTROL_PIPE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00515">BTD.h:515</a></div></div>
<div class="ttc" id="class_usb_config_xtracter_html"><div class="ttname"><a href="class_usb_config_xtracter.html">UsbConfigXtracter</a></div><div class="ttdef"><b>Definition:</b> <a href="confdescparser_8h_source.html#l00023">confdescparser.h:23</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a32d591ef5742a99963130616ef146787"><div class="ttname"><a href="_b_t_d_8h.html#a32d591ef5742a99963130616ef146787">BULK_MAXPKTSIZE</a></div><div class="ttdeci">#define BULK_MAXPKTSIZE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00033">BTD.h:33</a></div></div>
<div class="ttc" id="class_b_t_d_html_a610183f9ddf04155ef2612d1839af7da"><div class="ttname"><a href="class_b_t_d.html#a610183f9ddf04155ef2612d1839af7da">BTD::disconnect</a></div><div class="ttdeci">void disconnect()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00322">BTD.h:322</a></div></div>
<div class="ttc" id="class_b_t_d_html_ab23f95f12675d7b4505ca6807d379182"><div class="ttname"><a href="class_b_t_d.html#ab23f95f12675d7b4505ca6807d379182">BTD::disc_bdaddr</a></div><div class="ttdeci">uint8_t disc_bdaddr[6]</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00489">BTD.h:489</a></div></div>
<div class="ttc" id="class_b_t_d_html_a4adfc7e51ad3b3c03e7c37d1af159e73"><div class="ttname"><a href="class_b_t_d.html#a4adfc7e51ad3b3c03e7c37d1af159e73">BTD::registerServiceClass</a></div><div class="ttdeci">int8_t registerServiceClass(BluetoothService *pService)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00333">BTD.h:333</a></div></div>
<div class="ttc" id="class_b_t_d_html_a0f1c28a03bcbe62cc7c083f97ea27594"><div class="ttname"><a href="class_b_t_d.html#a0f1c28a03bcbe62cc7c083f97ea27594">BTD::l2capConnectionClaimed</a></div><div class="ttdeci">bool l2capConnectionClaimed</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00473">BTD.h:473</a></div></div>
<div class="ttc" id="class_b_t_d_html_a91d92fee94e5a4cbca472bb3fd883e3e"><div class="ttname"><a href="class_b_t_d.html#a91d92fee94e5a4cbca472bb3fd883e3e">BTD::epInfo</a></div><div class="ttdeci">EpInfo epInfo[BTD_MAX_ENDPOINTS]</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00541">BTD.h:541</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a6a28bb0589fbe2da75b238d7568d894d"><div class="ttname"><a href="_b_t_d_8h.html#a6a28bb0589fbe2da75b238d7568d894d">IOGEAR_GBU521_VID</a></div><div class="ttdeci">#define IOGEAR_GBU521_VID</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00029">BTD.h:29</a></div></div>
<div class="ttc" id="class_bluetooth_service_html_a8dc98310fe481357eaa86c53e49af113"><div class="ttname"><a href="class_bluetooth_service.html#a8dc98310fe481357eaa86c53e49af113">BluetoothService::ACLData</a></div><div class="ttdeci">virtual void ACLData(uint8_t *ACLData)</div></div>
<div class="ttc" id="_b_t_d_8h_html_a0ae276efa5e73a4da658c714e70402c0"><div class="ttname"><a href="_b_t_d_8h.html#a0ae276efa5e73a4da658c714e70402c0">PS3_PID</a></div><div class="ttdeci">#define PS3_PID</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00025">BTD.h:25</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_aee41c4878894db24e7ad8cd6246595cd"><div class="ttname"><a href="_b_t_d_8h.html#aee41c4878894db24e7ad8cd6246595cd">BTD_MAX_ENDPOINTS</a></div><div class="ttdeci">#define BTD_MAX_ENDPOINTS</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00189">BTD.h:189</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a54903b410722a45f8246653cd4d00632"><div class="ttname"><a href="_b_t_d_8h.html#a54903b410722a45f8246653cd4d00632">PS3NAVIGATION_PID</a></div><div class="ttdeci">#define PS3NAVIGATION_PID</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00026">BTD.h:26</a></div></div>
<div class="ttc" id="class_b_t_d_html_a91f61915c503fe7b861c88f5b3e6733c"><div class="ttname"><a href="class_b_t_d.html#a91f61915c503fe7b861c88f5b3e6733c">BTD::l2cap_information_response</a></div><div class="ttdeci">void l2cap_information_response(uint16_t handle, uint8_t rxid, uint8_t infoTypeLow, uint8_t infoTypeHigh)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01310">BTD.cpp:1310</a></div></div>
<div class="ttc" id="class_b_t_d_html_a9a17405df60591b909ff1502fb8f3141"><div class="ttname"><a href="class_b_t_d.html#a9a17405df60591b909ff1502fb8f3141">BTD::hci_write_class_of_device</a></div><div class="ttdeci">void hci_write_class_of_device()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01154">BTD.cpp:1154</a></div></div>
<div class="ttc" id="class_b_t_d_html_a7114d2cb62aa413e5ecb25c45c76832b"><div class="ttname"><a href="class_b_t_d.html#a7114d2cb62aa413e5ecb25c45c76832b">BTD::hci_pin_code_negative_request_reply</a></div><div class="ttdeci">void hci_pin_code_negative_request_reply()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01104">BTD.cpp:1104</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a2c060a7be42c5c4c57990cacec0b45f5"><div class="ttname"><a href="_b_t_d_8h.html#a2c060a7be42c5c4c57990cacec0b45f5">HCI_CHECK_DEVICE_SERVICE</a></div><div class="ttdeci">#define HCI_CHECK_DEVICE_SERVICE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00048">BTD.h:48</a></div></div>
<div class="ttc" id="class_u_s_b_html"><div class="ttname"><a href="class_u_s_b.html">USB</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00190">UsbCore.h:190</a></div></div>
<div class="ttc" id="class_bluetooth_service_html_a680692ff13cb37eb81ddbb74bc9e0383"><div class="ttname"><a href="class_bluetooth_service.html#a680692ff13cb37eb81ddbb74bc9e0383">BluetoothService::Run</a></div><div class="ttdeci">virtual void Run()</div></div>
<div class="ttc" id="class_b_t_d_html_a10c34527ae90e95791ac48ac7d1154a2"><div class="ttname"><a href="class_b_t_d.html#a10c34527ae90e95791ac48ac7d1154a2">BTD::bConfNum</a></div><div class="ttdeci">uint8_t bConfNum</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00544">BTD.h:544</a></div></div>
<div class="ttc" id="class_b_t_d_html_af4d28b9c1a3b9688a1871610caee2cfc"><div class="ttname"><a href="class_b_t_d.html#af4d28b9c1a3b9688a1871610caee2cfc">BTD::hci_link_key_request_negative_reply</a></div><div class="ttdeci">void hci_link_key_request_negative_reply()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01118">BTD.cpp:1118</a></div></div>
<div class="ttc" id="class_b_t_d_html_a6b66a27c0fd359e3129f53451352b55c"><div class="ttname"><a href="class_b_t_d.html#a6b66a27c0fd359e3129f53451352b55c">BTD::pairWithWiimote</a></div><div class="ttdeci">void pairWithWiimote()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00500">BTD.h:500</a></div></div>
<div class="ttc" id="class_b_t_d_html_a1b2440748bdaaeb552a05b0f0902f5d8"><div class="ttname"><a href="class_b_t_d.html#a1b2440748bdaaeb552a05b0f0902f5d8">BTD::isReady</a></div><div class="ttdeci">virtual bool isReady()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00278">BTD.h:278</a></div></div>
<div class="ttc" id="class_b_t_d_html_aad7d8ef46e60b48ff4aaabefb0b290e7"><div class="ttname"><a href="class_b_t_d.html#aad7d8ef46e60b48ff4aaabefb0b290e7">BTD::L2CAP_Command</a></div><div class="ttdeci">void L2CAP_Command(uint16_t handle, uint8_t *data, uint8_t nbytes, uint8_t channelLow=0x01, uint8_t channelHigh=0x00)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01190">BTD.cpp:1190</a></div></div>
<div class="ttc" id="class_b_t_d_html_a792ac4529b65235698ecf3d37982c05e"><div class="ttname"><a href="class_b_t_d.html#a792ac4529b65235698ecf3d37982c05e">BTD::l2cap_config_response</a></div><div class="ttdeci">void l2cap_config_response(uint16_t handle, uint8_t rxid, uint8_t *scid)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01265">BTD.cpp:1265</a></div></div>
<div class="ttc" id="class_b_t_d_html_ab646a59311344966f139bb3b78f30233"><div class="ttname"><a href="class_b_t_d.html#ab646a59311344966f139bb3b78f30233">BTD::l2cap_config_request</a></div><div class="ttdeci">void l2cap_config_request(uint16_t handle, uint8_t rxid, uint8_t *dcid)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01248">BTD.cpp:1248</a></div></div>
<div class="ttc" id="class_b_t_d_html_a70047b0f624c3f0ef29f8b76b8a34938"><div class="ttname"><a href="class_b_t_d.html#a70047b0f624c3f0ef29f8b76b8a34938">BTD::hci_pin_code_request_reply</a></div><div class="ttdeci">void hci_pin_code_request_reply()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01068">BTD.cpp:1068</a></div></div>
<div class="ttc" id="class_bluetooth_service_html_a66ee2f09c6087b82e3920c3d652a99b2"><div class="ttname"><a href="class_bluetooth_service.html#a66ee2f09c6087b82e3920c3d652a99b2">BluetoothService::disconnect</a></div><div class="ttdeci">virtual void disconnect()</div></div>
<div class="ttc" id="class_b_t_d_html_a4bcd1d622a6455ee3d0cccc4408700a1"><div class="ttname"><a href="class_b_t_d.html#a4bcd1d622a6455ee3d0cccc4408700a1">BTD::pUsb</a></div><div class="ttdeci">USB * pUsb</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00533">BTD.h:533</a></div></div>
<div class="ttc" id="class_b_t_d_html_addd07c18c725a324a05792a83026d36d"><div class="ttname"><a href="class_b_t_d.html#addd07c18c725a324a05792a83026d36d">BTD::hci_authentication_request</a></div><div class="ttdeci">void hci_authentication_request()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01132">BTD.cpp:1132</a></div></div>
<div class="ttc" id="class_b_t_d_html_ae2ba215b6942f4131e4c5fdef2771e22"><div class="ttname"><a href="class_b_t_d.html#ae2ba215b6942f4131e4c5fdef2771e22">BTD::hci_read_local_version_information</a></div><div class="ttdeci">void hci_read_local_version_information()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l00964">BTD.cpp:964</a></div></div>
<div class="ttc" id="class_b_t_d_html_a1cb07a155c69bb1fcf45ae030b8947ec"><div class="ttname"><a href="class_b_t_d.html#a1cb07a155c69bb1fcf45ae030b8947ec">BTD::hci_accept_connection</a></div><div class="ttdeci">void hci_accept_connection()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l00973">BTD.cpp:973</a></div></div>
<div class="ttc" id="class_b_t_d_html_af11ad71d20783d46fe42dd405d10dfda"><div class="ttname"><a href="class_b_t_d.html#af11ad71d20783d46fe42dd405d10dfda">BTD::HCI_Command</a></div><div class="ttdeci">void HCI_Command(uint8_t *data, uint16_t nbytes)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l00919">BTD.cpp:919</a></div></div>
<div class="ttc" id="class_bluetooth_service_html_aa67faf901f78a55a202945a20f6d778a"><div class="ttname"><a href="class_bluetooth_service.html#aa67faf901f78a55a202945a20f6d778a">BluetoothService::pBtd</a></div><div class="ttdeci">BTD * pBtd</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00606">BTD.h:606</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a32d591ef5742a99963130616ef146787"><div class="ttname"><a href="_b_t_d_8h.html#a32d591ef5742a99963130616ef146787">BULK_MAXPKTSIZE</a></div><div class="ttdeci">#define BULK_MAXPKTSIZE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00034">BTD.h:34</a></div></div>
<div class="ttc" id="class_b_t_d_html_a610183f9ddf04155ef2612d1839af7da"><div class="ttname"><a href="class_b_t_d.html#a610183f9ddf04155ef2612d1839af7da">BTD::disconnect</a></div><div class="ttdeci">void disconnect()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l00383">BTD.cpp:383</a></div></div>
<div class="ttc" id="class_b_t_d_html_ab23f95f12675d7b4505ca6807d379182"><div class="ttname"><a href="class_b_t_d.html#ab23f95f12675d7b4505ca6807d379182">BTD::disc_bdaddr</a></div><div class="ttdeci">uint8_t disc_bdaddr[6]</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00453">BTD.h:453</a></div></div>
<div class="ttc" id="class_b_t_d_html_a0f1c28a03bcbe62cc7c083f97ea27594"><div class="ttname"><a href="class_b_t_d.html#a0f1c28a03bcbe62cc7c083f97ea27594">BTD::l2capConnectionClaimed</a></div><div class="ttdeci">bool l2capConnectionClaimed</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00437">BTD.h:437</a></div></div>
<div class="ttc" id="class_b_t_d_html_a91d92fee94e5a4cbca472bb3fd883e3e"><div class="ttname"><a href="class_b_t_d.html#a91d92fee94e5a4cbca472bb3fd883e3e">BTD::epInfo</a></div><div class="ttdeci">EpInfo epInfo[BTD_MAX_ENDPOINTS]</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00505">BTD.h:505</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a6a28bb0589fbe2da75b238d7568d894d"><div class="ttname"><a href="_b_t_d_8h.html#a6a28bb0589fbe2da75b238d7568d894d">IOGEAR_GBU521_VID</a></div><div class="ttdeci">#define IOGEAR_GBU521_VID</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00030">BTD.h:30</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a0ae276efa5e73a4da658c714e70402c0"><div class="ttname"><a href="_b_t_d_8h.html#a0ae276efa5e73a4da658c714e70402c0">PS3_PID</a></div><div class="ttdeci">#define PS3_PID</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00026">BTD.h:26</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_aee41c4878894db24e7ad8cd6246595cd"><div class="ttname"><a href="_b_t_d_8h.html#aee41c4878894db24e7ad8cd6246595cd">BTD_MAX_ENDPOINTS</a></div><div class="ttdeci">#define BTD_MAX_ENDPOINTS</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00187">BTD.h:187</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a54903b410722a45f8246653cd4d00632"><div class="ttname"><a href="_b_t_d_8h.html#a54903b410722a45f8246653cd4d00632">PS3NAVIGATION_PID</a></div><div class="ttdeci">#define PS3NAVIGATION_PID</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00027">BTD.h:27</a></div></div>
<div class="ttc" id="class_b_t_d_html_a91f61915c503fe7b861c88f5b3e6733c"><div class="ttname"><a href="class_b_t_d.html#a91f61915c503fe7b861c88f5b3e6733c">BTD::l2cap_information_response</a></div><div class="ttdeci">void l2cap_information_response(uint16_t handle, uint8_t rxid, uint8_t infoTypeLow, uint8_t infoTypeHigh)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01318">BTD.cpp:1318</a></div></div>
<div class="ttc" id="class_bluetooth_service_html_a410c7df1e49328de23a89921c89f9573"><div class="ttname"><a href="class_bluetooth_service.html#a410c7df1e49328de23a89921c89f9573">BluetoothService::BluetoothService</a></div><div class="ttdeci">BluetoothService(BTD *p)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00565">BTD.h:565</a></div></div>
<div class="ttc" id="class_b_t_d_html_a9a17405df60591b909ff1502fb8f3141"><div class="ttname"><a href="class_b_t_d.html#a9a17405df60591b909ff1502fb8f3141">BTD::hci_write_class_of_device</a></div><div class="ttdeci">void hci_write_class_of_device()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01162">BTD.cpp:1162</a></div></div>
<div class="ttc" id="class_bluetooth_service_html_a67b1db67c05d0bbdcd9c992135455437"><div class="ttname"><a href="class_bluetooth_service.html#a67b1db67c05d0bbdcd9c992135455437">BluetoothService::hci_handle</a></div><div class="ttdeci">uint16_t hci_handle</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00609">BTD.h:609</a></div></div>
<div class="ttc" id="class_b_t_d_html_a7114d2cb62aa413e5ecb25c45c76832b"><div class="ttname"><a href="class_b_t_d.html#a7114d2cb62aa413e5ecb25c45c76832b">BTD::hci_pin_code_negative_request_reply</a></div><div class="ttdeci">void hci_pin_code_negative_request_reply()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01112">BTD.cpp:1112</a></div></div>
<div class="ttc" id="class_bluetooth_service_html_a9740e997198485c9629a146a9c981043"><div class="ttname"><a href="class_bluetooth_service.html#a9740e997198485c9629a146a9c981043">BluetoothService::ACLData</a></div><div class="ttdeci">virtual void ACLData(uint8_t *ACLData)=0</div></div>
<div class="ttc" id="class_b_t_d_html_af2cd7fd7592348f26c78e49b40e83935"><div class="ttname"><a href="class_b_t_d.html#af2cd7fd7592348f26c78e49b40e83935">BTD::DEVCLASSOK</a></div><div class="ttdeci">virtual bool DEVCLASSOK(uint8_t klass)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00255">BTD.h:255</a></div></div>
<div class="ttc" id="class_bluetooth_service_html_a78a1a893ec9c2db32e42bc2271c4a4f2"><div class="ttname"><a href="class_bluetooth_service.html#a78a1a893ec9c2db32e42bc2271c4a4f2">BluetoothService::l2cap_event_flag</a></div><div class="ttdeci">uint32_t l2cap_event_flag</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00612">BTD.h:612</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a2c060a7be42c5c4c57990cacec0b45f5"><div class="ttname"><a href="_b_t_d_8h.html#a2c060a7be42c5c4c57990cacec0b45f5">HCI_CHECK_DEVICE_SERVICE</a></div><div class="ttdeci">#define HCI_CHECK_DEVICE_SERVICE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00046">BTD.h:46</a></div></div>
<div class="ttc" id="class_u_s_b_html"><div class="ttname"><a href="class_u_s_b.html">USB</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00197">UsbCore.h:197</a></div></div>
<div class="ttc" id="class_b_t_d_html_a10c34527ae90e95791ac48ac7d1154a2"><div class="ttname"><a href="class_b_t_d.html#a10c34527ae90e95791ac48ac7d1154a2">BTD::bConfNum</a></div><div class="ttdeci">uint8_t bConfNum</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00508">BTD.h:508</a></div></div>
<div class="ttc" id="class_b_t_d_html_af4d28b9c1a3b9688a1871610caee2cfc"><div class="ttname"><a href="class_b_t_d.html#af4d28b9c1a3b9688a1871610caee2cfc">BTD::hci_link_key_request_negative_reply</a></div><div class="ttdeci">void hci_link_key_request_negative_reply()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01126">BTD.cpp:1126</a></div></div>
<div class="ttc" id="class_b_t_d_html_a6b66a27c0fd359e3129f53451352b55c"><div class="ttname"><a href="class_b_t_d.html#a6b66a27c0fd359e3129f53451352b55c">BTD::pairWithWiimote</a></div><div class="ttdeci">void pairWithWiimote()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00464">BTD.h:464</a></div></div>
<div class="ttc" id="class_b_t_d_html_a1b2440748bdaaeb552a05b0f0902f5d8"><div class="ttname"><a href="class_b_t_d.html#a1b2440748bdaaeb552a05b0f0902f5d8">BTD::isReady</a></div><div class="ttdeci">virtual bool isReady()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00246">BTD.h:246</a></div></div>
<div class="ttc" id="class_b_t_d_html_aad7d8ef46e60b48ff4aaabefb0b290e7"><div class="ttname"><a href="class_b_t_d.html#aad7d8ef46e60b48ff4aaabefb0b290e7">BTD::L2CAP_Command</a></div><div class="ttdeci">void L2CAP_Command(uint16_t handle, uint8_t *data, uint8_t nbytes, uint8_t channelLow=0x01, uint8_t channelHigh=0x00)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01198">BTD.cpp:1198</a></div></div>
<div class="ttc" id="class_b_t_d_html_a792ac4529b65235698ecf3d37982c05e"><div class="ttname"><a href="class_b_t_d.html#a792ac4529b65235698ecf3d37982c05e">BTD::l2cap_config_response</a></div><div class="ttdeci">void l2cap_config_response(uint16_t handle, uint8_t rxid, uint8_t *scid)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01273">BTD.cpp:1273</a></div></div>
<div class="ttc" id="class_b_t_d_html_ab646a59311344966f139bb3b78f30233"><div class="ttname"><a href="class_b_t_d.html#ab646a59311344966f139bb3b78f30233">BTD::l2cap_config_request</a></div><div class="ttdeci">void l2cap_config_request(uint16_t handle, uint8_t rxid, uint8_t *dcid)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01256">BTD.cpp:1256</a></div></div>
<div class="ttc" id="class_b_t_d_html_a70047b0f624c3f0ef29f8b76b8a34938"><div class="ttname"><a href="class_b_t_d.html#a70047b0f624c3f0ef29f8b76b8a34938">BTD::hci_pin_code_request_reply</a></div><div class="ttdeci">void hci_pin_code_request_reply()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01076">BTD.cpp:1076</a></div></div>
<div class="ttc" id="class_b_t_d_html_a4bcd1d622a6455ee3d0cccc4408700a1"><div class="ttname"><a href="class_b_t_d.html#a4bcd1d622a6455ee3d0cccc4408700a1">BTD::pUsb</a></div><div class="ttdeci">USB * pUsb</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00497">BTD.h:497</a></div></div>
<div class="ttc" id="class_b_t_d_html_addd07c18c725a324a05792a83026d36d"><div class="ttname"><a href="class_b_t_d.html#addd07c18c725a324a05792a83026d36d">BTD::hci_authentication_request</a></div><div class="ttdeci">void hci_authentication_request()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01140">BTD.cpp:1140</a></div></div>
<div class="ttc" id="class_b_t_d_html_ae2ba215b6942f4131e4c5fdef2771e22"><div class="ttname"><a href="class_b_t_d.html#ae2ba215b6942f4131e4c5fdef2771e22">BTD::hci_read_local_version_information</a></div><div class="ttdeci">void hci_read_local_version_information()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l00972">BTD.cpp:972</a></div></div>
<div class="ttc" id="class_b_t_d_html_a1cb07a155c69bb1fcf45ae030b8947ec"><div class="ttname"><a href="class_b_t_d.html#a1cb07a155c69bb1fcf45ae030b8947ec">BTD::hci_accept_connection</a></div><div class="ttdeci">void hci_accept_connection()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l00981">BTD.cpp:981</a></div></div>
<div class="ttc" id="class_bluetooth_service_html_a2a3674a4bb5d409840995eabe07049bd"><div class="ttname"><a href="class_bluetooth_service.html#a2a3674a4bb5d409840995eabe07049bd">BluetoothService::checkHciHandle</a></div><div class="ttdeci">bool checkHciHandle(uint8_t *buf, uint16_t handle)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00598">BTD.h:598</a></div></div>
<div class="ttc" id="class_bluetooth_service_html_a34d08d56c560c892c9684133f69b971b"><div class="ttname"><a href="class_bluetooth_service.html#a34d08d56c560c892c9684133f69b971b">BluetoothService::onInit</a></div><div class="ttdeci">virtual void onInit()=0</div></div>
<div class="ttc" id="class_b_t_d_html_af11ad71d20783d46fe42dd405d10dfda"><div class="ttname"><a href="class_b_t_d.html#af11ad71d20783d46fe42dd405d10dfda">BTD::HCI_Command</a></div><div class="ttdeci">void HCI_Command(uint8_t *data, uint16_t nbytes)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l00927">BTD.cpp:927</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.7
</a> 1.8.9.1
</small></address>
</body>
</html>

View file

@ -3,15 +3,16 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<meta name="generator" content="Doxygen 1.8.9.1"/>
<title>USB Host Shield 2.0: BTHID.cpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="imageStyle.css" rel="stylesheet" type="text/css"/>
@ -31,7 +32,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.7 -->
<!-- Generated by Doxygen 1.8.9.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -70,7 +71,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
@ -95,7 +96,7 @@ Include dependency graph for BTHID.cpp:</div>
<div class="dyncontent">
<div class="center"><img src="_b_t_h_i_d_8cpp__incl.png" border="0" usemap="#_b_t_h_i_d_8cpp" alt=""/></div>
<map name="_b_t_h_i_d_8cpp" id="_b_t_h_i_d_8cpp">
<area shape="rect" id="node2" href="_b_t_h_i_d_8h.html" title="BTHID.h" alt="" coords="37,79,110,104"/><area shape="rect" id="node3" href="_b_t_d_8h.html" title="BTD.h" alt="" coords="5,225,64,251"/><area shape="rect" id="node5" href="hidboot_8h.html" title="hidboot.h" alt="" coords="74,152,150,177"/><area shape="rect" id="node4" href="_usb_8h.html" title="Usb.h" alt="" coords="57,372,114,397"/><area shape="rect" id="node6" href="hid_8h.html" title="hid.h" alt="" coords="88,225,139,251"/><area shape="rect" id="node7" href="hidusagestr_8h.html" title="hidusagestr.h" alt="" coords="123,299,224,324"/></map>
<area shape="rect" id="node2" href="_b_t_h_i_d_8h.html" title="BTHID.h" alt="" coords="44,79,116,104"/><area shape="rect" id="node3" href="_b_t_d_8h.html" title="BTD.h" alt="" coords="5,152,64,177"/><area shape="rect" id="node7" href="hidboot_8h.html" title="hidboot.h" alt="" coords="89,152,165,177"/><area shape="rect" id="node4" href="_usb_8h.html" title="Usb.h" alt="" coords="57,372,114,397"/><area shape="rect" id="node5" href="hid_8h.html" title="hid.h" alt="" coords="87,225,137,251"/><area shape="rect" id="node6" href="hidusagestr_8h.html" title="hidusagestr.h" alt="" coords="123,299,224,324"/></map>
</div>
</div>
<p><a href="_b_t_h_i_d_8cpp_source.html">Go to the source code of this file.</a></p>
@ -104,7 +105,7 @@ Include dependency graph for BTHID.cpp:</div>
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.7
</a> 1.8.9.1
</small></address>
</body>
</html>

View file

@ -1,8 +1,8 @@
<map id="BTHID.cpp" name="BTHID.cpp">
<area shape="rect" id="node2" href="$_b_t_h_i_d_8h.html" title="BTHID.h" alt="" coords="37,79,110,104"/>
<area shape="rect" id="node3" href="$_b_t_d_8h.html" title="BTD.h" alt="" coords="5,225,64,251"/>
<area shape="rect" id="node5" href="$hidboot_8h.html" title="hidboot.h" alt="" coords="74,152,150,177"/>
<area shape="rect" id="node2" href="$_b_t_h_i_d_8h.html" title="BTHID.h" alt="" coords="44,79,116,104"/>
<area shape="rect" id="node3" href="$_b_t_d_8h.html" title="BTD.h" alt="" coords="5,152,64,177"/>
<area shape="rect" id="node7" href="$hidboot_8h.html" title="hidboot.h" alt="" coords="89,152,165,177"/>
<area shape="rect" id="node4" href="$_usb_8h.html" title="Usb.h" alt="" coords="57,372,114,397"/>
<area shape="rect" id="node6" href="$hid_8h.html" title="hid.h" alt="" coords="88,225,139,251"/>
<area shape="rect" id="node7" href="$hidusagestr_8h.html" title="hidusagestr.h" alt="" coords="123,299,224,324"/>
<area shape="rect" id="node5" href="$hid_8h.html" title="hid.h" alt="" coords="87,225,137,251"/>
<area shape="rect" id="node6" href="$hidusagestr_8h.html" title="hidusagestr.h" alt="" coords="123,299,224,324"/>
</map>

View file

@ -1 +1 @@
3325b0ff5c79ca7ff5822cbf27f33902
5019ad894e519a7da9fb09997945ae68

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 19 KiB

View file

@ -3,15 +3,16 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<meta name="generator" content="Doxygen 1.8.9.1"/>
<title>USB Host Shield 2.0: BTHID.cpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="imageStyle.css" rel="stylesheet" type="text/css"/>
@ -31,7 +32,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.7 -->
<!-- Generated by Doxygen 1.8.9.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -70,7 +71,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
@ -112,461 +113,462 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">//#define PRINTREPORT // Uncomment to print the report send by the HID device</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div>
<div class="line"><a name="l00023"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#a5ee874513852b83d6a04b991ab892f54"> 23</a></span>&#160;<a class="code" href="class_b_t_h_i_d.html#a5ee874513852b83d6a04b991ab892f54">BTHID::BTHID</a>(<a class="code" href="class_b_t_d.html">BTD</a> *p, <span class="keywordtype">bool</span> pair, <span class="keyword">const</span> <span class="keywordtype">char</span> *pin) :</div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;pBtd(p), <span class="comment">// pointer to USB class instance - mandatory</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<a class="code" href="class_bluetooth_service.html">BluetoothService</a>(p), <span class="comment">// Pointer to USB class instance - mandatory</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;protocolMode(<a class="code" href="hid_8h.html#a41258c5dd55e5ae0378ec8ded892ce37">HID_BOOT_PROTOCOL</a>) {</div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keywordflow">for</span>(uint8_t i = 0; i &lt; <a class="code" href="_b_t_h_i_d_8h.html#ae20db05997d6849ad3de3d7eb6145f93">NUM_PARSERS</a>; i++)</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; pRptParser[i] = NULL;</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>)</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#a4adfc7e51ad3b3c03e7c37d1af159e73">registerServiceClass</a>(<span class="keyword">this</span>); <span class="comment">// Register it as a Bluetooth service</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <a class="code" href="class_bluetooth_service.html#aa67faf901f78a55a202945a20f6d778a">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#a2aa418d820fb6b877ea079e0436a518e">pairWithHIDDevice</a> = <a class="code" href="class_b_t_h_i_d.html#afb19720b65cda69d910416c7a689dd45">pair</a>;</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <a class="code" href="class_bluetooth_service.html#aa67faf901f78a55a202945a20f6d778a">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#a215cb939c01ed3ff56db37841224546c">btdPin</a> = pin;</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#a2aa418d820fb6b877ea079e0436a518e">pairWithHIDDevice</a> = <a class="code" href="class_b_t_h_i_d.html#afb19720b65cda69d910416c7a689dd45">pair</a>;</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#a215cb939c01ed3ff56db37841224546c">btdPin</a> = pin;</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="comment">/* Set device cid for the control and intterrupt channelse - LSB */</span></div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; control_dcid[0] = 0x70; <span class="comment">// 0x0070</span></div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; control_dcid[1] = 0x00;</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; interrupt_dcid[0] = 0x71; <span class="comment">// 0x0071</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; interrupt_dcid[1] = 0x00;</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="comment">/* Set device cid for the control and intterrupt channelse - LSB */</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; control_dcid[0] = 0x70; <span class="comment">// 0x0070</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; control_dcid[1] = 0x00;</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; interrupt_dcid[0] = 0x71; <span class="comment">// 0x0071</span></div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; interrupt_dcid[1] = 0x00;</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <a class="code" href="class_b_t_h_i_d.html#af4c58b81414a037910dd6fb78f97b96e">Reset</a>();</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;}</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <a class="code" href="class_b_t_h_i_d.html#af4c58b81414a037910dd6fb78f97b96e">Reset</a>();</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;}</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
<div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#af4c58b81414a037910dd6fb78f97b96e"> 44</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_b_t_h_i_d.html#af4c58b81414a037910dd6fb78f97b96e">BTHID::Reset</a>() {</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <a class="code" href="class_b_t_h_i_d.html#ab3a81823a1d8805383146a6baad6ccc4">connected</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; activeConnection = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; l2cap_event_flag = 0; <span class="comment">// Reset flags</span></div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#a15cc1db556ad9a4ec6144ca8a42f8919">L2CAP_WAIT</a>;</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <a class="code" href="class_b_t_h_i_d.html#acc22bf5baaa096fe09b72c812c1134f0">ResetBTHID</a>();</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;}</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div>
<div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#ae1ee62d7b9951ec7960f122c9fc2d2d0"> 52</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_b_t_h_i_d.html#ae1ee62d7b9951ec7960f122c9fc2d2d0">BTHID::disconnect</a>() { <span class="comment">// Use this void to disconnect the device</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="comment">// First the HID interrupt channel has to be disconnected, then the HID control channel and finally the HCI connection</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#ac7053ef7ac690be3afbbdd985b163f10">l2cap_disconnection_request</a>(<a class="code" href="class_b_t_h_i_d.html#a8e4888359cda09bc7123d971bb9d8dcf">hci_handle</a>, ++identifier, <a class="code" href="class_b_t_h_i_d.html#a34a91f92ea32033403c2b37af92535dc">interrupt_scid</a>, interrupt_dcid);</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <a class="code" href="class_b_t_h_i_d.html#af4c58b81414a037910dd6fb78f97b96e">Reset</a>();</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#ab569b2085ad29f41d1da9c0ed352bd65">L2CAP_INTERRUPT_DISCONNECT</a>;</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;}</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div>
<div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#a84eb1b910027f2d78741f65225c14e54"> 59</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_b_t_h_i_d.html#a84eb1b910027f2d78741f65225c14e54">BTHID::ACLData</a>(uint8_t* l2capinbuf) {</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">if</span>(!<a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#a0f1c28a03bcbe62cc7c083f97ea27594">l2capConnectionClaimed</a> &amp;&amp; <a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#a685d6371fb0c950ff6bad4510a8cc85a">incomingHIDDevice</a> &amp;&amp; !<a class="code" href="class_b_t_h_i_d.html#ab3a81823a1d8805383146a6baad6ccc4">connected</a> &amp;&amp; !activeConnection) {</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordflow">if</span>(l2capinbuf[8] == <a class="code" href="_b_t_d_8h.html#ac4bae0c65fd00ed849cb226302d19c85">L2CAP_CMD_CONNECTION_REQUEST</a>) {</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordflow">if</span>((l2capinbuf[12] | (l2capinbuf[13] &lt;&lt; 8)) == <a class="code" href="_b_t_d_8h.html#a1465673868452307bcdab8e201430c27">HID_CTRL_PSM</a>) {</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#a685d6371fb0c950ff6bad4510a8cc85a">incomingHIDDevice</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#a0f1c28a03bcbe62cc7c083f97ea27594">l2capConnectionClaimed</a> = <span class="keyword">true</span>; <span class="comment">// Claim that the incoming connection belongs to this service</span></div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; activeConnection = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a8e4888359cda09bc7123d971bb9d8dcf">hci_handle</a> = <a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#aa3bb6c692701cb33dfad1ea4d68b6f98">hci_handle</a>; <span class="comment">// Store the HCI Handle for the connection</span></div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#a15cc1db556ad9a4ec6144ca8a42f8919">L2CAP_WAIT</a>;</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; }</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; }</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; }</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="comment">//if((l2capinbuf[0] | (uint16_t)l2capinbuf[1] &lt;&lt; 8) == (hci_handle | 0x2000U)) { // acl_handle_ok or it&#39;s a new connection</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a3aa6623f7fa8839754d3deefa6d60372">UHS_ACL_HANDLE_OK</a>(l2capinbuf, <a class="code" href="class_b_t_h_i_d.html#a8e4888359cda09bc7123d971bb9d8dcf">hci_handle</a>)) { <span class="comment">// acl_handle_ok or it&#39;s a new connection</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">if</span>((l2capinbuf[6] | (l2capinbuf[7] &lt;&lt; 8)) == 0x0001U) { <span class="comment">// l2cap_control - Channel ID for ACL-U</span></div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordflow">if</span>(l2capinbuf[8] == <a class="code" href="_b_t_d_8h.html#a6ffcd72787c86f248192eb06a3fe18cb">L2CAP_CMD_COMMAND_REJECT</a>) {</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nL2CAP Command Rejected - Reason: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[13], 0x80);</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[12], 0x80);</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[17], 0x80);</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[16], 0x80);</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[15], 0x80);</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[14], 0x80);</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[8] == <a class="code" href="_b_t_d_8h.html#aef7b306479de265d725dbe5816a8227b">L2CAP_CMD_CONNECTION_RESPONSE</a>) {</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">if</span>(((l2capinbuf[16] | (l2capinbuf[17] &lt;&lt; 8)) == 0x0000) &amp;&amp; ((l2capinbuf[18] | (l2capinbuf[19] &lt;&lt; 8)) == <a class="code" href="_b_t_d_8h.html#a1be7a56cdddcdb7dedf16d4dee381e93">SUCCESSFUL</a>)) { <span class="comment">// Success</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordflow">if</span>(l2capinbuf[14] == control_dcid[0] &amp;&amp; l2capinbuf[15] == control_dcid[1]) {</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="comment">//Notify(PSTR(&quot;\r\nHID Control Connection Complete&quot;), 0x80);</span></div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; identifier = l2capinbuf[9];</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <a class="code" href="class_b_t_h_i_d.html#acf6933a4988ed9f48c6e08cc7c9b906c">control_scid</a>[0] = l2capinbuf[12];</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <a class="code" href="class_b_t_h_i_d.html#acf6933a4988ed9f48c6e08cc7c9b906c">control_scid</a>[1] = l2capinbuf[13];</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <a class="code" href="_b_t_d_8h.html#a5f035450f226204f021e69ad1faa2e3a">l2cap_set_flag</a>(<a class="code" href="_b_t_d_8h.html#a2e5a9c283f0912833f3e0418d3feadd7">L2CAP_FLAG_CONTROL_CONNECTED</a>);</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[14] == interrupt_dcid[0] &amp;&amp; l2capinbuf[15] == interrupt_dcid[1]) {</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="comment">//Notify(PSTR(&quot;\r\nHID Interrupt Connection Complete&quot;), 0x80);</span></div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; identifier = l2capinbuf[9];</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a34a91f92ea32033403c2b37af92535dc">interrupt_scid</a>[0] = l2capinbuf[12];</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a34a91f92ea32033403c2b37af92535dc">interrupt_scid</a>[1] = l2capinbuf[13];</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <a class="code" href="_b_t_d_8h.html#a5f035450f226204f021e69ad1faa2e3a">l2cap_set_flag</a>(<a class="code" href="_b_t_d_8h.html#aad823543553cc7500ac49d7479eb858f">L2CAP_FLAG_INTERRUPT_CONNECTED</a>);</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; }</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; }</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[8] == <a class="code" href="_b_t_d_8h.html#ac4bae0c65fd00ed849cb226302d19c85">L2CAP_CMD_CONNECTION_REQUEST</a>) {</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nL2CAP Connection Request - PSM: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[13], 0x80);</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[12], 0x80);</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; SCID: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[15], 0x80);</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[14], 0x80);</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; Identifier: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[9], 0x80);</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">if</span>((l2capinbuf[12] | (l2capinbuf[13] &lt;&lt; 8)) == <a class="code" href="_b_t_d_8h.html#a1465673868452307bcdab8e201430c27">HID_CTRL_PSM</a>) {</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; identifier = l2capinbuf[9];</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <a class="code" href="class_b_t_h_i_d.html#acf6933a4988ed9f48c6e08cc7c9b906c">control_scid</a>[0] = l2capinbuf[14];</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <a class="code" href="class_b_t_h_i_d.html#acf6933a4988ed9f48c6e08cc7c9b906c">control_scid</a>[1] = l2capinbuf[15];</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <a class="code" href="_b_t_d_8h.html#a5f035450f226204f021e69ad1faa2e3a">l2cap_set_flag</a>(<a class="code" href="_b_t_d_8h.html#a969a1ee84797f3ee5006c41f67373f96">L2CAP_FLAG_CONNECTION_CONTROL_REQUEST</a>);</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>((l2capinbuf[12] | (l2capinbuf[13] &lt;&lt; 8)) == <a class="code" href="_b_t_d_8h.html#a4c5ac96db74d61d4a5a5d945a400e7da">HID_INTR_PSM</a>) {</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; identifier = l2capinbuf[9];</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a34a91f92ea32033403c2b37af92535dc">interrupt_scid</a>[0] = l2capinbuf[14];</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a34a91f92ea32033403c2b37af92535dc">interrupt_scid</a>[1] = l2capinbuf[15];</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <a class="code" href="_b_t_d_8h.html#a5f035450f226204f021e69ad1faa2e3a">l2cap_set_flag</a>(<a class="code" href="_b_t_d_8h.html#a015f3b25bd7a2908c84b973dec453f45">L2CAP_FLAG_CONNECTION_INTERRUPT_REQUEST</a>);</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; }</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[8] == <a class="code" href="_b_t_d_8h.html#a8151b1fe5d940a5a7a34f43a8b8ce434">L2CAP_CMD_CONFIG_RESPONSE</a>) {</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordflow">if</span>((l2capinbuf[16] | (l2capinbuf[17] &lt;&lt; 8)) == 0x0000) { <span class="comment">// Success</span></div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordflow">if</span>(l2capinbuf[12] == control_dcid[0] &amp;&amp; l2capinbuf[13] == control_dcid[1]) {</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="comment">//Notify(PSTR(&quot;\r\nHID Control Configuration Complete&quot;), 0x80);</span></div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; identifier = l2capinbuf[9];</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <a class="code" href="_b_t_d_8h.html#a5f035450f226204f021e69ad1faa2e3a">l2cap_set_flag</a>(<a class="code" href="_b_t_d_8h.html#a0c444d5d06ec604820d426556c2f38d7">L2CAP_FLAG_CONFIG_CONTROL_SUCCESS</a>);</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[12] == interrupt_dcid[0] &amp;&amp; l2capinbuf[13] == interrupt_dcid[1]) {</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="comment">//Notify(PSTR(&quot;\r\nHID Interrupt Configuration Complete&quot;), 0x80);</span></div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; identifier = l2capinbuf[9];</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <a class="code" href="_b_t_d_8h.html#a5f035450f226204f021e69ad1faa2e3a">l2cap_set_flag</a>(<a class="code" href="_b_t_d_8h.html#a2b3cdcd3124251a40ce825da0d8dcb6f">L2CAP_FLAG_CONFIG_INTERRUPT_SUCCESS</a>);</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; }</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; }</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[8] == <a class="code" href="_b_t_d_8h.html#a48bcd73461d736d0ef889e1fe6e36f69">L2CAP_CMD_CONFIG_REQUEST</a>) {</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">if</span>(l2capinbuf[12] == control_dcid[0] &amp;&amp; l2capinbuf[13] == control_dcid[1]) {</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="comment">//Notify(PSTR(&quot;\r\nHID Control Configuration Request&quot;), 0x80);</span></div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#a792ac4529b65235698ecf3d37982c05e">l2cap_config_response</a>(<a class="code" href="class_b_t_h_i_d.html#a8e4888359cda09bc7123d971bb9d8dcf">hci_handle</a>, l2capinbuf[9], <a class="code" href="class_b_t_h_i_d.html#acf6933a4988ed9f48c6e08cc7c9b906c">control_scid</a>);</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[12] == interrupt_dcid[0] &amp;&amp; l2capinbuf[13] == interrupt_dcid[1]) {</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="comment">//Notify(PSTR(&quot;\r\nHID Interrupt Configuration Request&quot;), 0x80);</span></div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#a792ac4529b65235698ecf3d37982c05e">l2cap_config_response</a>(<a class="code" href="class_b_t_h_i_d.html#a8e4888359cda09bc7123d971bb9d8dcf">hci_handle</a>, l2capinbuf[9], <a class="code" href="class_b_t_h_i_d.html#a34a91f92ea32033403c2b37af92535dc">interrupt_scid</a>);</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; }</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[8] == <a class="code" href="_b_t_d_8h.html#a398676a2e9a2351a5a52afdddf4b660b">L2CAP_CMD_DISCONNECT_REQUEST</a>) {</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordflow">if</span>(l2capinbuf[12] == control_dcid[0] &amp;&amp; l2capinbuf[13] == control_dcid[1]) {</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nDisconnect Request: Control Channel&quot;</span>), 0x80);</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; identifier = l2capinbuf[9];</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#a29d176d9194e5c92fbe54791fc245407">l2cap_disconnection_response</a>(<a class="code" href="class_b_t_h_i_d.html#a8e4888359cda09bc7123d971bb9d8dcf">hci_handle</a>, identifier, control_dcid, <a class="code" href="class_b_t_h_i_d.html#acf6933a4988ed9f48c6e08cc7c9b906c">control_scid</a>);</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <a class="code" href="class_b_t_h_i_d.html#af4c58b81414a037910dd6fb78f97b96e">Reset</a>();</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[12] == interrupt_dcid[0] &amp;&amp; l2capinbuf[13] == interrupt_dcid[1]) {</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nDisconnect Request: Interrupt Channel&quot;</span>), 0x80);</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; identifier = l2capinbuf[9];</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#a29d176d9194e5c92fbe54791fc245407">l2cap_disconnection_response</a>(<a class="code" href="class_b_t_h_i_d.html#a8e4888359cda09bc7123d971bb9d8dcf">hci_handle</a>, identifier, interrupt_dcid, <a class="code" href="class_b_t_h_i_d.html#a34a91f92ea32033403c2b37af92535dc">interrupt_scid</a>);</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <a class="code" href="class_b_t_h_i_d.html#af4c58b81414a037910dd6fb78f97b96e">Reset</a>();</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; }</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[8] == <a class="code" href="_b_t_d_8h.html#a4c64a41200714e457b397496183dc0e4">L2CAP_CMD_DISCONNECT_RESPONSE</a>) {</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordflow">if</span>(l2capinbuf[12] == <a class="code" href="class_b_t_h_i_d.html#acf6933a4988ed9f48c6e08cc7c9b906c">control_scid</a>[0] &amp;&amp; l2capinbuf[13] == <a class="code" href="class_b_t_h_i_d.html#acf6933a4988ed9f48c6e08cc7c9b906c">control_scid</a>[1]) {</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="comment">//Notify(PSTR(&quot;\r\nDisconnect Response: Control Channel&quot;), 0x80);</span></div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; identifier = l2capinbuf[9];</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <a class="code" href="_b_t_d_8h.html#a5f035450f226204f021e69ad1faa2e3a">l2cap_set_flag</a>(<a class="code" href="_b_t_d_8h.html#a27057737ae0b2246442511c01eeed192">L2CAP_FLAG_DISCONNECT_CONTROL_RESPONSE</a>);</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[12] == <a class="code" href="class_b_t_h_i_d.html#a34a91f92ea32033403c2b37af92535dc">interrupt_scid</a>[0] &amp;&amp; l2capinbuf[13] == <a class="code" href="class_b_t_h_i_d.html#a34a91f92ea32033403c2b37af92535dc">interrupt_scid</a>[1]) {</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="comment">//Notify(PSTR(&quot;\r\nDisconnect Response: Interrupt Channel&quot;), 0x80);</span></div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; identifier = l2capinbuf[9];</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <a class="code" href="_b_t_d_8h.html#a5f035450f226204f021e69ad1faa2e3a">l2cap_set_flag</a>(<a class="code" href="_b_t_d_8h.html#acc096a05301f3cbdece4ad372cc149c3">L2CAP_FLAG_DISCONNECT_INTERRUPT_RESPONSE</a>);</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; }</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; }</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; identifier = l2capinbuf[9];</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nL2CAP Unknown Signaling Command: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[8], 0x80);</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; }</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[6] == interrupt_dcid[0] &amp;&amp; l2capinbuf[7] == interrupt_dcid[1]) { <span class="comment">// l2cap_interrupt</span></div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="preprocessor">#ifdef PRINTREPORT</span></div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nL2CAP Interrupt: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordflow">for</span>(uint16_t i = 0; i &lt; ((uint16_t)l2capinbuf[5] &lt;&lt; 8 | l2capinbuf[4]); i++) {</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[i + 8], 0x80);</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; }</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">if</span>(l2capinbuf[8] == 0xA1) { <span class="comment">// HID_THDR_DATA_INPUT</span></div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; uint16_t length = ((uint16_t)l2capinbuf[5] &lt;&lt; 8 | l2capinbuf[4]);</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a4de4a1efd32000a0cf5a884456e52c7d">ParseBTHIDData</a>((uint8_t)(length - 1), &amp;l2capinbuf[9]);</div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordflow">switch</span>(l2capinbuf[9]) {</div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">case</span> 0x01: <span class="comment">// Keyboard or Joystick events</span></div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordflow">if</span>(pRptParser[<a class="code" href="_b_t_h_i_d_8h.html#a699c5d6eb13133dce9504391bc610f3e">KEYBOARD_PARSER_ID</a>])</div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; pRptParser[<a class="code" href="_b_t_h_i_d_8h.html#a699c5d6eb13133dce9504391bc610f3e">KEYBOARD_PARSER_ID</a>]-&gt;<a class="code" href="class_h_i_d_report_parser.html#ad2837f3d78c7ac3f1c2b3a4815420d97">Parse</a>(reinterpret_cast&lt;HID *&gt;(<span class="keyword">this</span>), 0, (uint8_t)(length - 2), &amp;l2capinbuf[10]); <span class="comment">// Use reinterpret_cast again to extract the instance</span></div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">case</span> 0x02: <span class="comment">// Mouse events</span></div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">if</span>(pRptParser[<a class="code" href="_b_t_h_i_d_8h.html#a0b48c93189cf128c1ef13ce86b4fa6be">MOUSE_PARSER_ID</a>])</div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; pRptParser[<a class="code" href="_b_t_h_i_d_8h.html#a0b48c93189cf128c1ef13ce86b4fa6be">MOUSE_PARSER_ID</a>]-&gt;<a class="code" href="class_h_i_d_report_parser.html#ad2837f3d78c7ac3f1c2b3a4815420d97">Parse</a>(reinterpret_cast&lt;HID *&gt;(<span class="keyword">this</span>), 0, (uint8_t)(length - 2), &amp;l2capinbuf[10]); <span class="comment">// Use reinterpret_cast again to extract the instance</span></div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nUnknown Report type: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[9], 0x80);</div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; }</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; }</div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[6] == control_dcid[0] &amp;&amp; l2capinbuf[7] == control_dcid[1]) { <span class="comment">// l2cap_control</span></div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;<span class="preprocessor">#ifdef PRINTREPORT</span></div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nL2CAP Control: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordflow">for</span>(uint16_t i = 0; i &lt; ((uint16_t)l2capinbuf[5] &lt;&lt; 8 | l2capinbuf[4]); i++) {</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[i + 8], 0x80);</div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; }</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; }</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nUnsupported L2CAP Data - Channel ID: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[7], 0x80);</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[6], 0x80);</div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nData: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\n&quot;</span>), 0x80);</div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordflow">for</span>(uint16_t i = 0; i &lt; ((uint16_t)l2capinbuf[5] &lt;&lt; 8 | l2capinbuf[4]); i++) {</div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[i + 8], 0x80);</div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; }</div>
<div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#af4c58b81414a037910dd6fb78f97b96e"> 41</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_b_t_h_i_d.html#af4c58b81414a037910dd6fb78f97b96e">BTHID::Reset</a>() {</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <a class="code" href="class_b_t_h_i_d.html#ab3a81823a1d8805383146a6baad6ccc4">connected</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; activeConnection = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <a class="code" href="class_bluetooth_service.html#a78a1a893ec9c2db32e42bc2271c4a4f2">l2cap_event_flag</a> = 0; <span class="comment">// Reset flags</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#a15cc1db556ad9a4ec6144ca8a42f8919">L2CAP_WAIT</a>;</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <a class="code" href="class_b_t_h_i_d.html#acc22bf5baaa096fe09b72c812c1134f0">ResetBTHID</a>();</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;}</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div>
<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#ae1ee62d7b9951ec7960f122c9fc2d2d0"> 49</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_b_t_h_i_d.html#ae1ee62d7b9951ec7960f122c9fc2d2d0">BTHID::disconnect</a>() { <span class="comment">// Use this void to disconnect the device</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="comment">// First the HID interrupt channel has to be disconnected, then the HID control channel and finally the HCI connection</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <a class="code" href="class_bluetooth_service.html#aa67faf901f78a55a202945a20f6d778a">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#ac7053ef7ac690be3afbbdd985b163f10">l2cap_disconnection_request</a>(<a class="code" href="class_bluetooth_service.html#a67b1db67c05d0bbdcd9c992135455437">hci_handle</a>, ++<a class="code" href="class_bluetooth_service.html#ad643db609c7e2e3fae8904dbc7991262">identifier</a>, <a class="code" href="class_b_t_h_i_d.html#a34a91f92ea32033403c2b37af92535dc">interrupt_scid</a>, interrupt_dcid);</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <a class="code" href="class_b_t_h_i_d.html#af4c58b81414a037910dd6fb78f97b96e">Reset</a>();</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#ab569b2085ad29f41d1da9c0ed352bd65">L2CAP_INTERRUPT_DISCONNECT</a>;</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;}</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
<div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#a84eb1b910027f2d78741f65225c14e54"> 56</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_b_t_h_i_d.html#a84eb1b910027f2d78741f65225c14e54">BTHID::ACLData</a>(uint8_t* l2capinbuf) {</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordflow">if</span>(!<a class="code" href="class_bluetooth_service.html#aa67faf901f78a55a202945a20f6d778a">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#a0f1c28a03bcbe62cc7c083f97ea27594">l2capConnectionClaimed</a> &amp;&amp; <a class="code" href="class_bluetooth_service.html#aa67faf901f78a55a202945a20f6d778a">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#a685d6371fb0c950ff6bad4510a8cc85a">incomingHIDDevice</a> &amp;&amp; !<a class="code" href="class_b_t_h_i_d.html#ab3a81823a1d8805383146a6baad6ccc4">connected</a> &amp;&amp; !activeConnection) {</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordflow">if</span>(l2capinbuf[8] == <a class="code" href="_b_t_d_8h.html#ac4bae0c65fd00ed849cb226302d19c85">L2CAP_CMD_CONNECTION_REQUEST</a>) {</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordflow">if</span>((l2capinbuf[12] | (l2capinbuf[13] &lt;&lt; 8)) == <a class="code" href="_b_t_d_8h.html#a1465673868452307bcdab8e201430c27">HID_CTRL_PSM</a>) {</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <a class="code" href="class_bluetooth_service.html#aa67faf901f78a55a202945a20f6d778a">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#a685d6371fb0c950ff6bad4510a8cc85a">incomingHIDDevice</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <a class="code" href="class_bluetooth_service.html#aa67faf901f78a55a202945a20f6d778a">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#a0f1c28a03bcbe62cc7c083f97ea27594">l2capConnectionClaimed</a> = <span class="keyword">true</span>; <span class="comment">// Claim that the incoming connection belongs to this service</span></div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; activeConnection = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <a class="code" href="class_bluetooth_service.html#a67b1db67c05d0bbdcd9c992135455437">hci_handle</a> = <a class="code" href="class_bluetooth_service.html#aa67faf901f78a55a202945a20f6d778a">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#aa3bb6c692701cb33dfad1ea4d68b6f98">hci_handle</a>; <span class="comment">// Store the HCI Handle for the connection</span></div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#a15cc1db556ad9a4ec6144ca8a42f8919">L2CAP_WAIT</a>;</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; }</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; }</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; }</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_bluetooth_service.html#a2a3674a4bb5d409840995eabe07049bd">checkHciHandle</a>(l2capinbuf, <a class="code" href="class_bluetooth_service.html#a67b1db67c05d0bbdcd9c992135455437">hci_handle</a>)) { <span class="comment">// acl_handle_ok</span></div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordflow">if</span>((l2capinbuf[6] | (l2capinbuf[7] &lt;&lt; 8)) == 0x0001U) { <span class="comment">// l2cap_control - Channel ID for ACL-U</span></div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">if</span>(l2capinbuf[8] == <a class="code" href="_b_t_d_8h.html#a6ffcd72787c86f248192eb06a3fe18cb">L2CAP_CMD_COMMAND_REJECT</a>) {</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(<a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot;\r\nL2CAP Command Rejected - Reason: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[13], 0x80);</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(<a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[12], 0x80);</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(<a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[17], 0x80);</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(<a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[16], 0x80);</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(<a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[15], 0x80);</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(<a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[14], 0x80);</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[8] == <a class="code" href="_b_t_d_8h.html#aef7b306479de265d725dbe5816a8227b">L2CAP_CMD_CONNECTION_RESPONSE</a>) {</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordflow">if</span>(((l2capinbuf[16] | (l2capinbuf[17] &lt;&lt; 8)) == 0x0000) &amp;&amp; ((l2capinbuf[18] | (l2capinbuf[19] &lt;&lt; 8)) == <a class="code" href="_b_t_d_8h.html#a1be7a56cdddcdb7dedf16d4dee381e93">SUCCESSFUL</a>)) { <span class="comment">// Success</span></div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordflow">if</span>(l2capinbuf[14] == control_dcid[0] &amp;&amp; l2capinbuf[15] == control_dcid[1]) {</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="comment">//Notify(PSTR(&quot;\r\nHID Control Connection Complete&quot;), 0x80);</span></div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <a class="code" href="class_bluetooth_service.html#ad643db609c7e2e3fae8904dbc7991262">identifier</a> = l2capinbuf[9];</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <a class="code" href="class_b_t_h_i_d.html#acf6933a4988ed9f48c6e08cc7c9b906c">control_scid</a>[0] = l2capinbuf[12];</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <a class="code" href="class_b_t_h_i_d.html#acf6933a4988ed9f48c6e08cc7c9b906c">control_scid</a>[1] = l2capinbuf[13];</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <a class="code" href="_b_t_d_8h.html#a5f035450f226204f021e69ad1faa2e3a">l2cap_set_flag</a>(<a class="code" href="_b_t_d_8h.html#a2e5a9c283f0912833f3e0418d3feadd7">L2CAP_FLAG_CONTROL_CONNECTED</a>);</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[14] == interrupt_dcid[0] &amp;&amp; l2capinbuf[15] == interrupt_dcid[1]) {</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="comment">//Notify(PSTR(&quot;\r\nHID Interrupt Connection Complete&quot;), 0x80);</span></div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <a class="code" href="class_bluetooth_service.html#ad643db609c7e2e3fae8904dbc7991262">identifier</a> = l2capinbuf[9];</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a34a91f92ea32033403c2b37af92535dc">interrupt_scid</a>[0] = l2capinbuf[12];</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a34a91f92ea32033403c2b37af92535dc">interrupt_scid</a>[1] = l2capinbuf[13];</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <a class="code" href="_b_t_d_8h.html#a5f035450f226204f021e69ad1faa2e3a">l2cap_set_flag</a>(<a class="code" href="_b_t_d_8h.html#aad823543553cc7500ac49d7479eb858f">L2CAP_FLAG_INTERRUPT_CONNECTED</a>);</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; }</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; }</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[8] == <a class="code" href="_b_t_d_8h.html#ac4bae0c65fd00ed849cb226302d19c85">L2CAP_CMD_CONNECTION_REQUEST</a>) {</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(<a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot;\r\nL2CAP Connection Request - PSM: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[13], 0x80);</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(<a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[12], 0x80);</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(<a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot; SCID: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[15], 0x80);</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(<a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[14], 0x80);</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(<a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot; Identifier: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[9], 0x80);</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordflow">if</span>((l2capinbuf[12] | (l2capinbuf[13] &lt;&lt; 8)) == <a class="code" href="_b_t_d_8h.html#a1465673868452307bcdab8e201430c27">HID_CTRL_PSM</a>) {</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <a class="code" href="class_bluetooth_service.html#ad643db609c7e2e3fae8904dbc7991262">identifier</a> = l2capinbuf[9];</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <a class="code" href="class_b_t_h_i_d.html#acf6933a4988ed9f48c6e08cc7c9b906c">control_scid</a>[0] = l2capinbuf[14];</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <a class="code" href="class_b_t_h_i_d.html#acf6933a4988ed9f48c6e08cc7c9b906c">control_scid</a>[1] = l2capinbuf[15];</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <a class="code" href="_b_t_d_8h.html#a5f035450f226204f021e69ad1faa2e3a">l2cap_set_flag</a>(<a class="code" href="_b_t_d_8h.html#a969a1ee84797f3ee5006c41f67373f96">L2CAP_FLAG_CONNECTION_CONTROL_REQUEST</a>);</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>((l2capinbuf[12] | (l2capinbuf[13] &lt;&lt; 8)) == <a class="code" href="_b_t_d_8h.html#a4c5ac96db74d61d4a5a5d945a400e7da">HID_INTR_PSM</a>) {</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <a class="code" href="class_bluetooth_service.html#ad643db609c7e2e3fae8904dbc7991262">identifier</a> = l2capinbuf[9];</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a34a91f92ea32033403c2b37af92535dc">interrupt_scid</a>[0] = l2capinbuf[14];</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a34a91f92ea32033403c2b37af92535dc">interrupt_scid</a>[1] = l2capinbuf[15];</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <a class="code" href="_b_t_d_8h.html#a5f035450f226204f021e69ad1faa2e3a">l2cap_set_flag</a>(<a class="code" href="_b_t_d_8h.html#a015f3b25bd7a2908c84b973dec453f45">L2CAP_FLAG_CONNECTION_INTERRUPT_REQUEST</a>);</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; }</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[8] == <a class="code" href="_b_t_d_8h.html#a8151b1fe5d940a5a7a34f43a8b8ce434">L2CAP_CMD_CONFIG_RESPONSE</a>) {</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">if</span>((l2capinbuf[16] | (l2capinbuf[17] &lt;&lt; 8)) == 0x0000) { <span class="comment">// Success</span></div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordflow">if</span>(l2capinbuf[12] == control_dcid[0] &amp;&amp; l2capinbuf[13] == control_dcid[1]) {</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="comment">//Notify(PSTR(&quot;\r\nHID Control Configuration Complete&quot;), 0x80);</span></div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <a class="code" href="class_bluetooth_service.html#ad643db609c7e2e3fae8904dbc7991262">identifier</a> = l2capinbuf[9];</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <a class="code" href="_b_t_d_8h.html#a5f035450f226204f021e69ad1faa2e3a">l2cap_set_flag</a>(<a class="code" href="_b_t_d_8h.html#a0c444d5d06ec604820d426556c2f38d7">L2CAP_FLAG_CONFIG_CONTROL_SUCCESS</a>);</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[12] == interrupt_dcid[0] &amp;&amp; l2capinbuf[13] == interrupt_dcid[1]) {</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="comment">//Notify(PSTR(&quot;\r\nHID Interrupt Configuration Complete&quot;), 0x80);</span></div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <a class="code" href="class_bluetooth_service.html#ad643db609c7e2e3fae8904dbc7991262">identifier</a> = l2capinbuf[9];</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <a class="code" href="_b_t_d_8h.html#a5f035450f226204f021e69ad1faa2e3a">l2cap_set_flag</a>(<a class="code" href="_b_t_d_8h.html#a2b3cdcd3124251a40ce825da0d8dcb6f">L2CAP_FLAG_CONFIG_INTERRUPT_SUCCESS</a>);</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; }</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; }</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[8] == <a class="code" href="_b_t_d_8h.html#a48bcd73461d736d0ef889e1fe6e36f69">L2CAP_CMD_CONFIG_REQUEST</a>) {</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">if</span>(l2capinbuf[12] == control_dcid[0] &amp;&amp; l2capinbuf[13] == control_dcid[1]) {</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="comment">//Notify(PSTR(&quot;\r\nHID Control Configuration Request&quot;), 0x80);</span></div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <a class="code" href="class_bluetooth_service.html#aa67faf901f78a55a202945a20f6d778a">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#a792ac4529b65235698ecf3d37982c05e">l2cap_config_response</a>(<a class="code" href="class_bluetooth_service.html#a67b1db67c05d0bbdcd9c992135455437">hci_handle</a>, l2capinbuf[9], <a class="code" href="class_b_t_h_i_d.html#acf6933a4988ed9f48c6e08cc7c9b906c">control_scid</a>);</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[12] == interrupt_dcid[0] &amp;&amp; l2capinbuf[13] == interrupt_dcid[1]) {</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="comment">//Notify(PSTR(&quot;\r\nHID Interrupt Configuration Request&quot;), 0x80);</span></div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <a class="code" href="class_bluetooth_service.html#aa67faf901f78a55a202945a20f6d778a">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#a792ac4529b65235698ecf3d37982c05e">l2cap_config_response</a>(<a class="code" href="class_bluetooth_service.html#a67b1db67c05d0bbdcd9c992135455437">hci_handle</a>, l2capinbuf[9], <a class="code" href="class_b_t_h_i_d.html#a34a91f92ea32033403c2b37af92535dc">interrupt_scid</a>);</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; }</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[8] == <a class="code" href="_b_t_d_8h.html#a398676a2e9a2351a5a52afdddf4b660b">L2CAP_CMD_DISCONNECT_REQUEST</a>) {</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keywordflow">if</span>(l2capinbuf[12] == control_dcid[0] &amp;&amp; l2capinbuf[13] == control_dcid[1]) {</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(<a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot;\r\nDisconnect Request: Control Channel&quot;</span>), 0x80);</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <a class="code" href="class_bluetooth_service.html#ad643db609c7e2e3fae8904dbc7991262">identifier</a> = l2capinbuf[9];</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <a class="code" href="class_bluetooth_service.html#aa67faf901f78a55a202945a20f6d778a">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#a29d176d9194e5c92fbe54791fc245407">l2cap_disconnection_response</a>(<a class="code" href="class_bluetooth_service.html#a67b1db67c05d0bbdcd9c992135455437">hci_handle</a>, <a class="code" href="class_bluetooth_service.html#ad643db609c7e2e3fae8904dbc7991262">identifier</a>, control_dcid, <a class="code" href="class_b_t_h_i_d.html#acf6933a4988ed9f48c6e08cc7c9b906c">control_scid</a>);</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <a class="code" href="class_b_t_h_i_d.html#af4c58b81414a037910dd6fb78f97b96e">Reset</a>();</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[12] == interrupt_dcid[0] &amp;&amp; l2capinbuf[13] == interrupt_dcid[1]) {</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(<a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot;\r\nDisconnect Request: Interrupt Channel&quot;</span>), 0x80);</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <a class="code" href="class_bluetooth_service.html#ad643db609c7e2e3fae8904dbc7991262">identifier</a> = l2capinbuf[9];</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <a class="code" href="class_bluetooth_service.html#aa67faf901f78a55a202945a20f6d778a">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#a29d176d9194e5c92fbe54791fc245407">l2cap_disconnection_response</a>(<a class="code" href="class_bluetooth_service.html#a67b1db67c05d0bbdcd9c992135455437">hci_handle</a>, <a class="code" href="class_bluetooth_service.html#ad643db609c7e2e3fae8904dbc7991262">identifier</a>, interrupt_dcid, <a class="code" href="class_b_t_h_i_d.html#a34a91f92ea32033403c2b37af92535dc">interrupt_scid</a>);</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <a class="code" href="class_b_t_h_i_d.html#af4c58b81414a037910dd6fb78f97b96e">Reset</a>();</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; }</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[8] == <a class="code" href="_b_t_d_8h.html#a4c64a41200714e457b397496183dc0e4">L2CAP_CMD_DISCONNECT_RESPONSE</a>) {</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">if</span>(l2capinbuf[12] == <a class="code" href="class_b_t_h_i_d.html#acf6933a4988ed9f48c6e08cc7c9b906c">control_scid</a>[0] &amp;&amp; l2capinbuf[13] == <a class="code" href="class_b_t_h_i_d.html#acf6933a4988ed9f48c6e08cc7c9b906c">control_scid</a>[1]) {</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="comment">//Notify(PSTR(&quot;\r\nDisconnect Response: Control Channel&quot;), 0x80);</span></div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <a class="code" href="class_bluetooth_service.html#ad643db609c7e2e3fae8904dbc7991262">identifier</a> = l2capinbuf[9];</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <a class="code" href="_b_t_d_8h.html#a5f035450f226204f021e69ad1faa2e3a">l2cap_set_flag</a>(<a class="code" href="_b_t_d_8h.html#a27057737ae0b2246442511c01eeed192">L2CAP_FLAG_DISCONNECT_CONTROL_RESPONSE</a>);</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[12] == <a class="code" href="class_b_t_h_i_d.html#a34a91f92ea32033403c2b37af92535dc">interrupt_scid</a>[0] &amp;&amp; l2capinbuf[13] == <a class="code" href="class_b_t_h_i_d.html#a34a91f92ea32033403c2b37af92535dc">interrupt_scid</a>[1]) {</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="comment">//Notify(PSTR(&quot;\r\nDisconnect Response: Interrupt Channel&quot;), 0x80);</span></div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <a class="code" href="class_bluetooth_service.html#ad643db609c7e2e3fae8904dbc7991262">identifier</a> = l2capinbuf[9];</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <a class="code" href="_b_t_d_8h.html#a5f035450f226204f021e69ad1faa2e3a">l2cap_set_flag</a>(<a class="code" href="_b_t_d_8h.html#acc096a05301f3cbdece4ad372cc149c3">L2CAP_FLAG_DISCONNECT_INTERRUPT_RESPONSE</a>);</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; }</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; }</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <a class="code" href="class_bluetooth_service.html#ad643db609c7e2e3fae8904dbc7991262">identifier</a> = l2capinbuf[9];</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(<a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot;\r\nL2CAP Unknown Signaling Command: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[8], 0x80);</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; }</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[6] == interrupt_dcid[0] &amp;&amp; l2capinbuf[7] == interrupt_dcid[1]) { <span class="comment">// l2cap_interrupt</span></div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="preprocessor">#ifdef PRINTREPORT</span></div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(<a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot;\r\nL2CAP Interrupt: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">for</span>(uint16_t i = 0; i &lt; ((uint16_t)l2capinbuf[5] &lt;&lt; 8 | l2capinbuf[4]); i++) {</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[i + 8], 0x80);</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(<a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; }</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">if</span>(l2capinbuf[8] == 0xA1) { <span class="comment">// HID_THDR_DATA_INPUT</span></div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; uint16_t length = ((uint16_t)l2capinbuf[5] &lt;&lt; 8 | l2capinbuf[4]);</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a4de4a1efd32000a0cf5a884456e52c7d">ParseBTHIDData</a>((uint8_t)(length - 1), &amp;l2capinbuf[9]);</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">switch</span>(l2capinbuf[9]) {</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">case</span> 0x01: <span class="comment">// Keyboard or Joystick events</span></div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keywordflow">if</span>(pRptParser[<a class="code" href="_b_t_h_i_d_8h.html#a699c5d6eb13133dce9504391bc610f3e">KEYBOARD_PARSER_ID</a>])</div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; pRptParser[<a class="code" href="_b_t_h_i_d_8h.html#a699c5d6eb13133dce9504391bc610f3e">KEYBOARD_PARSER_ID</a>]-&gt;<a class="code" href="class_h_i_d_report_parser.html#ad2837f3d78c7ac3f1c2b3a4815420d97">Parse</a>(reinterpret_cast&lt;HID *&gt;(<span class="keyword">this</span>), 0, (uint8_t)(length - 2), &amp;l2capinbuf[10]); <span class="comment">// Use reinterpret_cast again to extract the instance</span></div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;</div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordflow">case</span> 0x02: <span class="comment">// Mouse events</span></div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">if</span>(pRptParser[<a class="code" href="_b_t_h_i_d_8h.html#a0b48c93189cf128c1ef13ce86b4fa6be">MOUSE_PARSER_ID</a>])</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; pRptParser[<a class="code" href="_b_t_h_i_d_8h.html#a0b48c93189cf128c1ef13ce86b4fa6be">MOUSE_PARSER_ID</a>]-&gt;<a class="code" href="class_h_i_d_report_parser.html#ad2837f3d78c7ac3f1c2b3a4815420d97">Parse</a>(reinterpret_cast&lt;HID *&gt;(<span class="keyword">this</span>), 0, (uint8_t)(length - 2), &amp;l2capinbuf[10]); <span class="comment">// Use reinterpret_cast again to extract the instance</span></div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(<a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot;\r\nUnknown Report type: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[9], 0x80);</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; }</div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; }</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[6] == control_dcid[0] &amp;&amp; l2capinbuf[7] == control_dcid[1]) { <span class="comment">// l2cap_control</span></div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<span class="preprocessor">#ifdef PRINTREPORT</span></div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(<a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot;\r\nL2CAP Control: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordflow">for</span>(uint16_t i = 0; i &lt; ((uint16_t)l2capinbuf[5] &lt;&lt; 8 | l2capinbuf[4]); i++) {</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[i + 8], 0x80);</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(<a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; }</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; }</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(<a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot;\r\nUnsupported L2CAP Data - Channel ID: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[7], 0x80);</div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(<a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[6], 0x80);</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(<a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot;\r\nData: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(<a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot;\r\n&quot;</span>), 0x80);</div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordflow">for</span>(uint16_t i = 0; i &lt; ((uint16_t)l2capinbuf[5] &lt;&lt; 8 | l2capinbuf[4]); i++) {</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[i + 8], 0x80);</div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(<a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; }</div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; }</div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; L2CAP_task();</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; }</div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; L2CAP_task();</div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; }</div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;}</div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;<span class="keywordtype">void</span> BTHID::L2CAP_task() {</div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordflow">switch</span>(l2cap_state) {</div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="comment">/* These states are used if the HID device is the host */</span></div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#abac08b5b24a1cd2b12517cd9aa6c616b">L2CAP_CONTROL_SUCCESS</a>:</div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a>(<a class="code" href="_b_t_d_8h.html#a0c444d5d06ec604820d426556c2f38d7">L2CAP_FLAG_CONFIG_CONTROL_SUCCESS</a>)) {</div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nHID Control Successfully Configured&quot;</span>), 0x80);</div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; setProtocol(); <span class="comment">// Set protocol before establishing HID interrupt channel</span></div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#ac7aa7fd7a8a34a6c9e420e3cb114737b">L2CAP_INTERRUPT_SETUP</a>;</div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; }</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;</div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#ac7aa7fd7a8a34a6c9e420e3cb114737b">L2CAP_INTERRUPT_SETUP</a>:</div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a>(<a class="code" href="_b_t_d_8h.html#a015f3b25bd7a2908c84b973dec453f45">L2CAP_FLAG_CONNECTION_INTERRUPT_REQUEST</a>)) {</div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nHID Interrupt Incoming Connection Request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#a7d34c62b1d561679dea5cd27356b38a7">l2cap_connection_response</a>(<a class="code" href="class_b_t_h_i_d.html#a8e4888359cda09bc7123d971bb9d8dcf">hci_handle</a>, identifier, interrupt_dcid, <a class="code" href="class_b_t_h_i_d.html#a34a91f92ea32033403c2b37af92535dc">interrupt_scid</a>, <a class="code" href="_b_t_d_8h.html#a9960d0d5ae92fc92c70bbb84c2a5c0cc">PENDING</a>);</div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;}</div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;</div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;<span class="keywordtype">void</span> BTHID::L2CAP_task() {</div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keywordflow">switch</span>(l2cap_state) {</div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="comment">/* These states are used if the HID device is the host */</span></div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#abac08b5b24a1cd2b12517cd9aa6c616b">L2CAP_CONTROL_SUCCESS</a>:</div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a>(<a class="code" href="_b_t_d_8h.html#a0c444d5d06ec604820d426556c2f38d7">L2CAP_FLAG_CONFIG_CONTROL_SUCCESS</a>)) {</div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(<a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot;\r\nHID Control Successfully Configured&quot;</span>), 0x80);</div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; setProtocol(); <span class="comment">// Set protocol before establishing HID interrupt channel</span></div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#ac7aa7fd7a8a34a6c9e420e3cb114737b">L2CAP_INTERRUPT_SETUP</a>;</div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; }</div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;</div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#ac7aa7fd7a8a34a6c9e420e3cb114737b">L2CAP_INTERRUPT_SETUP</a>:</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a>(<a class="code" href="_b_t_d_8h.html#a015f3b25bd7a2908c84b973dec453f45">L2CAP_FLAG_CONNECTION_INTERRUPT_REQUEST</a>)) {</div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(<a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot;\r\nHID Interrupt Incoming Connection Request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <a class="code" href="class_bluetooth_service.html#aa67faf901f78a55a202945a20f6d778a">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#a7d34c62b1d561679dea5cd27356b38a7">l2cap_connection_response</a>(<a class="code" href="class_bluetooth_service.html#a67b1db67c05d0bbdcd9c992135455437">hci_handle</a>, <a class="code" href="class_bluetooth_service.html#ad643db609c7e2e3fae8904dbc7991262">identifier</a>, interrupt_dcid, <a class="code" href="class_b_t_h_i_d.html#a34a91f92ea32033403c2b37af92535dc">interrupt_scid</a>, <a class="code" href="_b_t_d_8h.html#a9960d0d5ae92fc92c70bbb84c2a5c0cc">PENDING</a>);</div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; delay(1);</div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <a class="code" href="class_bluetooth_service.html#aa67faf901f78a55a202945a20f6d778a">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#a7d34c62b1d561679dea5cd27356b38a7">l2cap_connection_response</a>(<a class="code" href="class_bluetooth_service.html#a67b1db67c05d0bbdcd9c992135455437">hci_handle</a>, <a class="code" href="class_bluetooth_service.html#ad643db609c7e2e3fae8904dbc7991262">identifier</a>, interrupt_dcid, <a class="code" href="class_b_t_h_i_d.html#a34a91f92ea32033403c2b37af92535dc">interrupt_scid</a>, <a class="code" href="_b_t_d_8h.html#a1be7a56cdddcdb7dedf16d4dee381e93">SUCCESSFUL</a>);</div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <a class="code" href="class_bluetooth_service.html#ad643db609c7e2e3fae8904dbc7991262">identifier</a>++;</div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; delay(1);</div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#a7d34c62b1d561679dea5cd27356b38a7">l2cap_connection_response</a>(<a class="code" href="class_b_t_h_i_d.html#a8e4888359cda09bc7123d971bb9d8dcf">hci_handle</a>, identifier, interrupt_dcid, <a class="code" href="class_b_t_h_i_d.html#a34a91f92ea32033403c2b37af92535dc">interrupt_scid</a>, <a class="code" href="_b_t_d_8h.html#a1be7a56cdddcdb7dedf16d4dee381e93">SUCCESSFUL</a>);</div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; identifier++;</div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; delay(1);</div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#ab646a59311344966f139bb3b78f30233">l2cap_config_request</a>(<a class="code" href="class_b_t_h_i_d.html#a8e4888359cda09bc7123d971bb9d8dcf">hci_handle</a>, identifier, <a class="code" href="class_b_t_h_i_d.html#a34a91f92ea32033403c2b37af92535dc">interrupt_scid</a>);</div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;</div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#a73e3a81d9a8850075fd10933acc5a035">L2CAP_INTERRUPT_CONFIG_REQUEST</a>;</div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; }</div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;</div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="comment">/* These states are used if the Arduino is the host */</span></div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#a68bcdd68c269cd7970d5271a00bbe5fe">L2CAP_CONTROL_CONNECT_REQUEST</a>:</div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a>(<a class="code" href="_b_t_d_8h.html#a2e5a9c283f0912833f3e0418d3feadd7">L2CAP_FLAG_CONTROL_CONNECTED</a>)) {</div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nSend HID Control Config Request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; identifier++;</div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#ab646a59311344966f139bb3b78f30233">l2cap_config_request</a>(<a class="code" href="class_b_t_h_i_d.html#a8e4888359cda09bc7123d971bb9d8dcf">hci_handle</a>, identifier, <a class="code" href="class_b_t_h_i_d.html#acf6933a4988ed9f48c6e08cc7c9b906c">control_scid</a>);</div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#aaaf733ee2c84bd8df4d24f2ae1f3b378">L2CAP_CONTROL_CONFIG_REQUEST</a>;</div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; }</div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;</div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#aaaf733ee2c84bd8df4d24f2ae1f3b378">L2CAP_CONTROL_CONFIG_REQUEST</a>:</div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a>(<a class="code" href="_b_t_d_8h.html#a0c444d5d06ec604820d426556c2f38d7">L2CAP_FLAG_CONFIG_CONTROL_SUCCESS</a>)) {</div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; setProtocol(); <span class="comment">// Set protocol before establishing HID interrupt channel</span></div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; delay(1); <span class="comment">// Short delay between commands - just to be sure</span></div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nSend HID Interrupt Connection Request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; identifier++;</div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#a55cf412a2053972a353b1ab964ca9d3e">l2cap_connection_request</a>(<a class="code" href="class_b_t_h_i_d.html#a8e4888359cda09bc7123d971bb9d8dcf">hci_handle</a>, identifier, interrupt_dcid, <a class="code" href="_b_t_d_8h.html#a4c5ac96db74d61d4a5a5d945a400e7da">HID_INTR_PSM</a>);</div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#af0b913a7e9e54b1f6ab95d82bd36f954">L2CAP_INTERRUPT_CONNECT_REQUEST</a>;</div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; }</div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;</div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#af0b913a7e9e54b1f6ab95d82bd36f954">L2CAP_INTERRUPT_CONNECT_REQUEST</a>:</div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a>(<a class="code" href="_b_t_d_8h.html#aad823543553cc7500ac49d7479eb858f">L2CAP_FLAG_INTERRUPT_CONNECTED</a>)) {</div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nSend HID Interrupt Config Request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; identifier++;</div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#ab646a59311344966f139bb3b78f30233">l2cap_config_request</a>(<a class="code" href="class_b_t_h_i_d.html#a8e4888359cda09bc7123d971bb9d8dcf">hci_handle</a>, identifier, <a class="code" href="class_b_t_h_i_d.html#a34a91f92ea32033403c2b37af92535dc">interrupt_scid</a>);</div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#a73e3a81d9a8850075fd10933acc5a035">L2CAP_INTERRUPT_CONFIG_REQUEST</a>;</div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; }</div>
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;</div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#a73e3a81d9a8850075fd10933acc5a035">L2CAP_INTERRUPT_CONFIG_REQUEST</a>:</div>
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a>(<a class="code" href="_b_t_d_8h.html#a2b3cdcd3124251a40ce825da0d8dcb6f">L2CAP_FLAG_CONFIG_INTERRUPT_SUCCESS</a>)) { <span class="comment">// Now the HID channels is established</span></div>
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nHID Channels Established&quot;</span>), 0x80);</div>
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#af40b8d52df99192880c8a13443b6c6d8">connectToHIDDevice</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#a2aa418d820fb6b877ea079e0436a518e">pairWithHIDDevice</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <a class="code" href="class_b_t_h_i_d.html#ab3a81823a1d8805383146a6baad6ccc4">connected</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; onInit();</div>
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#ae4da52ca67e1f8b977199b24e8f3a400">L2CAP_DONE</a>;</div>
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; }</div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <a class="code" href="class_bluetooth_service.html#aa67faf901f78a55a202945a20f6d778a">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#ab646a59311344966f139bb3b78f30233">l2cap_config_request</a>(<a class="code" href="class_bluetooth_service.html#a67b1db67c05d0bbdcd9c992135455437">hci_handle</a>, <a class="code" href="class_bluetooth_service.html#ad643db609c7e2e3fae8904dbc7991262">identifier</a>, <a class="code" href="class_b_t_h_i_d.html#a34a91f92ea32033403c2b37af92535dc">interrupt_scid</a>);</div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;</div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#a73e3a81d9a8850075fd10933acc5a035">L2CAP_INTERRUPT_CONFIG_REQUEST</a>;</div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; }</div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;</div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="comment">/* These states are used if the Arduino is the host */</span></div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#a68bcdd68c269cd7970d5271a00bbe5fe">L2CAP_CONTROL_CONNECT_REQUEST</a>:</div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a>(<a class="code" href="_b_t_d_8h.html#a2e5a9c283f0912833f3e0418d3feadd7">L2CAP_FLAG_CONTROL_CONNECTED</a>)) {</div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(<a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot;\r\nSend HID Control Config Request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <a class="code" href="class_bluetooth_service.html#ad643db609c7e2e3fae8904dbc7991262">identifier</a>++;</div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <a class="code" href="class_bluetooth_service.html#aa67faf901f78a55a202945a20f6d778a">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#ab646a59311344966f139bb3b78f30233">l2cap_config_request</a>(<a class="code" href="class_bluetooth_service.html#a67b1db67c05d0bbdcd9c992135455437">hci_handle</a>, <a class="code" href="class_bluetooth_service.html#ad643db609c7e2e3fae8904dbc7991262">identifier</a>, <a class="code" href="class_b_t_h_i_d.html#acf6933a4988ed9f48c6e08cc7c9b906c">control_scid</a>);</div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#aaaf733ee2c84bd8df4d24f2ae1f3b378">L2CAP_CONTROL_CONFIG_REQUEST</a>;</div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; }</div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;</div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#aaaf733ee2c84bd8df4d24f2ae1f3b378">L2CAP_CONTROL_CONFIG_REQUEST</a>:</div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a>(<a class="code" href="_b_t_d_8h.html#a0c444d5d06ec604820d426556c2f38d7">L2CAP_FLAG_CONFIG_CONTROL_SUCCESS</a>)) {</div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; setProtocol(); <span class="comment">// Set protocol before establishing HID interrupt channel</span></div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; delay(1); <span class="comment">// Short delay between commands - just to be sure</span></div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(<a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot;\r\nSend HID Interrupt Connection Request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <a class="code" href="class_bluetooth_service.html#ad643db609c7e2e3fae8904dbc7991262">identifier</a>++;</div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <a class="code" href="class_bluetooth_service.html#aa67faf901f78a55a202945a20f6d778a">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#a55cf412a2053972a353b1ab964ca9d3e">l2cap_connection_request</a>(<a class="code" href="class_bluetooth_service.html#a67b1db67c05d0bbdcd9c992135455437">hci_handle</a>, <a class="code" href="class_bluetooth_service.html#ad643db609c7e2e3fae8904dbc7991262">identifier</a>, interrupt_dcid, <a class="code" href="_b_t_d_8h.html#a4c5ac96db74d61d4a5a5d945a400e7da">HID_INTR_PSM</a>);</div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#af0b913a7e9e54b1f6ab95d82bd36f954">L2CAP_INTERRUPT_CONNECT_REQUEST</a>;</div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; }</div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;</div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#af0b913a7e9e54b1f6ab95d82bd36f954">L2CAP_INTERRUPT_CONNECT_REQUEST</a>:</div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a>(<a class="code" href="_b_t_d_8h.html#aad823543553cc7500ac49d7479eb858f">L2CAP_FLAG_INTERRUPT_CONNECTED</a>)) {</div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(<a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot;\r\nSend HID Interrupt Config Request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <a class="code" href="class_bluetooth_service.html#ad643db609c7e2e3fae8904dbc7991262">identifier</a>++;</div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <a class="code" href="class_bluetooth_service.html#aa67faf901f78a55a202945a20f6d778a">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#ab646a59311344966f139bb3b78f30233">l2cap_config_request</a>(<a class="code" href="class_bluetooth_service.html#a67b1db67c05d0bbdcd9c992135455437">hci_handle</a>, <a class="code" href="class_bluetooth_service.html#ad643db609c7e2e3fae8904dbc7991262">identifier</a>, <a class="code" href="class_b_t_h_i_d.html#a34a91f92ea32033403c2b37af92535dc">interrupt_scid</a>);</div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#a73e3a81d9a8850075fd10933acc5a035">L2CAP_INTERRUPT_CONFIG_REQUEST</a>;</div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; }</div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;</div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#a73e3a81d9a8850075fd10933acc5a035">L2CAP_INTERRUPT_CONFIG_REQUEST</a>:</div>
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a>(<a class="code" href="_b_t_d_8h.html#a2b3cdcd3124251a40ce825da0d8dcb6f">L2CAP_FLAG_CONFIG_INTERRUPT_SUCCESS</a>)) { <span class="comment">// Now the HID channels is established</span></div>
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(<a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot;\r\nHID Channels Established&quot;</span>), 0x80);</div>
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <a class="code" href="class_bluetooth_service.html#aa67faf901f78a55a202945a20f6d778a">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#af40b8d52df99192880c8a13443b6c6d8">connectToHIDDevice</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <a class="code" href="class_bluetooth_service.html#aa67faf901f78a55a202945a20f6d778a">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#a2aa418d820fb6b877ea079e0436a518e">pairWithHIDDevice</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <a class="code" href="class_b_t_h_i_d.html#ab3a81823a1d8805383146a6baad6ccc4">connected</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a9c3d1a1c2420a7f7d6d9f8a75a4a5a88">onInit</a>();</div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#ae4da52ca67e1f8b977199b24e8f3a400">L2CAP_DONE</a>;</div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; }</div>
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;</div>
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#ae4da52ca67e1f8b977199b24e8f3a400">L2CAP_DONE</a>:</div>
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;</div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#ae4da52ca67e1f8b977199b24e8f3a400">L2CAP_DONE</a>:</div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;</div>
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#ab569b2085ad29f41d1da9c0ed352bd65">L2CAP_INTERRUPT_DISCONNECT</a>:</div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a>(<a class="code" href="_b_t_d_8h.html#acc096a05301f3cbdece4ad372cc149c3">L2CAP_FLAG_DISCONNECT_INTERRUPT_RESPONSE</a>)) {</div>
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nDisconnected Interrupt Channel&quot;</span>), 0x80);</div>
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; identifier++;</div>
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#ac7053ef7ac690be3afbbdd985b163f10">l2cap_disconnection_request</a>(<a class="code" href="class_b_t_h_i_d.html#a8e4888359cda09bc7123d971bb9d8dcf">hci_handle</a>, identifier, <a class="code" href="class_b_t_h_i_d.html#acf6933a4988ed9f48c6e08cc7c9b906c">control_scid</a>, control_dcid);</div>
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#a9b5140e7ca5941e5535c575255ffc1cc">L2CAP_CONTROL_DISCONNECT</a>;</div>
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; }</div>
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;</div>
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#a9b5140e7ca5941e5535c575255ffc1cc">L2CAP_CONTROL_DISCONNECT</a>:</div>
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a>(<a class="code" href="_b_t_d_8h.html#a27057737ae0b2246442511c01eeed192">L2CAP_FLAG_DISCONNECT_CONTROL_RESPONSE</a>)) {</div>
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nDisconnected Control Channel&quot;</span>), 0x80);</div>
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#a1bea5dd793a2f47006b4a7642efc9e56">hci_disconnect</a>(<a class="code" href="class_b_t_h_i_d.html#a8e4888359cda09bc7123d971bb9d8dcf">hci_handle</a>);</div>
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a8e4888359cda09bc7123d971bb9d8dcf">hci_handle</a> = -1; <span class="comment">// Reset handle</span></div>
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; l2cap_event_flag = 0; <span class="comment">// Reset flags</span></div>
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#a15cc1db556ad9a4ec6144ca8a42f8919">L2CAP_WAIT</a>;</div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#ab569b2085ad29f41d1da9c0ed352bd65">L2CAP_INTERRUPT_DISCONNECT</a>:</div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a>(<a class="code" href="_b_t_d_8h.html#acc096a05301f3cbdece4ad372cc149c3">L2CAP_FLAG_DISCONNECT_INTERRUPT_RESPONSE</a>)) {</div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(<a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot;\r\nDisconnected Interrupt Channel&quot;</span>), 0x80);</div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <a class="code" href="class_bluetooth_service.html#ad643db609c7e2e3fae8904dbc7991262">identifier</a>++;</div>
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <a class="code" href="class_bluetooth_service.html#aa67faf901f78a55a202945a20f6d778a">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#ac7053ef7ac690be3afbbdd985b163f10">l2cap_disconnection_request</a>(<a class="code" href="class_bluetooth_service.html#a67b1db67c05d0bbdcd9c992135455437">hci_handle</a>, <a class="code" href="class_bluetooth_service.html#ad643db609c7e2e3fae8904dbc7991262">identifier</a>, <a class="code" href="class_b_t_h_i_d.html#acf6933a4988ed9f48c6e08cc7c9b906c">control_scid</a>, control_dcid);</div>
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#a9b5140e7ca5941e5535c575255ffc1cc">L2CAP_CONTROL_DISCONNECT</a>;</div>
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; }</div>
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;</div>
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#a9b5140e7ca5941e5535c575255ffc1cc">L2CAP_CONTROL_DISCONNECT</a>:</div>
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a>(<a class="code" href="_b_t_d_8h.html#a27057737ae0b2246442511c01eeed192">L2CAP_FLAG_DISCONNECT_CONTROL_RESPONSE</a>)) {</div>
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(<a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot;\r\nDisconnected Control Channel&quot;</span>), 0x80);</div>
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <a class="code" href="class_bluetooth_service.html#aa67faf901f78a55a202945a20f6d778a">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#a1bea5dd793a2f47006b4a7642efc9e56">hci_disconnect</a>(<a class="code" href="class_bluetooth_service.html#a67b1db67c05d0bbdcd9c992135455437">hci_handle</a>);</div>
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <a class="code" href="class_bluetooth_service.html#a67b1db67c05d0bbdcd9c992135455437">hci_handle</a> = -1; <span class="comment">// Reset handle</span></div>
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <a class="code" href="class_bluetooth_service.html#a78a1a893ec9c2db32e42bc2271c4a4f2">l2cap_event_flag</a> = 0; <span class="comment">// Reset flags</span></div>
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#a15cc1db556ad9a4ec6144ca8a42f8919">L2CAP_WAIT</a>;</div>
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; }</div>
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; }</div>
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;}</div>
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; }</div>
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;}</div>
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;</div>
<div class="line"><a name="l00347"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#a938eab04e406a29cc9324dad3ccb52cc"> 347</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_b_t_h_i_d.html#a938eab04e406a29cc9324dad3ccb52cc">BTHID::Run</a>() {</div>
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <span class="keywordflow">switch</span>(l2cap_state) {</div>
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#a15cc1db556ad9a4ec6144ca8a42f8919">L2CAP_WAIT</a>:</div>
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#af40b8d52df99192880c8a13443b6c6d8">connectToHIDDevice</a> &amp;&amp; !<a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#a0f1c28a03bcbe62cc7c083f97ea27594">l2capConnectionClaimed</a> &amp;&amp; !<a class="code" href="class_b_t_h_i_d.html#ab3a81823a1d8805383146a6baad6ccc4">connected</a> &amp;&amp; !activeConnection) {</div>
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#a0f1c28a03bcbe62cc7c083f97ea27594">l2capConnectionClaimed</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; activeConnection = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nSend HID Control Connection Request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a8e4888359cda09bc7123d971bb9d8dcf">hci_handle</a> = <a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#aa3bb6c692701cb33dfad1ea4d68b6f98">hci_handle</a>; <span class="comment">// Store the HCI Handle for the connection</span></div>
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; l2cap_event_flag = 0; <span class="comment">// Reset flags</span></div>
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; identifier = 0;</div>
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#a55cf412a2053972a353b1ab964ca9d3e">l2cap_connection_request</a>(<a class="code" href="class_b_t_h_i_d.html#a8e4888359cda09bc7123d971bb9d8dcf">hci_handle</a>, identifier, control_dcid, <a class="code" href="_b_t_d_8h.html#a1465673868452307bcdab8e201430c27">HID_CTRL_PSM</a>);</div>
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#a68bcdd68c269cd7970d5271a00bbe5fe">L2CAP_CONTROL_CONNECT_REQUEST</a>;</div>
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a>(<a class="code" href="_b_t_d_8h.html#a969a1ee84797f3ee5006c41f67373f96">L2CAP_FLAG_CONNECTION_CONTROL_REQUEST</a>)) {</div>
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nHID Control Incoming Connection Request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#a7d34c62b1d561679dea5cd27356b38a7">l2cap_connection_response</a>(<a class="code" href="class_b_t_h_i_d.html#a8e4888359cda09bc7123d971bb9d8dcf">hci_handle</a>, identifier, control_dcid, <a class="code" href="class_b_t_h_i_d.html#acf6933a4988ed9f48c6e08cc7c9b906c">control_scid</a>, <a class="code" href="_b_t_d_8h.html#a9960d0d5ae92fc92c70bbb84c2a5c0cc">PENDING</a>);</div>
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;</div>
<div class="line"><a name="l00344"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#a938eab04e406a29cc9324dad3ccb52cc"> 344</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_b_t_h_i_d.html#a938eab04e406a29cc9324dad3ccb52cc">BTHID::Run</a>() {</div>
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <span class="keywordflow">switch</span>(l2cap_state) {</div>
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#a15cc1db556ad9a4ec6144ca8a42f8919">L2CAP_WAIT</a>:</div>
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_bluetooth_service.html#aa67faf901f78a55a202945a20f6d778a">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#af40b8d52df99192880c8a13443b6c6d8">connectToHIDDevice</a> &amp;&amp; !<a class="code" href="class_bluetooth_service.html#aa67faf901f78a55a202945a20f6d778a">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#a0f1c28a03bcbe62cc7c083f97ea27594">l2capConnectionClaimed</a> &amp;&amp; !<a class="code" href="class_b_t_h_i_d.html#ab3a81823a1d8805383146a6baad6ccc4">connected</a> &amp;&amp; !activeConnection) {</div>
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <a class="code" href="class_bluetooth_service.html#aa67faf901f78a55a202945a20f6d778a">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#a0f1c28a03bcbe62cc7c083f97ea27594">l2capConnectionClaimed</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; activeConnection = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(<a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot;\r\nSend HID Control Connection Request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <a class="code" href="class_bluetooth_service.html#a67b1db67c05d0bbdcd9c992135455437">hci_handle</a> = <a class="code" href="class_bluetooth_service.html#aa67faf901f78a55a202945a20f6d778a">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#aa3bb6c692701cb33dfad1ea4d68b6f98">hci_handle</a>; <span class="comment">// Store the HCI Handle for the connection</span></div>
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; <a class="code" href="class_bluetooth_service.html#a78a1a893ec9c2db32e42bc2271c4a4f2">l2cap_event_flag</a> = 0; <span class="comment">// Reset flags</span></div>
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <a class="code" href="class_bluetooth_service.html#ad643db609c7e2e3fae8904dbc7991262">identifier</a> = 0;</div>
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <a class="code" href="class_bluetooth_service.html#aa67faf901f78a55a202945a20f6d778a">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#a55cf412a2053972a353b1ab964ca9d3e">l2cap_connection_request</a>(<a class="code" href="class_bluetooth_service.html#a67b1db67c05d0bbdcd9c992135455437">hci_handle</a>, <a class="code" href="class_bluetooth_service.html#ad643db609c7e2e3fae8904dbc7991262">identifier</a>, control_dcid, <a class="code" href="_b_t_d_8h.html#a1465673868452307bcdab8e201430c27">HID_CTRL_PSM</a>);</div>
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#a68bcdd68c269cd7970d5271a00bbe5fe">L2CAP_CONTROL_CONNECT_REQUEST</a>;</div>
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a>(<a class="code" href="_b_t_d_8h.html#a969a1ee84797f3ee5006c41f67373f96">L2CAP_FLAG_CONNECTION_CONTROL_REQUEST</a>)) {</div>
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(<a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot;\r\nHID Control Incoming Connection Request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <a class="code" href="class_bluetooth_service.html#aa67faf901f78a55a202945a20f6d778a">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#a7d34c62b1d561679dea5cd27356b38a7">l2cap_connection_response</a>(<a class="code" href="class_bluetooth_service.html#a67b1db67c05d0bbdcd9c992135455437">hci_handle</a>, <a class="code" href="class_bluetooth_service.html#ad643db609c7e2e3fae8904dbc7991262">identifier</a>, control_dcid, <a class="code" href="class_b_t_h_i_d.html#acf6933a4988ed9f48c6e08cc7c9b906c">control_scid</a>, <a class="code" href="_b_t_d_8h.html#a9960d0d5ae92fc92c70bbb84c2a5c0cc">PENDING</a>);</div>
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; delay(1);</div>
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <a class="code" href="class_bluetooth_service.html#aa67faf901f78a55a202945a20f6d778a">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#a7d34c62b1d561679dea5cd27356b38a7">l2cap_connection_response</a>(<a class="code" href="class_bluetooth_service.html#a67b1db67c05d0bbdcd9c992135455437">hci_handle</a>, <a class="code" href="class_bluetooth_service.html#ad643db609c7e2e3fae8904dbc7991262">identifier</a>, control_dcid, <a class="code" href="class_b_t_h_i_d.html#acf6933a4988ed9f48c6e08cc7c9b906c">control_scid</a>, <a class="code" href="_b_t_d_8h.html#a1be7a56cdddcdb7dedf16d4dee381e93">SUCCESSFUL</a>);</div>
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <a class="code" href="class_bluetooth_service.html#ad643db609c7e2e3fae8904dbc7991262">identifier</a>++;</div>
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; delay(1);</div>
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#a7d34c62b1d561679dea5cd27356b38a7">l2cap_connection_response</a>(<a class="code" href="class_b_t_h_i_d.html#a8e4888359cda09bc7123d971bb9d8dcf">hci_handle</a>, identifier, control_dcid, <a class="code" href="class_b_t_h_i_d.html#acf6933a4988ed9f48c6e08cc7c9b906c">control_scid</a>, <a class="code" href="_b_t_d_8h.html#a1be7a56cdddcdb7dedf16d4dee381e93">SUCCESSFUL</a>);</div>
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; identifier++;</div>
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; delay(1);</div>
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#ab646a59311344966f139bb3b78f30233">l2cap_config_request</a>(<a class="code" href="class_b_t_h_i_d.html#a8e4888359cda09bc7123d971bb9d8dcf">hci_handle</a>, identifier, <a class="code" href="class_b_t_h_i_d.html#acf6933a4988ed9f48c6e08cc7c9b906c">control_scid</a>);</div>
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#abac08b5b24a1cd2b12517cd9aa6c616b">L2CAP_CONTROL_SUCCESS</a>;</div>
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <a class="code" href="class_bluetooth_service.html#aa67faf901f78a55a202945a20f6d778a">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#ab646a59311344966f139bb3b78f30233">l2cap_config_request</a>(<a class="code" href="class_bluetooth_service.html#a67b1db67c05d0bbdcd9c992135455437">hci_handle</a>, <a class="code" href="class_bluetooth_service.html#ad643db609c7e2e3fae8904dbc7991262">identifier</a>, <a class="code" href="class_b_t_h_i_d.html#acf6933a4988ed9f48c6e08cc7c9b906c">control_scid</a>);</div>
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#abac08b5b24a1cd2b12517cd9aa6c616b">L2CAP_CONTROL_SUCCESS</a>;</div>
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; }</div>
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; }</div>
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;}</div>
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; }</div>
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;}</div>
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;</div>
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;<span class="comment">/************************************************************/</span></div>
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;<span class="comment">/* HID Commands */</span></div>
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;</div>
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;<span class="comment">/************************************************************/</span></div>
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;<span class="comment">/* HID Commands */</span></div>
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;</div>
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;<span class="comment">/************************************************************/</span></div>
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;<span class="keywordtype">void</span> BTHID::setProtocol() {</div>
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nSet protocol mode: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; D_PrintHex&lt;uint8_t &gt; (protocolMode, 0x80);</div>
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="keywordflow">if</span> (protocolMode != <a class="code" href="hid_8h.html#a41258c5dd55e5ae0378ec8ded892ce37">HID_BOOT_PROTOCOL</a> &amp;&amp; protocolMode != <a class="code" href="hid_8h.html#a5153bc7974af5cfead6daea72b8b2f6a">HID_RPT_PROTOCOL</a>) {</div>
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nNot a valid protocol mode. Using Boot protocol instead.&quot;</span>), 0x80);</div>
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; protocolMode = <a class="code" href="hid_8h.html#a41258c5dd55e5ae0378ec8ded892ce37">HID_BOOT_PROTOCOL</a>; <span class="comment">// Use Boot Protocol by default</span></div>
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;<span class="keywordtype">void</span> BTHID::setProtocol() {</div>
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(<a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot;\r\nSet protocol mode: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; D_PrintHex&lt;uint8_t &gt; (protocolMode, 0x80);</div>
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <span class="keywordflow">if</span> (protocolMode != <a class="code" href="hid_8h.html#a41258c5dd55e5ae0378ec8ded892ce37">HID_BOOT_PROTOCOL</a> &amp;&amp; protocolMode != <a class="code" href="hid_8h.html#a5153bc7974af5cfead6daea72b8b2f6a">HID_RPT_PROTOCOL</a>) {</div>
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(<a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot;\r\nNot a valid protocol mode. Using Boot protocol instead.&quot;</span>), 0x80);</div>
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; protocolMode = <a class="code" href="hid_8h.html#a41258c5dd55e5ae0378ec8ded892ce37">HID_BOOT_PROTOCOL</a>; <span class="comment">// Use Boot Protocol by default</span></div>
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; }</div>
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; uint8_t command = 0x70 | protocolMode; <span class="comment">// Set Protocol, see Bluetooth HID specs page 33</span></div>
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <a class="code" href="class_bluetooth_service.html#aa67faf901f78a55a202945a20f6d778a">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#aad7d8ef46e60b48ff4aaabefb0b290e7">L2CAP_Command</a>(<a class="code" href="class_bluetooth_service.html#a67b1db67c05d0bbdcd9c992135455437">hci_handle</a>, &amp;command, 1, <a class="code" href="class_b_t_h_i_d.html#acf6933a4988ed9f48c6e08cc7c9b906c">control_scid</a>[0], <a class="code" href="class_b_t_h_i_d.html#acf6933a4988ed9f48c6e08cc7c9b906c">control_scid</a>[1]);</div>
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160;}</div>
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; uint8_t command = 0x70 | protocolMode; <span class="comment">// Set Protocol, see Bluetooth HID specs page 33</span></div>
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#aad7d8ef46e60b48ff4aaabefb0b290e7">L2CAP_Command</a>(<a class="code" href="class_b_t_h_i_d.html#a8e4888359cda09bc7123d971bb9d8dcf">hci_handle</a>, &amp;command, 1, <a class="code" href="class_b_t_h_i_d.html#acf6933a4988ed9f48c6e08cc7c9b906c">control_scid</a>[0], <a class="code" href="class_b_t_h_i_d.html#acf6933a4988ed9f48c6e08cc7c9b906c">control_scid</a>[1]);</div>
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;}</div>
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160;</div>
<div class="line"><a name="l00396"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#ae222e33ac617620c4cab5c1b23b89310"> 396</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_b_t_h_i_d.html#ae222e33ac617620c4cab5c1b23b89310">BTHID::setLeds</a>(uint8_t data) {</div>
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; uint8_t buf[3];</div>
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; buf[0] = 0xA2; <span class="comment">// HID BT DATA_request (0xA0) | Report Type (Output 0x02)</span></div>
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; buf[1] = 0x01; <span class="comment">// Report ID</span></div>
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; buf[2] = data;</div>
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#aad7d8ef46e60b48ff4aaabefb0b290e7">L2CAP_Command</a>(<a class="code" href="class_b_t_h_i_d.html#a8e4888359cda09bc7123d971bb9d8dcf">hci_handle</a>, buf, 3, <a class="code" href="class_b_t_h_i_d.html#a34a91f92ea32033403c2b37af92535dc">interrupt_scid</a>[0], <a class="code" href="class_b_t_h_i_d.html#a34a91f92ea32033403c2b37af92535dc">interrupt_scid</a>[1]);</div>
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;}</div>
<div class="ttc" id="_b_t_d_8h_html_a27057737ae0b2246442511c01eeed192"><div class="ttname"><a href="_b_t_d_8h.html#a27057737ae0b2246442511c01eeed192">L2CAP_FLAG_DISCONNECT_CONTROL_RESPONSE</a></div><div class="ttdeci">#define L2CAP_FLAG_DISCONNECT_CONTROL_RESPONSE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00139">BTD.h:139</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a3aa6623f7fa8839754d3deefa6d60372"><div class="ttname"><a href="_b_t_d_8h.html#a3aa6623f7fa8839754d3deefa6d60372">UHS_ACL_HANDLE_OK</a></div><div class="ttdeci">#define UHS_ACL_HANDLE_OK(x, y)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00207">BTD.h:207</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a2b3cdcd3124251a40ce825da0d8dcb6f"><div class="ttname"><a href="_b_t_d_8h.html#a2b3cdcd3124251a40ce825da0d8dcb6f">L2CAP_FLAG_CONFIG_INTERRUPT_SUCCESS</a></div><div class="ttdeci">#define L2CAP_FLAG_CONFIG_INTERRUPT_SUCCESS</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00143">BTD.h:143</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a73e3a81d9a8850075fd10933acc5a035"><div class="ttname"><a href="_b_t_d_8h.html#a73e3a81d9a8850075fd10933acc5a035">L2CAP_INTERRUPT_CONFIG_REQUEST</a></div><div class="ttdeci">#define L2CAP_INTERRUPT_CONFIG_REQUEST</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00115">BTD.h:115</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_ac7aa7fd7a8a34a6c9e420e3cb114737b"><div class="ttname"><a href="_b_t_d_8h.html#ac7aa7fd7a8a34a6c9e420e3cb114737b">L2CAP_INTERRUPT_SETUP</a></div><div class="ttdeci">#define L2CAP_INTERRUPT_SETUP</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00113">BTD.h:113</a></div></div>
<div class="ttc" id="class_b_t_d_html_a7d34c62b1d561679dea5cd27356b38a7"><div class="ttname"><a href="class_b_t_d.html#a7d34c62b1d561679dea5cd27356b38a7">BTD::l2cap_connection_response</a></div><div class="ttdeci">void l2cap_connection_response(uint16_t handle, uint8_t rxid, uint8_t *dcid, uint8_t *scid, uint8_t result)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01231">BTD.cpp:1231</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a1be7a56cdddcdb7dedf16d4dee381e93"><div class="ttname"><a href="_b_t_d_8h.html#a1be7a56cdddcdb7dedf16d4dee381e93">SUCCESSFUL</a></div><div class="ttdeci">#define SUCCESSFUL</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00177">BTD.h:177</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_a84eb1b910027f2d78741f65225c14e54"><div class="ttname"><a href="class_b_t_h_i_d.html#a84eb1b910027f2d78741f65225c14e54">BTHID::ACLData</a></div><div class="ttdeci">virtual void ACLData(uint8_t *ACLData)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8cpp_source.html#l00059">BTHID.cpp:59</a></div></div>
<div class="ttc" id="class_b_t_d_html_a55cf412a2053972a353b1ab964ca9d3e"><div class="ttname"><a href="class_b_t_d.html#a55cf412a2053972a353b1ab964ca9d3e">BTD::l2cap_connection_request</a></div><div class="ttdeci">void l2cap_connection_request(uint16_t handle, uint8_t rxid, uint8_t *scid, uint16_t psm)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01218">BTD.cpp:1218</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a015f3b25bd7a2908c84b973dec453f45"><div class="ttname"><a href="_b_t_d_8h.html#a015f3b25bd7a2908c84b973dec453f45">L2CAP_FLAG_CONNECTION_INTERRUPT_REQUEST</a></div><div class="ttdeci">#define L2CAP_FLAG_CONNECTION_INTERRUPT_REQUEST</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00142">BTD.h:142</a></div></div>
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160;</div>
<div class="line"><a name="l00393"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#ae222e33ac617620c4cab5c1b23b89310"> 393</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_b_t_h_i_d.html#ae222e33ac617620c4cab5c1b23b89310">BTHID::setLeds</a>(uint8_t data) {</div>
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; uint8_t buf[3];</div>
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; buf[0] = 0xA2; <span class="comment">// HID BT DATA_request (0xA0) | Report Type (Output 0x02)</span></div>
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; buf[1] = 0x01; <span class="comment">// Report ID</span></div>
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; buf[2] = data;</div>
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; <a class="code" href="class_bluetooth_service.html#aa67faf901f78a55a202945a20f6d778a">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#aad7d8ef46e60b48ff4aaabefb0b290e7">L2CAP_Command</a>(<a class="code" href="class_bluetooth_service.html#a67b1db67c05d0bbdcd9c992135455437">hci_handle</a>, buf, 3, <a class="code" href="class_b_t_h_i_d.html#a34a91f92ea32033403c2b37af92535dc">interrupt_scid</a>[0], <a class="code" href="class_b_t_h_i_d.html#a34a91f92ea32033403c2b37af92535dc">interrupt_scid</a>[1]);</div>
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160;}</div>
<div class="ttc" id="_b_t_d_8h_html_a27057737ae0b2246442511c01eeed192"><div class="ttname"><a href="_b_t_d_8h.html#a27057737ae0b2246442511c01eeed192">L2CAP_FLAG_DISCONNECT_CONTROL_RESPONSE</a></div><div class="ttdeci">#define L2CAP_FLAG_DISCONNECT_CONTROL_RESPONSE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00137">BTD.h:137</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a2b3cdcd3124251a40ce825da0d8dcb6f"><div class="ttname"><a href="_b_t_d_8h.html#a2b3cdcd3124251a40ce825da0d8dcb6f">L2CAP_FLAG_CONFIG_INTERRUPT_SUCCESS</a></div><div class="ttdeci">#define L2CAP_FLAG_CONFIG_INTERRUPT_SUCCESS</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00141">BTD.h:141</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a73e3a81d9a8850075fd10933acc5a035"><div class="ttname"><a href="_b_t_d_8h.html#a73e3a81d9a8850075fd10933acc5a035">L2CAP_INTERRUPT_CONFIG_REQUEST</a></div><div class="ttdeci">#define L2CAP_INTERRUPT_CONFIG_REQUEST</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00113">BTD.h:113</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_ac7aa7fd7a8a34a6c9e420e3cb114737b"><div class="ttname"><a href="_b_t_d_8h.html#ac7aa7fd7a8a34a6c9e420e3cb114737b">L2CAP_INTERRUPT_SETUP</a></div><div class="ttdeci">#define L2CAP_INTERRUPT_SETUP</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00111">BTD.h:111</a></div></div>
<div class="ttc" id="class_b_t_d_html_a7d34c62b1d561679dea5cd27356b38a7"><div class="ttname"><a href="class_b_t_d.html#a7d34c62b1d561679dea5cd27356b38a7">BTD::l2cap_connection_response</a></div><div class="ttdeci">void l2cap_connection_response(uint16_t handle, uint8_t rxid, uint8_t *dcid, uint8_t *scid, uint8_t result)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01239">BTD.cpp:1239</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a1be7a56cdddcdb7dedf16d4dee381e93"><div class="ttname"><a href="_b_t_d_8h.html#a1be7a56cdddcdb7dedf16d4dee381e93">SUCCESSFUL</a></div><div class="ttdeci">#define SUCCESSFUL</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00175">BTD.h:175</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_a84eb1b910027f2d78741f65225c14e54"><div class="ttname"><a href="class_b_t_h_i_d.html#a84eb1b910027f2d78741f65225c14e54">BTHID::ACLData</a></div><div class="ttdeci">void ACLData(uint8_t *ACLData)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8cpp_source.html#l00056">BTHID.cpp:56</a></div></div>
<div class="ttc" id="class_b_t_d_html_a55cf412a2053972a353b1ab964ca9d3e"><div class="ttname"><a href="class_b_t_d.html#a55cf412a2053972a353b1ab964ca9d3e">BTD::l2cap_connection_request</a></div><div class="ttdeci">void l2cap_connection_request(uint16_t handle, uint8_t rxid, uint8_t *scid, uint16_t psm)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01226">BTD.cpp:1226</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a015f3b25bd7a2908c84b973dec453f45"><div class="ttname"><a href="_b_t_d_8h.html#a015f3b25bd7a2908c84b973dec453f45">L2CAP_FLAG_CONNECTION_INTERRUPT_REQUEST</a></div><div class="ttdeci">#define L2CAP_FLAG_CONNECTION_INTERRUPT_REQUEST</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00140">BTD.h:140</a></div></div>
<div class="ttc" id="hid_8h_html_a5153bc7974af5cfead6daea72b8b2f6a"><div class="ttname"><a href="hid_8h.html#a5153bc7974af5cfead6daea72b8b2f6a">HID_RPT_PROTOCOL</a></div><div class="ttdeci">#define HID_RPT_PROTOCOL</div><div class="ttdef"><b>Definition:</b> <a href="hid_8h_source.html#l00083">hid.h:83</a></div></div>
<div class="ttc" id="class_b_t_d_html"><div class="ttname"><a href="class_b_t_d.html">BTD</a></div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00230">BTD.h:230</a></div></div>
<div class="ttc" id="class_b_t_d_html_ac7053ef7ac690be3afbbdd985b163f10"><div class="ttname"><a href="class_b_t_d.html#ac7053ef7ac690be3afbbdd985b163f10">BTD::l2cap_disconnection_request</a></div><div class="ttdeci">void l2cap_disconnection_request(uint16_t handle, uint8_t rxid, uint8_t *dcid, uint8_t *scid)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01284">BTD.cpp:1284</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_a34a91f92ea32033403c2b37af92535dc"><div class="ttname"><a href="class_b_t_h_i_d.html#a34a91f92ea32033403c2b37af92535dc">BTHID::interrupt_scid</a></div><div class="ttdeci">uint8_t interrupt_scid[2]</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00139">BTHID.h:139</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_ab3a81823a1d8805383146a6baad6ccc4"><div class="ttname"><a href="class_b_t_h_i_d.html#ab3a81823a1d8805383146a6baad6ccc4">BTHID::connected</a></div><div class="ttdeci">bool connected</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00092">BTHID.h:92</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_a938eab04e406a29cc9324dad3ccb52cc"><div class="ttname"><a href="class_b_t_h_i_d.html#a938eab04e406a29cc9324dad3ccb52cc">BTHID::Run</a></div><div class="ttdeci">virtual void Run()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8cpp_source.html#l00347">BTHID.cpp:347</a></div></div>
<div class="ttc" id="class_b_t_d_html_a215cb939c01ed3ff56db37841224546c"><div class="ttname"><a href="class_b_t_d.html#a215cb939c01ed3ff56db37841224546c">BTD::btdPin</a></div><div class="ttdeci">const char * btdPin</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00482">BTD.h:482</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_ae4da52ca67e1f8b977199b24e8f3a400"><div class="ttname"><a href="_b_t_d_8h.html#ae4da52ca67e1f8b977199b24e8f3a400">L2CAP_DONE</a></div><div class="ttdeci">#define L2CAP_DONE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00104">BTD.h:104</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_abac08b5b24a1cd2b12517cd9aa6c616b"><div class="ttname"><a href="_b_t_d_8h.html#abac08b5b24a1cd2b12517cd9aa6c616b">L2CAP_CONTROL_SUCCESS</a></div><div class="ttdeci">#define L2CAP_CONTROL_SUCCESS</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00109">BTD.h:109</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a15cc1db556ad9a4ec6144ca8a42f8919"><div class="ttname"><a href="_b_t_d_8h.html#a15cc1db556ad9a4ec6144ca8a42f8919">L2CAP_WAIT</a></div><div class="ttdeci">#define L2CAP_WAIT</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00103">BTD.h:103</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_acc22bf5baaa096fe09b72c812c1134f0"><div class="ttname"><a href="class_b_t_h_i_d.html#acc22bf5baaa096fe09b72c812c1134f0">BTHID::ResetBTHID</a></div><div class="ttdeci">virtual void ResetBTHID()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00123">BTHID.h:123</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_af4c58b81414a037910dd6fb78f97b96e"><div class="ttname"><a href="class_b_t_h_i_d.html#af4c58b81414a037910dd6fb78f97b96e">BTHID::Reset</a></div><div class="ttdeci">virtual void Reset()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8cpp_source.html#l00044">BTHID.cpp:44</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_aaaf733ee2c84bd8df4d24f2ae1f3b378"><div class="ttname"><a href="_b_t_d_8h.html#aaaf733ee2c84bd8df4d24f2ae1f3b378">L2CAP_CONTROL_CONFIG_REQUEST</a></div><div class="ttdeci">#define L2CAP_CONTROL_CONFIG_REQUEST</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00108">BTD.h:108</a></div></div>
<div class="ttc" id="class_b_t_d_html_a29d176d9194e5c92fbe54791fc245407"><div class="ttname"><a href="class_b_t_d.html#a29d176d9194e5c92fbe54791fc245407">BTD::l2cap_disconnection_response</a></div><div class="ttdeci">void l2cap_disconnection_response(uint16_t handle, uint8_t rxid, uint8_t *dcid, uint8_t *scid)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01297">BTD.cpp:1297</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_acf6933a4988ed9f48c6e08cc7c9b906c"><div class="ttname"><a href="class_b_t_h_i_d.html#acf6933a4988ed9f48c6e08cc7c9b906c">BTHID::control_scid</a></div><div class="ttdeci">uint8_t control_scid[2]</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00136">BTHID.h:136</a></div></div>
<div class="ttc" id="class_b_t_d_html"><div class="ttname"><a href="class_b_t_d.html">BTD</a></div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00198">BTD.h:198</a></div></div>
<div class="ttc" id="class_b_t_d_html_ac7053ef7ac690be3afbbdd985b163f10"><div class="ttname"><a href="class_b_t_d.html#ac7053ef7ac690be3afbbdd985b163f10">BTD::l2cap_disconnection_request</a></div><div class="ttdeci">void l2cap_disconnection_request(uint16_t handle, uint8_t rxid, uint8_t *dcid, uint8_t *scid)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01292">BTD.cpp:1292</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_a34a91f92ea32033403c2b37af92535dc"><div class="ttname"><a href="class_b_t_h_i_d.html#a34a91f92ea32033403c2b37af92535dc">BTHID::interrupt_scid</a></div><div class="ttdeci">uint8_t interrupt_scid[2]</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00137">BTHID.h:137</a></div></div>
<div class="ttc" id="class_bluetooth_service_html_ad643db609c7e2e3fae8904dbc7991262"><div class="ttname"><a href="class_bluetooth_service.html#ad643db609c7e2e3fae8904dbc7991262">BluetoothService::identifier</a></div><div class="ttdeci">uint8_t identifier</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00615">BTD.h:615</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_ab3a81823a1d8805383146a6baad6ccc4"><div class="ttname"><a href="class_b_t_h_i_d.html#ab3a81823a1d8805383146a6baad6ccc4">BTHID::connected</a></div><div class="ttdeci">bool connected</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00083">BTHID.h:83</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_a938eab04e406a29cc9324dad3ccb52cc"><div class="ttname"><a href="class_b_t_h_i_d.html#a938eab04e406a29cc9324dad3ccb52cc">BTHID::Run</a></div><div class="ttdeci">void Run()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8cpp_source.html#l00344">BTHID.cpp:344</a></div></div>
<div class="ttc" id="class_b_t_d_html_a215cb939c01ed3ff56db37841224546c"><div class="ttname"><a href="class_b_t_d.html#a215cb939c01ed3ff56db37841224546c">BTD::btdPin</a></div><div class="ttdeci">const char * btdPin</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00446">BTD.h:446</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_ae4da52ca67e1f8b977199b24e8f3a400"><div class="ttname"><a href="_b_t_d_8h.html#ae4da52ca67e1f8b977199b24e8f3a400">L2CAP_DONE</a></div><div class="ttdeci">#define L2CAP_DONE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00102">BTD.h:102</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_abac08b5b24a1cd2b12517cd9aa6c616b"><div class="ttname"><a href="_b_t_d_8h.html#abac08b5b24a1cd2b12517cd9aa6c616b">L2CAP_CONTROL_SUCCESS</a></div><div class="ttdeci">#define L2CAP_CONTROL_SUCCESS</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00107">BTD.h:107</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a15cc1db556ad9a4ec6144ca8a42f8919"><div class="ttname"><a href="_b_t_d_8h.html#a15cc1db556ad9a4ec6144ca8a42f8919">L2CAP_WAIT</a></div><div class="ttdeci">#define L2CAP_WAIT</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00101">BTD.h:101</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_acc22bf5baaa096fe09b72c812c1134f0"><div class="ttname"><a href="class_b_t_h_i_d.html#acc22bf5baaa096fe09b72c812c1134f0">BTHID::ResetBTHID</a></div><div class="ttdeci">virtual void ResetBTHID()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00128">BTHID.h:128</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_af4c58b81414a037910dd6fb78f97b96e"><div class="ttname"><a href="class_b_t_h_i_d.html#af4c58b81414a037910dd6fb78f97b96e">BTHID::Reset</a></div><div class="ttdeci">void Reset()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8cpp_source.html#l00041">BTHID.cpp:41</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_aaaf733ee2c84bd8df4d24f2ae1f3b378"><div class="ttname"><a href="_b_t_d_8h.html#aaaf733ee2c84bd8df4d24f2ae1f3b378">L2CAP_CONTROL_CONFIG_REQUEST</a></div><div class="ttdeci">#define L2CAP_CONTROL_CONFIG_REQUEST</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00106">BTD.h:106</a></div></div>
<div class="ttc" id="class_b_t_d_html_a29d176d9194e5c92fbe54791fc245407"><div class="ttname"><a href="class_b_t_d.html#a29d176d9194e5c92fbe54791fc245407">BTD::l2cap_disconnection_response</a></div><div class="ttdeci">void l2cap_disconnection_response(uint16_t handle, uint8_t rxid, uint8_t *dcid, uint8_t *scid)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01305">BTD.cpp:1305</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_acf6933a4988ed9f48c6e08cc7c9b906c"><div class="ttname"><a href="class_b_t_h_i_d.html#acf6933a4988ed9f48c6e08cc7c9b906c">BTHID::control_scid</a></div><div class="ttdeci">uint8_t control_scid[2]</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00134">BTHID.h:134</a></div></div>
<div class="ttc" id="message_8h_html_a27117e124c5d66d5512fe8d494fe6338"><div class="ttname"><a href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a></div><div class="ttdeci">#define Notify(...)</div><div class="ttdef"><b>Definition:</b> <a href="message_8h_source.html#l00044">message.h:44</a></div></div>
<div class="ttc" id="class_b_t_d_html_af40b8d52df99192880c8a13443b6c6d8"><div class="ttname"><a href="class_b_t_d.html#af40b8d52df99192880c8a13443b6c6d8">BTD::connectToHIDDevice</a></div><div class="ttdeci">bool connectToHIDDevice</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00519">BTD.h:519</a></div></div>
<div class="ttc" id="class_b_t_d_html_af40b8d52df99192880c8a13443b6c6d8"><div class="ttname"><a href="class_b_t_d.html#af40b8d52df99192880c8a13443b6c6d8">BTD::connectToHIDDevice</a></div><div class="ttdeci">bool connectToHIDDevice</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00483">BTD.h:483</a></div></div>
<div class="ttc" id="hid_8h_html_a41258c5dd55e5ae0378ec8ded892ce37"><div class="ttname"><a href="hid_8h.html#a41258c5dd55e5ae0378ec8ded892ce37">HID_BOOT_PROTOCOL</a></div><div class="ttdeci">#define HID_BOOT_PROTOCOL</div><div class="ttdef"><b>Definition:</b> <a href="hid_8h_source.html#l00082">hid.h:82</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a68bcdd68c269cd7970d5271a00bbe5fe"><div class="ttname"><a href="_b_t_d_8h.html#a68bcdd68c269cd7970d5271a00bbe5fe">L2CAP_CONTROL_CONNECT_REQUEST</a></div><div class="ttdeci">#define L2CAP_CONTROL_CONNECT_REQUEST</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00107">BTD.h:107</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a1465673868452307bcdab8e201430c27"><div class="ttname"><a href="_b_t_d_8h.html#a1465673868452307bcdab8e201430c27">HID_CTRL_PSM</a></div><div class="ttdeci">#define HID_CTRL_PSM</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00182">BTD.h:182</a></div></div>
<div class="ttc" id="class_b_t_d_html_a685d6371fb0c950ff6bad4510a8cc85a"><div class="ttname"><a href="class_b_t_d.html#a685d6371fb0c950ff6bad4510a8cc85a">BTD::incomingHIDDevice</a></div><div class="ttdeci">bool incomingHIDDevice</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00523">BTD.h:523</a></div></div>
<div class="ttc" id="class_b_t_d_html_a2aa418d820fb6b877ea079e0436a518e"><div class="ttname"><a href="class_b_t_d.html#a2aa418d820fb6b877ea079e0436a518e">BTD::pairWithHIDDevice</a></div><div class="ttdeci">bool pairWithHIDDevice</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00525">BTD.h:525</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a68bcdd68c269cd7970d5271a00bbe5fe"><div class="ttname"><a href="_b_t_d_8h.html#a68bcdd68c269cd7970d5271a00bbe5fe">L2CAP_CONTROL_CONNECT_REQUEST</a></div><div class="ttdeci">#define L2CAP_CONTROL_CONNECT_REQUEST</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00105">BTD.h:105</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a1465673868452307bcdab8e201430c27"><div class="ttname"><a href="_b_t_d_8h.html#a1465673868452307bcdab8e201430c27">HID_CTRL_PSM</a></div><div class="ttdeci">#define HID_CTRL_PSM</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00180">BTD.h:180</a></div></div>
<div class="ttc" id="class_b_t_d_html_a685d6371fb0c950ff6bad4510a8cc85a"><div class="ttname"><a href="class_b_t_d.html#a685d6371fb0c950ff6bad4510a8cc85a">BTD::incomingHIDDevice</a></div><div class="ttdeci">bool incomingHIDDevice</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00487">BTD.h:487</a></div></div>
<div class="ttc" id="class_b_t_d_html_a2aa418d820fb6b877ea079e0436a518e"><div class="ttname"><a href="class_b_t_d.html#a2aa418d820fb6b877ea079e0436a518e">BTD::pairWithHIDDevice</a></div><div class="ttdeci">bool pairWithHIDDevice</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00489">BTD.h:489</a></div></div>
<div class="ttc" id="_b_t_h_i_d_8h_html_a0b48c93189cf128c1ef13ce86b4fa6be"><div class="ttname"><a href="_b_t_h_i_d_8h.html#a0b48c93189cf128c1ef13ce86b4fa6be">MOUSE_PARSER_ID</a></div><div class="ttdeci">#define MOUSE_PARSER_ID</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00025">BTHID.h:25</a></div></div>
<div class="ttc" id="class_b_t_d_html_aa3bb6c692701cb33dfad1ea4d68b6f98"><div class="ttname"><a href="class_b_t_d.html#aa3bb6c692701cb33dfad1ea4d68b6f98">BTD::hci_handle</a></div><div class="ttdeci">uint16_t hci_handle</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00487">BTD.h:487</a></div></div>
<div class="ttc" id="class_b_t_d_html_aa3bb6c692701cb33dfad1ea4d68b6f98"><div class="ttname"><a href="class_b_t_d.html#aa3bb6c692701cb33dfad1ea4d68b6f98">BTD::hci_handle</a></div><div class="ttdeci">uint16_t hci_handle</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00451">BTD.h:451</a></div></div>
<div class="ttc" id="_b_t_h_i_d_8h_html"><div class="ttname"><a href="_b_t_h_i_d_8h.html">BTHID.h</a></div></div>
<div class="ttc" id="class_b_t_d_html_a1bea5dd793a2f47006b4a7642efc9e56"><div class="ttname"><a href="class_b_t_d.html#a1bea5dd793a2f47006b4a7642efc9e56">BTD::hci_disconnect</a></div><div class="ttdeci">void hci_disconnect(uint16_t handle)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01142">BTD.cpp:1142</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_acc096a05301f3cbdece4ad372cc149c3"><div class="ttname"><a href="_b_t_d_8h.html#acc096a05301f3cbdece4ad372cc149c3">L2CAP_FLAG_DISCONNECT_INTERRUPT_RESPONSE</a></div><div class="ttdeci">#define L2CAP_FLAG_DISCONNECT_INTERRUPT_RESPONSE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00145">BTD.h:145</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_ae1ee62d7b9951ec7960f122c9fc2d2d0"><div class="ttname"><a href="class_b_t_h_i_d.html#ae1ee62d7b9951ec7960f122c9fc2d2d0">BTHID::disconnect</a></div><div class="ttdeci">virtual void disconnect()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8cpp_source.html#l00052">BTHID.cpp:52</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_ae222e33ac617620c4cab5c1b23b89310"><div class="ttname"><a href="class_b_t_h_i_d.html#ae222e33ac617620c4cab5c1b23b89310">BTHID::setLeds</a></div><div class="ttdeci">void setLeds(uint8_t data)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8cpp_source.html#l00396">BTHID.cpp:396</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_a4de4a1efd32000a0cf5a884456e52c7d"><div class="ttname"><a href="class_b_t_h_i_d.html#a4de4a1efd32000a0cf5a884456e52c7d">BTHID::ParseBTHIDData</a></div><div class="ttdeci">virtual void ParseBTHIDData(uint8_t len, uint8_t *buf)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00115">BTHID.h:115</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_a02c37811a4a401618caf188e744e8e3d"><div class="ttname"><a href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">BTHID::pBtd</a></div><div class="ttdeci">BTD * pBtd</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00129">BTHID.h:129</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a5d120280be8d502fa0b74d46aa32d3a8"><div class="ttname"><a href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a></div><div class="ttdeci">#define l2cap_check_flag(flag)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00160">BTD.h:160</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a48bcd73461d736d0ef889e1fe6e36f69"><div class="ttname"><a href="_b_t_d_8h.html#a48bcd73461d736d0ef889e1fe6e36f69">L2CAP_CMD_CONFIG_REQUEST</a></div><div class="ttdeci">#define L2CAP_CMD_CONFIG_REQUEST</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00168">BTD.h:168</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a2e5a9c283f0912833f3e0418d3feadd7"><div class="ttname"><a href="_b_t_d_8h.html#a2e5a9c283f0912833f3e0418d3feadd7">L2CAP_FLAG_CONTROL_CONNECTED</a></div><div class="ttdeci">#define L2CAP_FLAG_CONTROL_CONNECTED</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00138">BTD.h:138</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a398676a2e9a2351a5a52afdddf4b660b"><div class="ttname"><a href="_b_t_d_8h.html#a398676a2e9a2351a5a52afdddf4b660b">L2CAP_CMD_DISCONNECT_REQUEST</a></div><div class="ttdeci">#define L2CAP_CMD_DISCONNECT_REQUEST</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00170">BTD.h:170</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a9b5140e7ca5941e5535c575255ffc1cc"><div class="ttname"><a href="_b_t_d_8h.html#a9b5140e7ca5941e5535c575255ffc1cc">L2CAP_CONTROL_DISCONNECT</a></div><div class="ttdeci">#define L2CAP_CONTROL_DISCONNECT</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00110">BTD.h:110</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a969a1ee84797f3ee5006c41f67373f96"><div class="ttname"><a href="_b_t_d_8h.html#a969a1ee84797f3ee5006c41f67373f96">L2CAP_FLAG_CONNECTION_CONTROL_REQUEST</a></div><div class="ttdeci">#define L2CAP_FLAG_CONNECTION_CONTROL_REQUEST</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00136">BTD.h:136</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_a8e4888359cda09bc7123d971bb9d8dcf"><div class="ttname"><a href="class_b_t_h_i_d.html#a8e4888359cda09bc7123d971bb9d8dcf">BTHID::hci_handle</a></div><div class="ttdeci">uint16_t hci_handle</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00132">BTHID.h:132</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a4c5ac96db74d61d4a5a5d945a400e7da"><div class="ttname"><a href="_b_t_d_8h.html#a4c5ac96db74d61d4a5a5d945a400e7da">HID_INTR_PSM</a></div><div class="ttdeci">#define HID_INTR_PSM</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00183">BTD.h:183</a></div></div>
<div class="ttc" id="class_b_t_d_html_a4adfc7e51ad3b3c03e7c37d1af159e73"><div class="ttname"><a href="class_b_t_d.html#a4adfc7e51ad3b3c03e7c37d1af159e73">BTD::registerServiceClass</a></div><div class="ttdeci">int8_t registerServiceClass(BluetoothService *pService)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00333">BTD.h:333</a></div></div>
<div class="ttc" id="class_b_t_d_html_a0f1c28a03bcbe62cc7c083f97ea27594"><div class="ttname"><a href="class_b_t_d.html#a0f1c28a03bcbe62cc7c083f97ea27594">BTD::l2capConnectionClaimed</a></div><div class="ttdeci">bool l2capConnectionClaimed</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00473">BTD.h:473</a></div></div>
<div class="ttc" id="class_b_t_d_html_a1bea5dd793a2f47006b4a7642efc9e56"><div class="ttname"><a href="class_b_t_d.html#a1bea5dd793a2f47006b4a7642efc9e56">BTD::hci_disconnect</a></div><div class="ttdeci">void hci_disconnect(uint16_t handle)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01150">BTD.cpp:1150</a></div></div>
<div class="ttc" id="class_bluetooth_service_html"><div class="ttname"><a href="class_bluetooth_service.html">BluetoothService</a></div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00563">BTD.h:563</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_acc096a05301f3cbdece4ad372cc149c3"><div class="ttname"><a href="_b_t_d_8h.html#acc096a05301f3cbdece4ad372cc149c3">L2CAP_FLAG_DISCONNECT_INTERRUPT_RESPONSE</a></div><div class="ttdeci">#define L2CAP_FLAG_DISCONNECT_INTERRUPT_RESPONSE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00143">BTD.h:143</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_ae1ee62d7b9951ec7960f122c9fc2d2d0"><div class="ttname"><a href="class_b_t_h_i_d.html#ae1ee62d7b9951ec7960f122c9fc2d2d0">BTHID::disconnect</a></div><div class="ttdeci">void disconnect()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8cpp_source.html#l00049">BTHID.cpp:49</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_ae222e33ac617620c4cab5c1b23b89310"><div class="ttname"><a href="class_b_t_h_i_d.html#ae222e33ac617620c4cab5c1b23b89310">BTHID::setLeds</a></div><div class="ttdeci">void setLeds(uint8_t data)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8cpp_source.html#l00393">BTHID.cpp:393</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_a4de4a1efd32000a0cf5a884456e52c7d"><div class="ttname"><a href="class_b_t_h_i_d.html#a4de4a1efd32000a0cf5a884456e52c7d">BTHID::ParseBTHIDData</a></div><div class="ttdeci">virtual void ParseBTHIDData(uint8_t len, uint8_t *buf)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00120">BTHID.h:120</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a5d120280be8d502fa0b74d46aa32d3a8"><div class="ttname"><a href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a></div><div class="ttdeci">#define l2cap_check_flag(flag)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00158">BTD.h:158</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a48bcd73461d736d0ef889e1fe6e36f69"><div class="ttname"><a href="_b_t_d_8h.html#a48bcd73461d736d0ef889e1fe6e36f69">L2CAP_CMD_CONFIG_REQUEST</a></div><div class="ttdeci">#define L2CAP_CMD_CONFIG_REQUEST</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00166">BTD.h:166</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a2e5a9c283f0912833f3e0418d3feadd7"><div class="ttname"><a href="_b_t_d_8h.html#a2e5a9c283f0912833f3e0418d3feadd7">L2CAP_FLAG_CONTROL_CONNECTED</a></div><div class="ttdeci">#define L2CAP_FLAG_CONTROL_CONNECTED</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00136">BTD.h:136</a></div></div>
<div class="ttc" id="version__helper_8h_html_a73809107539df84eaf01f6a4dea4fbff"><div class="ttname"><a href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a></div><div class="ttdeci">#define PSTR(str)</div><div class="ttdef"><b>Definition:</b> <a href="version__helper_8h_source.html#l00047">version_helper.h:47</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a398676a2e9a2351a5a52afdddf4b660b"><div class="ttname"><a href="_b_t_d_8h.html#a398676a2e9a2351a5a52afdddf4b660b">L2CAP_CMD_DISCONNECT_REQUEST</a></div><div class="ttdeci">#define L2CAP_CMD_DISCONNECT_REQUEST</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00168">BTD.h:168</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a9b5140e7ca5941e5535c575255ffc1cc"><div class="ttname"><a href="_b_t_d_8h.html#a9b5140e7ca5941e5535c575255ffc1cc">L2CAP_CONTROL_DISCONNECT</a></div><div class="ttdeci">#define L2CAP_CONTROL_DISCONNECT</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00108">BTD.h:108</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a969a1ee84797f3ee5006c41f67373f96"><div class="ttname"><a href="_b_t_d_8h.html#a969a1ee84797f3ee5006c41f67373f96">L2CAP_FLAG_CONNECTION_CONTROL_REQUEST</a></div><div class="ttdeci">#define L2CAP_FLAG_CONNECTION_CONTROL_REQUEST</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00134">BTD.h:134</a></div></div>
<div class="ttc" id="class_bluetooth_service_html_aa67faf901f78a55a202945a20f6d778a"><div class="ttname"><a href="class_bluetooth_service.html#aa67faf901f78a55a202945a20f6d778a">BluetoothService::pBtd</a></div><div class="ttdeci">BTD * pBtd</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00606">BTD.h:606</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a4c5ac96db74d61d4a5a5d945a400e7da"><div class="ttname"><a href="_b_t_d_8h.html#a4c5ac96db74d61d4a5a5d945a400e7da">HID_INTR_PSM</a></div><div class="ttdeci">#define HID_INTR_PSM</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00181">BTD.h:181</a></div></div>
<div class="ttc" id="class_b_t_d_html_a0f1c28a03bcbe62cc7c083f97ea27594"><div class="ttname"><a href="class_b_t_d.html#a0f1c28a03bcbe62cc7c083f97ea27594">BTD::l2capConnectionClaimed</a></div><div class="ttdeci">bool l2capConnectionClaimed</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00437">BTD.h:437</a></div></div>
<div class="ttc" id="class_h_i_d_report_parser_html_ad2837f3d78c7ac3f1c2b3a4815420d97"><div class="ttname"><a href="class_h_i_d_report_parser.html#ad2837f3d78c7ac3f1c2b3a4815420d97">HIDReportParser::Parse</a></div><div class="ttdeci">virtual void Parse(HID *hid, bool is_rpt_id, uint8_t len, uint8_t *buf)=0</div></div>
<div class="ttc" id="_b_t_d_8h_html_a4c64a41200714e457b397496183dc0e4"><div class="ttname"><a href="_b_t_d_8h.html#a4c64a41200714e457b397496183dc0e4">L2CAP_CMD_DISCONNECT_RESPONSE</a></div><div class="ttdeci">#define L2CAP_CMD_DISCONNECT_RESPONSE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00171">BTD.h:171</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_aef7b306479de265d725dbe5816a8227b"><div class="ttname"><a href="_b_t_d_8h.html#aef7b306479de265d725dbe5816a8227b">L2CAP_CMD_CONNECTION_RESPONSE</a></div><div class="ttdeci">#define L2CAP_CMD_CONNECTION_RESPONSE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00167">BTD.h:167</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a8151b1fe5d940a5a7a34f43a8b8ce434"><div class="ttname"><a href="_b_t_d_8h.html#a8151b1fe5d940a5a7a34f43a8b8ce434">L2CAP_CMD_CONFIG_RESPONSE</a></div><div class="ttdeci">#define L2CAP_CMD_CONFIG_RESPONSE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00169">BTD.h:169</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a4c64a41200714e457b397496183dc0e4"><div class="ttname"><a href="_b_t_d_8h.html#a4c64a41200714e457b397496183dc0e4">L2CAP_CMD_DISCONNECT_RESPONSE</a></div><div class="ttdeci">#define L2CAP_CMD_DISCONNECT_RESPONSE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00169">BTD.h:169</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_aef7b306479de265d725dbe5816a8227b"><div class="ttname"><a href="_b_t_d_8h.html#aef7b306479de265d725dbe5816a8227b">L2CAP_CMD_CONNECTION_RESPONSE</a></div><div class="ttdeci">#define L2CAP_CMD_CONNECTION_RESPONSE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00165">BTD.h:165</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a8151b1fe5d940a5a7a34f43a8b8ce434"><div class="ttname"><a href="_b_t_d_8h.html#a8151b1fe5d940a5a7a34f43a8b8ce434">L2CAP_CMD_CONFIG_RESPONSE</a></div><div class="ttdeci">#define L2CAP_CMD_CONFIG_RESPONSE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00167">BTD.h:167</a></div></div>
<div class="ttc" id="class_bluetooth_service_html_a67b1db67c05d0bbdcd9c992135455437"><div class="ttname"><a href="class_bluetooth_service.html#a67b1db67c05d0bbdcd9c992135455437">BluetoothService::hci_handle</a></div><div class="ttdeci">uint16_t hci_handle</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00609">BTD.h:609</a></div></div>
<div class="ttc" id="_b_t_h_i_d_8h_html_ae20db05997d6849ad3de3d7eb6145f93"><div class="ttname"><a href="_b_t_h_i_d_8h.html#ae20db05997d6849ad3de3d7eb6145f93">NUM_PARSERS</a></div><div class="ttdeci">#define NUM_PARSERS</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00026">BTHID.h:26</a></div></div>
<div class="ttc" id="_b_t_h_i_d_8h_html_a699c5d6eb13133dce9504391bc610f3e"><div class="ttname"><a href="_b_t_h_i_d_8h.html#a699c5d6eb13133dce9504391bc610f3e">KEYBOARD_PARSER_ID</a></div><div class="ttdeci">#define KEYBOARD_PARSER_ID</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00024">BTHID.h:24</a></div></div>
<div class="ttc" id="class_b_t_d_html_aad7d8ef46e60b48ff4aaabefb0b290e7"><div class="ttname"><a href="class_b_t_d.html#aad7d8ef46e60b48ff4aaabefb0b290e7">BTD::L2CAP_Command</a></div><div class="ttdeci">void L2CAP_Command(uint16_t handle, uint8_t *data, uint8_t nbytes, uint8_t channelLow=0x01, uint8_t channelHigh=0x00)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01190">BTD.cpp:1190</a></div></div>
<div class="ttc" id="class_b_t_d_html_a792ac4529b65235698ecf3d37982c05e"><div class="ttname"><a href="class_b_t_d.html#a792ac4529b65235698ecf3d37982c05e">BTD::l2cap_config_response</a></div><div class="ttdeci">void l2cap_config_response(uint16_t handle, uint8_t rxid, uint8_t *scid)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01265">BTD.cpp:1265</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a9960d0d5ae92fc92c70bbb84c2a5c0cc"><div class="ttname"><a href="_b_t_d_8h.html#a9960d0d5ae92fc92c70bbb84c2a5c0cc">PENDING</a></div><div class="ttdeci">#define PENDING</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00176">BTD.h:176</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_aad823543553cc7500ac49d7479eb858f"><div class="ttname"><a href="_b_t_d_8h.html#aad823543553cc7500ac49d7479eb858f">L2CAP_FLAG_INTERRUPT_CONNECTED</a></div><div class="ttdeci">#define L2CAP_FLAG_INTERRUPT_CONNECTED</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00144">BTD.h:144</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a5f035450f226204f021e69ad1faa2e3a"><div class="ttname"><a href="_b_t_d_8h.html#a5f035450f226204f021e69ad1faa2e3a">l2cap_set_flag</a></div><div class="ttdeci">#define l2cap_set_flag(flag)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00161">BTD.h:161</a></div></div>
<div class="ttc" id="class_b_t_d_html_ab646a59311344966f139bb3b78f30233"><div class="ttname"><a href="class_b_t_d.html#ab646a59311344966f139bb3b78f30233">BTD::l2cap_config_request</a></div><div class="ttdeci">void l2cap_config_request(uint16_t handle, uint8_t rxid, uint8_t *dcid)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01248">BTD.cpp:1248</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a0c444d5d06ec604820d426556c2f38d7"><div class="ttname"><a href="_b_t_d_8h.html#a0c444d5d06ec604820d426556c2f38d7">L2CAP_FLAG_CONFIG_CONTROL_SUCCESS</a></div><div class="ttdeci">#define L2CAP_FLAG_CONFIG_CONTROL_SUCCESS</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00137">BTD.h:137</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_ac4bae0c65fd00ed849cb226302d19c85"><div class="ttname"><a href="_b_t_d_8h.html#ac4bae0c65fd00ed849cb226302d19c85">L2CAP_CMD_CONNECTION_REQUEST</a></div><div class="ttdeci">#define L2CAP_CMD_CONNECTION_REQUEST</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00166">BTD.h:166</a></div></div>
<div class="ttc" id="class_bluetooth_service_html_a78a1a893ec9c2db32e42bc2271c4a4f2"><div class="ttname"><a href="class_bluetooth_service.html#a78a1a893ec9c2db32e42bc2271c4a4f2">BluetoothService::l2cap_event_flag</a></div><div class="ttdeci">uint32_t l2cap_event_flag</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00612">BTD.h:612</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_a9c3d1a1c2420a7f7d6d9f8a75a4a5a88"><div class="ttname"><a href="class_b_t_h_i_d.html#a9c3d1a1c2420a7f7d6d9f8a75a4a5a88">BTHID::onInit</a></div><div class="ttdeci">void onInit()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00107">BTHID.h:107</a></div></div>
<div class="ttc" id="class_b_t_d_html_aad7d8ef46e60b48ff4aaabefb0b290e7"><div class="ttname"><a href="class_b_t_d.html#aad7d8ef46e60b48ff4aaabefb0b290e7">BTD::L2CAP_Command</a></div><div class="ttdeci">void L2CAP_Command(uint16_t handle, uint8_t *data, uint8_t nbytes, uint8_t channelLow=0x01, uint8_t channelHigh=0x00)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01198">BTD.cpp:1198</a></div></div>
<div class="ttc" id="class_b_t_d_html_a792ac4529b65235698ecf3d37982c05e"><div class="ttname"><a href="class_b_t_d.html#a792ac4529b65235698ecf3d37982c05e">BTD::l2cap_config_response</a></div><div class="ttdeci">void l2cap_config_response(uint16_t handle, uint8_t rxid, uint8_t *scid)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01273">BTD.cpp:1273</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a9960d0d5ae92fc92c70bbb84c2a5c0cc"><div class="ttname"><a href="_b_t_d_8h.html#a9960d0d5ae92fc92c70bbb84c2a5c0cc">PENDING</a></div><div class="ttdeci">#define PENDING</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00174">BTD.h:174</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_aad823543553cc7500ac49d7479eb858f"><div class="ttname"><a href="_b_t_d_8h.html#aad823543553cc7500ac49d7479eb858f">L2CAP_FLAG_INTERRUPT_CONNECTED</a></div><div class="ttdeci">#define L2CAP_FLAG_INTERRUPT_CONNECTED</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00142">BTD.h:142</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a5f035450f226204f021e69ad1faa2e3a"><div class="ttname"><a href="_b_t_d_8h.html#a5f035450f226204f021e69ad1faa2e3a">l2cap_set_flag</a></div><div class="ttdeci">#define l2cap_set_flag(flag)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00159">BTD.h:159</a></div></div>
<div class="ttc" id="class_b_t_d_html_ab646a59311344966f139bb3b78f30233"><div class="ttname"><a href="class_b_t_d.html#ab646a59311344966f139bb3b78f30233">BTD::l2cap_config_request</a></div><div class="ttdeci">void l2cap_config_request(uint16_t handle, uint8_t rxid, uint8_t *dcid)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01256">BTD.cpp:1256</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a0c444d5d06ec604820d426556c2f38d7"><div class="ttname"><a href="_b_t_d_8h.html#a0c444d5d06ec604820d426556c2f38d7">L2CAP_FLAG_CONFIG_CONTROL_SUCCESS</a></div><div class="ttdeci">#define L2CAP_FLAG_CONFIG_CONTROL_SUCCESS</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00135">BTD.h:135</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_ac4bae0c65fd00ed849cb226302d19c85"><div class="ttname"><a href="_b_t_d_8h.html#ac4bae0c65fd00ed849cb226302d19c85">L2CAP_CMD_CONNECTION_REQUEST</a></div><div class="ttdeci">#define L2CAP_CMD_CONNECTION_REQUEST</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00164">BTD.h:164</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_a5ee874513852b83d6a04b991ab892f54"><div class="ttname"><a href="class_b_t_h_i_d.html#a5ee874513852b83d6a04b991ab892f54">BTHID::BTHID</a></div><div class="ttdeci">BTHID(BTD *p, bool pair=false, const char *pin=&quot;0000&quot;)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8cpp_source.html#l00023">BTHID.cpp:23</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_af0b913a7e9e54b1f6ab95d82bd36f954"><div class="ttname"><a href="_b_t_d_8h.html#af0b913a7e9e54b1f6ab95d82bd36f954">L2CAP_INTERRUPT_CONNECT_REQUEST</a></div><div class="ttdeci">#define L2CAP_INTERRUPT_CONNECT_REQUEST</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00114">BTD.h:114</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_afb19720b65cda69d910416c7a689dd45"><div class="ttname"><a href="class_b_t_h_i_d.html#afb19720b65cda69d910416c7a689dd45">BTHID::pair</a></div><div class="ttdeci">void pair(void)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00095">BTHID.h:95</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_ab569b2085ad29f41d1da9c0ed352bd65"><div class="ttname"><a href="_b_t_d_8h.html#ab569b2085ad29f41d1da9c0ed352bd65">L2CAP_INTERRUPT_DISCONNECT</a></div><div class="ttdeci">#define L2CAP_INTERRUPT_DISCONNECT</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00116">BTD.h:116</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a6ffcd72787c86f248192eb06a3fe18cb"><div class="ttname"><a href="_b_t_d_8h.html#a6ffcd72787c86f248192eb06a3fe18cb">L2CAP_CMD_COMMAND_REJECT</a></div><div class="ttdeci">#define L2CAP_CMD_COMMAND_REJECT</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00165">BTD.h:165</a></div></div>
<div class="ttc" id="class_bluetooth_service_html_a2a3674a4bb5d409840995eabe07049bd"><div class="ttname"><a href="class_bluetooth_service.html#a2a3674a4bb5d409840995eabe07049bd">BluetoothService::checkHciHandle</a></div><div class="ttdeci">bool checkHciHandle(uint8_t *buf, uint16_t handle)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00598">BTD.h:598</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_af0b913a7e9e54b1f6ab95d82bd36f954"><div class="ttname"><a href="_b_t_d_8h.html#af0b913a7e9e54b1f6ab95d82bd36f954">L2CAP_INTERRUPT_CONNECT_REQUEST</a></div><div class="ttdeci">#define L2CAP_INTERRUPT_CONNECT_REQUEST</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00112">BTD.h:112</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_afb19720b65cda69d910416c7a689dd45"><div class="ttname"><a href="class_b_t_h_i_d.html#afb19720b65cda69d910416c7a689dd45">BTHID::pair</a></div><div class="ttdeci">void pair(void)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00086">BTHID.h:86</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_ab569b2085ad29f41d1da9c0ed352bd65"><div class="ttname"><a href="_b_t_d_8h.html#ab569b2085ad29f41d1da9c0ed352bd65">L2CAP_INTERRUPT_DISCONNECT</a></div><div class="ttdeci">#define L2CAP_INTERRUPT_DISCONNECT</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00114">BTD.h:114</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a6ffcd72787c86f248192eb06a3fe18cb"><div class="ttname"><a href="_b_t_d_8h.html#a6ffcd72787c86f248192eb06a3fe18cb">L2CAP_CMD_COMMAND_REJECT</a></div><div class="ttdeci">#define L2CAP_CMD_COMMAND_REJECT</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00163">BTD.h:163</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.7
</a> 1.8.9.1
</small></address>
</body>
</html>

View file

@ -3,15 +3,16 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<meta name="generator" content="Doxygen 1.8.9.1"/>
<title>USB Host Shield 2.0: BTHID.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="imageStyle.css" rel="stylesheet" type="text/css"/>
@ -31,7 +32,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.7 -->
<!-- Generated by Doxygen 1.8.9.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -70,7 +71,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
@ -99,7 +100,7 @@ Include dependency graph for BTHID.h:</div>
<div class="dyncontent">
<div class="center"><img src="_b_t_h_i_d_8h__incl.png" border="0" usemap="#_b_t_h_i_d_8h" alt=""/></div>
<map name="_b_t_h_i_d_8h" id="_b_t_h_i_d_8h">
<area shape="rect" id="node2" href="_b_t_d_8h.html" title="BTD.h" alt="" coords="5,152,64,177"/><area shape="rect" id="node4" href="hidboot_8h.html" title="hidboot.h" alt="" coords="74,79,150,104"/><area shape="rect" id="node3" href="_usb_8h.html" title="Usb.h" alt="" coords="57,299,114,324"/><area shape="rect" id="node5" href="hid_8h.html" title="hid.h" alt="" coords="88,152,139,177"/><area shape="rect" id="node6" href="hidusagestr_8h.html" title="hidusagestr.h" alt="" coords="123,225,224,251"/></map>
<area shape="rect" id="node2" href="_b_t_d_8h.html" title="BTD.h" alt="" coords="5,79,64,104"/><area shape="rect" id="node6" href="hidboot_8h.html" title="hidboot.h" alt="" coords="89,79,165,104"/><area shape="rect" id="node3" href="_usb_8h.html" title="Usb.h" alt="" coords="57,299,114,324"/><area shape="rect" id="node4" href="hid_8h.html" title="hid.h" alt="" coords="87,152,137,177"/><area shape="rect" id="node5" href="hidusagestr_8h.html" title="hidusagestr.h" alt="" coords="123,225,224,251"/></map>
</div>
</div><div class="textblock"><div class="dynheader">
This graph shows which files directly or indirectly include this file:</div>
@ -173,7 +174,7 @@ Macros</h2></td></tr>
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.7
</a> 1.8.9.1
</small></address>
</body>
</html>

View file

@ -1 +1 @@
98e640defd09cdb6bea449a9af48374c
0205aeed5db75f7b218ba6ecd920ddcd

View file

@ -1,7 +1,7 @@
<map id="BTHID.h" name="BTHID.h">
<area shape="rect" id="node2" href="$_b_t_d_8h.html" title="BTD.h" alt="" coords="5,152,64,177"/>
<area shape="rect" id="node4" href="$hidboot_8h.html" title="hidboot.h" alt="" coords="74,79,150,104"/>
<area shape="rect" id="node2" href="$_b_t_d_8h.html" title="BTD.h" alt="" coords="5,79,64,104"/>
<area shape="rect" id="node6" href="$hidboot_8h.html" title="hidboot.h" alt="" coords="89,79,165,104"/>
<area shape="rect" id="node3" href="$_usb_8h.html" title="Usb.h" alt="" coords="57,299,114,324"/>
<area shape="rect" id="node5" href="$hid_8h.html" title="hid.h" alt="" coords="88,152,139,177"/>
<area shape="rect" id="node6" href="$hidusagestr_8h.html" title="hidusagestr.h" alt="" coords="123,225,224,251"/>
<area shape="rect" id="node4" href="$hid_8h.html" title="hid.h" alt="" coords="87,152,137,177"/>
<area shape="rect" id="node5" href="$hidusagestr_8h.html" title="hidusagestr.h" alt="" coords="123,225,224,251"/>
</map>

View file

@ -1 +1 @@
50c98864be761896492416679dad01a4
28e181610b904ff2ed75411a23593963

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View file

@ -3,15 +3,16 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<meta name="generator" content="Doxygen 1.8.9.1"/>
<title>USB Host Shield 2.0: BTHID.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="imageStyle.css" rel="stylesheet" type="text/css"/>
@ -31,7 +32,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.7 -->
<!-- Generated by Doxygen 1.8.9.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -70,7 +71,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
@ -120,116 +121,104 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a5ee874513852b83d6a04b991ab892f54">BTHID</a>(<a class="code" href="class_b_t_d.html">BTD</a> *p, <span class="keywordtype">bool</span> <a class="code" href="class_b_t_h_i_d.html#afb19720b65cda69d910416c7a689dd45">pair</a> = <span class="keyword">false</span>, <span class="keyword">const</span> <span class="keywordtype">char</span> *pin = <span class="stringliteral">&quot;0000&quot;</span>);</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_b_t_h_i_d.html#a84eb1b910027f2d78741f65225c14e54">ACLData</a>(uint8_t* <a class="code" href="class_b_t_h_i_d.html#a84eb1b910027f2d78741f65225c14e54">ACLData</a>);</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_b_t_h_i_d.html#a938eab04e406a29cc9324dad3ccb52cc">Run</a>();</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_b_t_h_i_d.html#af4c58b81414a037910dd6fb78f97b96e">Reset</a>();</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_b_t_h_i_d.html#ae1ee62d7b9951ec7960f122c9fc2d2d0">disconnect</a>();</div>
<div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#ade1924514bc9c9cd71f54a1f37529575"> 58</a></span>&#160; <a class="code" href="class_h_i_d_report_parser.html">HIDReportParser</a> *<a class="code" href="class_b_t_h_i_d.html#ade1924514bc9c9cd71f54a1f37529575">GetReportParser</a>(uint8_t <span class="keywordtype">id</span>) {</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordflow">if</span> (<span class="keywordtype">id</span> &gt;= <a class="code" href="_b_t_h_i_d_8h.html#ae20db05997d6849ad3de3d7eb6145f93">NUM_PARSERS</a>)</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">return</span> NULL;</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordflow">return</span> pRptParser[id];</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; };</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div>
<div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#a0e903f0b5040f3561e5de6c4431027b1"> 70</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_b_t_h_i_d.html#a0e903f0b5040f3561e5de6c4431027b1">SetReportParser</a>(uint8_t <span class="keywordtype">id</span>, <a class="code" href="class_h_i_d_report_parser.html">HIDReportParser</a> *prs) {</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">if</span> (<span class="keywordtype">id</span> &gt;= <a class="code" href="_b_t_h_i_d_8h.html#ae20db05997d6849ad3de3d7eb6145f93">NUM_PARSERS</a>)</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; pRptParser[id] = prs;</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; };</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div>
<div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#afceaafc89581441da40b141170b98595"> 81</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_h_i_d.html#afceaafc89581441da40b141170b98595">setProtocolMode</a>(uint8_t mode) {</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; protocolMode = mode;</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; };</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_h_i_d.html#ae1ee62d7b9951ec7960f122c9fc2d2d0">disconnect</a>();</div>
<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#ade1924514bc9c9cd71f54a1f37529575"> 49</a></span>&#160; <a class="code" href="class_h_i_d_report_parser.html">HIDReportParser</a> *<a class="code" href="class_b_t_h_i_d.html#ade1924514bc9c9cd71f54a1f37529575">GetReportParser</a>(uint8_t <span class="keywordtype">id</span>) {</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordflow">if</span> (<span class="keywordtype">id</span> &gt;= <a class="code" href="_b_t_h_i_d_8h.html#ae20db05997d6849ad3de3d7eb6145f93">NUM_PARSERS</a>)</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">return</span> NULL;</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">return</span> pRptParser[id];</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; };</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div>
<div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#a0e903f0b5040f3561e5de6c4431027b1"> 61</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_b_t_h_i_d.html#a0e903f0b5040f3561e5de6c4431027b1">SetReportParser</a>(uint8_t <span class="keywordtype">id</span>, <a class="code" href="class_h_i_d_report_parser.html">HIDReportParser</a> *prs) {</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordflow">if</span> (<span class="keywordtype">id</span> &gt;= <a class="code" href="_b_t_h_i_d_8h.html#ae20db05997d6849ad3de3d7eb6145f93">NUM_PARSERS</a>)</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; pRptParser[id] = prs;</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; };</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div>
<div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#afceaafc89581441da40b141170b98595"> 72</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_h_i_d.html#afceaafc89581441da40b141170b98595">setProtocolMode</a>(uint8_t mode) {</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; protocolMode = mode;</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; };</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_h_i_d.html#ae222e33ac617620c4cab5c1b23b89310">setLeds</a>(uint8_t data);</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div>
<div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#ab3a81823a1d8805383146a6baad6ccc4"> 83</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_b_t_h_i_d.html#ab3a81823a1d8805383146a6baad6ccc4">connected</a>;</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_h_i_d.html#ae222e33ac617620c4cab5c1b23b89310">setLeds</a>(uint8_t data);</div>
<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#afb19720b65cda69d910416c7a689dd45"> 86</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_h_i_d.html#afb19720b65cda69d910416c7a689dd45">pair</a>(<span class="keywordtype">void</span>) {</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_bluetooth_service.html#aa67faf901f78a55a202945a20f6d778a">pBtd</a>)</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <a class="code" href="class_bluetooth_service.html#aa67faf901f78a55a202945a20f6d778a">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#a0b59db80825ffd5974e0d2c4a046b328">pairWithHID</a>();</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; };</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div>
<div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#ab3a81823a1d8805383146a6baad6ccc4"> 92</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_b_t_h_i_d.html#ab3a81823a1d8805383146a6baad6ccc4">connected</a>;</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div>
<div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#afb19720b65cda69d910416c7a689dd45"> 95</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_h_i_d.html#afb19720b65cda69d910416c7a689dd45">pair</a>(<span class="keywordtype">void</span>) {</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>)</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#a0b59db80825ffd5974e0d2c4a046b328">pairWithHID</a>();</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; };</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div>
<div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#ac2d67e173774e344bca86fbd0ed5a10c"> 104</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_h_i_d.html#ac2d67e173774e344bca86fbd0ed5a10c">attachOnInit</a>(<span class="keywordtype">void</span> (*funcOnInit)(<span class="keywordtype">void</span>)) {</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; pFuncOnInit = funcOnInit;</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; };</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="keyword">protected</span>:</div>
<div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#a4de4a1efd32000a0cf5a884456e52c7d"> 115</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_b_t_h_i_d.html#a4de4a1efd32000a0cf5a884456e52c7d">ParseBTHIDData</a>(uint8_t len, uint8_t *buf) {</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; };</div>
<div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#a6d92c1771d643172094fcd084f418421"> 119</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_b_t_h_i_d.html#a6d92c1771d643172094fcd084f418421">OnInitBTHID</a>() {</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; };</div>
<div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#acc22bf5baaa096fe09b72c812c1134f0"> 123</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_b_t_h_i_d.html#acc22bf5baaa096fe09b72c812c1134f0">ResetBTHID</a>() {</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; }</div>
<div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d"> 129</a></span>&#160; <a class="code" href="class_b_t_d.html">BTD</a> *<a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>;</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div>
<div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#a8e4888359cda09bc7123d971bb9d8dcf"> 132</a></span>&#160; uint16_t <a class="code" href="class_b_t_h_i_d.html#a8e4888359cda09bc7123d971bb9d8dcf">hci_handle</a>;</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div>
<div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#acf6933a4988ed9f48c6e08cc7c9b906c"> 136</a></span>&#160; uint8_t <a class="code" href="class_b_t_h_i_d.html#acf6933a4988ed9f48c6e08cc7c9b906c">control_scid</a>[2];</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div>
<div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#a34a91f92ea32033403c2b37af92535dc"> 139</a></span>&#160; uint8_t <a class="code" href="class_b_t_h_i_d.html#a34a91f92ea32033403c2b37af92535dc">interrupt_scid</a>[2];</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <a class="code" href="class_h_i_d_report_parser.html">HIDReportParser</a> *pRptParser[<a class="code" href="_b_t_h_i_d_8h.html#ae20db05997d6849ad3de3d7eb6145f93">NUM_PARSERS</a>]; <span class="comment">// Pointer to HIDReportParsers.</span></div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordtype">void</span> setProtocol();</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; uint8_t protocolMode;</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="keyword">protected</span>:</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_h_i_d.html#a84eb1b910027f2d78741f65225c14e54">ACLData</a>(uint8_t* <a class="code" href="class_b_t_h_i_d.html#a84eb1b910027f2d78741f65225c14e54">ACLData</a>);</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_h_i_d.html#a938eab04e406a29cc9324dad3ccb52cc">Run</a>();</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_h_i_d.html#af4c58b81414a037910dd6fb78f97b96e">Reset</a>();</div>
<div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#a9c3d1a1c2420a7f7d6d9f8a75a4a5a88"> 107</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_h_i_d.html#a9c3d1a1c2420a7f7d6d9f8a75a4a5a88">onInit</a>() {</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_bluetooth_service.html#a321393d44ce59213fa1c7498c247d5ff">pFuncOnInit</a>)</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <a class="code" href="class_bluetooth_service.html#a321393d44ce59213fa1c7498c247d5ff">pFuncOnInit</a>(); <span class="comment">// Call the user function</span></div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a6d92c1771d643172094fcd084f418421">OnInitBTHID</a>();</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; };</div>
<div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#a4de4a1efd32000a0cf5a884456e52c7d"> 120</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_b_t_h_i_d.html#a4de4a1efd32000a0cf5a884456e52c7d">ParseBTHIDData</a>(uint8_t len, uint8_t *buf) {</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; };</div>
<div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#a6d92c1771d643172094fcd084f418421"> 124</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_b_t_h_i_d.html#a6d92c1771d643172094fcd084f418421">OnInitBTHID</a>() {</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; };</div>
<div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#acc22bf5baaa096fe09b72c812c1134f0"> 128</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_b_t_h_i_d.html#acc22bf5baaa096fe09b72c812c1134f0">ResetBTHID</a>() {</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; }</div>
<div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#acf6933a4988ed9f48c6e08cc7c9b906c"> 134</a></span>&#160; uint8_t <a class="code" href="class_b_t_h_i_d.html#acf6933a4988ed9f48c6e08cc7c9b906c">control_scid</a>[2];</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div>
<div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#a34a91f92ea32033403c2b37af92535dc"> 137</a></span>&#160; uint8_t <a class="code" href="class_b_t_h_i_d.html#a34a91f92ea32033403c2b37af92535dc">interrupt_scid</a>[2];</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <a class="code" href="class_h_i_d_report_parser.html">HIDReportParser</a> *pRptParser[<a class="code" href="_b_t_h_i_d_8h.html#ae20db05997d6849ad3de3d7eb6145f93">NUM_PARSERS</a>]; <span class="comment">// Pointer to HIDReportParsers.</span></div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordtype">void</span> setProtocol();</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; uint8_t protocolMode;</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordtype">void</span> L2CAP_task(); <span class="comment">// L2CAP state machine</span></div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordtype">void</span> onInit() {</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">if</span>(pFuncOnInit)</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; pFuncOnInit(); <span class="comment">// Call the user function</span></div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a6d92c1771d643172094fcd084f418421">OnInitBTHID</a>();</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; };</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; void (*pFuncOnInit)(void); <span class="comment">// Pointer to function called in onInit()</span></div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordtype">void</span> L2CAP_task(); <span class="comment">// L2CAP state machine</span></div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordtype">bool</span> activeConnection; <span class="comment">// Used to indicate if it already has established a connection</span></div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="comment">/* Variables used for L2CAP communication */</span></div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; uint8_t control_dcid[2]; <span class="comment">// L2CAP device CID for HID_Control - Always 0x0070</span></div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; uint8_t interrupt_dcid[2]; <span class="comment">// L2CAP device CID for HID_Interrupt - Always 0x0071</span></div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; uint8_t identifier; <span class="comment">// Identifier for connection</span></div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; uint8_t l2cap_state;</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; uint32_t l2cap_event_flag; <span class="comment">// l2cap flags of received Bluetooth events</span></div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;};</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordtype">bool</span> activeConnection; <span class="comment">// Used to indicate if it already has established a connection</span></div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="comment">/* Variables used for L2CAP communication */</span></div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; uint8_t control_dcid[2]; <span class="comment">// L2CAP device CID for HID_Control - Always 0x0070</span></div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; uint8_t interrupt_dcid[2]; <span class="comment">// L2CAP device CID for HID_Interrupt - Always 0x0071</span></div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; uint8_t l2cap_state;</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;};</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="ttc" id="hidboot_8h_html"><div class="ttname"><a href="hidboot_8h.html">hidboot.h</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_a6d92c1771d643172094fcd084f418421"><div class="ttname"><a href="class_b_t_h_i_d.html#a6d92c1771d643172094fcd084f418421">BTHID::OnInitBTHID</a></div><div class="ttdeci">virtual void OnInitBTHID()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00119">BTHID.h:119</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_a84eb1b910027f2d78741f65225c14e54"><div class="ttname"><a href="class_b_t_h_i_d.html#a84eb1b910027f2d78741f65225c14e54">BTHID::ACLData</a></div><div class="ttdeci">virtual void ACLData(uint8_t *ACLData)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8cpp_source.html#l00059">BTHID.cpp:59</a></div></div>
<div class="ttc" id="class_b_t_d_html"><div class="ttname"><a href="class_b_t_d.html">BTD</a></div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00230">BTD.h:230</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_a34a91f92ea32033403c2b37af92535dc"><div class="ttname"><a href="class_b_t_h_i_d.html#a34a91f92ea32033403c2b37af92535dc">BTHID::interrupt_scid</a></div><div class="ttdeci">uint8_t interrupt_scid[2]</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00139">BTHID.h:139</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_ab3a81823a1d8805383146a6baad6ccc4"><div class="ttname"><a href="class_b_t_h_i_d.html#ab3a81823a1d8805383146a6baad6ccc4">BTHID::connected</a></div><div class="ttdeci">bool connected</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00092">BTHID.h:92</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_a938eab04e406a29cc9324dad3ccb52cc"><div class="ttname"><a href="class_b_t_h_i_d.html#a938eab04e406a29cc9324dad3ccb52cc">BTHID::Run</a></div><div class="ttdeci">virtual void Run()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8cpp_source.html#l00347">BTHID.cpp:347</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_acc22bf5baaa096fe09b72c812c1134f0"><div class="ttname"><a href="class_b_t_h_i_d.html#acc22bf5baaa096fe09b72c812c1134f0">BTHID::ResetBTHID</a></div><div class="ttdeci">virtual void ResetBTHID()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00123">BTHID.h:123</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_af4c58b81414a037910dd6fb78f97b96e"><div class="ttname"><a href="class_b_t_h_i_d.html#af4c58b81414a037910dd6fb78f97b96e">BTHID::Reset</a></div><div class="ttdeci">virtual void Reset()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8cpp_source.html#l00044">BTHID.cpp:44</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_acf6933a4988ed9f48c6e08cc7c9b906c"><div class="ttname"><a href="class_b_t_h_i_d.html#acf6933a4988ed9f48c6e08cc7c9b906c">BTHID::control_scid</a></div><div class="ttdeci">uint8_t control_scid[2]</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00136">BTHID.h:136</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_ac2d67e173774e344bca86fbd0ed5a10c"><div class="ttname"><a href="class_b_t_h_i_d.html#ac2d67e173774e344bca86fbd0ed5a10c">BTHID::attachOnInit</a></div><div class="ttdeci">void attachOnInit(void(*funcOnInit)(void))</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00104">BTHID.h:104</a></div></div>
<div class="ttc" id="class_b_t_d_html_a0b59db80825ffd5974e0d2c4a046b328"><div class="ttname"><a href="class_b_t_d.html#a0b59db80825ffd5974e0d2c4a046b328">BTD::pairWithHID</a></div><div class="ttdeci">void pairWithHID()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00516">BTD.h:516</a></div></div>
<div class="ttc" id="class_bluetooth_service_html"><div class="ttname"><a href="class_bluetooth_service.html">BluetoothService</a></div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00211">BTD.h:211</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_ae1ee62d7b9951ec7960f122c9fc2d2d0"><div class="ttname"><a href="class_b_t_h_i_d.html#ae1ee62d7b9951ec7960f122c9fc2d2d0">BTHID::disconnect</a></div><div class="ttdeci">virtual void disconnect()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8cpp_source.html#l00052">BTHID.cpp:52</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_ade1924514bc9c9cd71f54a1f37529575"><div class="ttname"><a href="class_b_t_h_i_d.html#ade1924514bc9c9cd71f54a1f37529575">BTHID::GetReportParser</a></div><div class="ttdeci">HIDReportParser * GetReportParser(uint8_t id)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00058">BTHID.h:58</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_ae222e33ac617620c4cab5c1b23b89310"><div class="ttname"><a href="class_b_t_h_i_d.html#ae222e33ac617620c4cab5c1b23b89310">BTHID::setLeds</a></div><div class="ttdeci">void setLeds(uint8_t data)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8cpp_source.html#l00396">BTHID.cpp:396</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_a4de4a1efd32000a0cf5a884456e52c7d"><div class="ttname"><a href="class_b_t_h_i_d.html#a4de4a1efd32000a0cf5a884456e52c7d">BTHID::ParseBTHIDData</a></div><div class="ttdeci">virtual void ParseBTHIDData(uint8_t len, uint8_t *buf)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00115">BTHID.h:115</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_a02c37811a4a401618caf188e744e8e3d"><div class="ttname"><a href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">BTHID::pBtd</a></div><div class="ttdeci">BTD * pBtd</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00129">BTHID.h:129</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_a8e4888359cda09bc7123d971bb9d8dcf"><div class="ttname"><a href="class_b_t_h_i_d.html#a8e4888359cda09bc7123d971bb9d8dcf">BTHID::hci_handle</a></div><div class="ttdeci">uint16_t hci_handle</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00132">BTHID.h:132</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_a6d92c1771d643172094fcd084f418421"><div class="ttname"><a href="class_b_t_h_i_d.html#a6d92c1771d643172094fcd084f418421">BTHID::OnInitBTHID</a></div><div class="ttdeci">virtual void OnInitBTHID()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00124">BTHID.h:124</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_a84eb1b910027f2d78741f65225c14e54"><div class="ttname"><a href="class_b_t_h_i_d.html#a84eb1b910027f2d78741f65225c14e54">BTHID::ACLData</a></div><div class="ttdeci">void ACLData(uint8_t *ACLData)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8cpp_source.html#l00056">BTHID.cpp:56</a></div></div>
<div class="ttc" id="class_b_t_d_html"><div class="ttname"><a href="class_b_t_d.html">BTD</a></div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00198">BTD.h:198</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_a34a91f92ea32033403c2b37af92535dc"><div class="ttname"><a href="class_b_t_h_i_d.html#a34a91f92ea32033403c2b37af92535dc">BTHID::interrupt_scid</a></div><div class="ttdeci">uint8_t interrupt_scid[2]</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00137">BTHID.h:137</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_ab3a81823a1d8805383146a6baad6ccc4"><div class="ttname"><a href="class_b_t_h_i_d.html#ab3a81823a1d8805383146a6baad6ccc4">BTHID::connected</a></div><div class="ttdeci">bool connected</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00083">BTHID.h:83</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_a938eab04e406a29cc9324dad3ccb52cc"><div class="ttname"><a href="class_b_t_h_i_d.html#a938eab04e406a29cc9324dad3ccb52cc">BTHID::Run</a></div><div class="ttdeci">void Run()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8cpp_source.html#l00344">BTHID.cpp:344</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_acc22bf5baaa096fe09b72c812c1134f0"><div class="ttname"><a href="class_b_t_h_i_d.html#acc22bf5baaa096fe09b72c812c1134f0">BTHID::ResetBTHID</a></div><div class="ttdeci">virtual void ResetBTHID()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00128">BTHID.h:128</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_af4c58b81414a037910dd6fb78f97b96e"><div class="ttname"><a href="class_b_t_h_i_d.html#af4c58b81414a037910dd6fb78f97b96e">BTHID::Reset</a></div><div class="ttdeci">void Reset()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8cpp_source.html#l00041">BTHID.cpp:41</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_acf6933a4988ed9f48c6e08cc7c9b906c"><div class="ttname"><a href="class_b_t_h_i_d.html#acf6933a4988ed9f48c6e08cc7c9b906c">BTHID::control_scid</a></div><div class="ttdeci">uint8_t control_scid[2]</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00134">BTHID.h:134</a></div></div>
<div class="ttc" id="class_b_t_d_html_a0b59db80825ffd5974e0d2c4a046b328"><div class="ttname"><a href="class_b_t_d.html#a0b59db80825ffd5974e0d2c4a046b328">BTD::pairWithHID</a></div><div class="ttdeci">void pairWithHID()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00480">BTD.h:480</a></div></div>
<div class="ttc" id="class_bluetooth_service_html"><div class="ttname"><a href="class_bluetooth_service.html">BluetoothService</a></div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00563">BTD.h:563</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_ae1ee62d7b9951ec7960f122c9fc2d2d0"><div class="ttname"><a href="class_b_t_h_i_d.html#ae1ee62d7b9951ec7960f122c9fc2d2d0">BTHID::disconnect</a></div><div class="ttdeci">void disconnect()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8cpp_source.html#l00049">BTHID.cpp:49</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_ade1924514bc9c9cd71f54a1f37529575"><div class="ttname"><a href="class_b_t_h_i_d.html#ade1924514bc9c9cd71f54a1f37529575">BTHID::GetReportParser</a></div><div class="ttdeci">HIDReportParser * GetReportParser(uint8_t id)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00049">BTHID.h:49</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_ae222e33ac617620c4cab5c1b23b89310"><div class="ttname"><a href="class_b_t_h_i_d.html#ae222e33ac617620c4cab5c1b23b89310">BTHID::setLeds</a></div><div class="ttdeci">void setLeds(uint8_t data)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8cpp_source.html#l00393">BTHID.cpp:393</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_a4de4a1efd32000a0cf5a884456e52c7d"><div class="ttname"><a href="class_b_t_h_i_d.html#a4de4a1efd32000a0cf5a884456e52c7d">BTHID::ParseBTHIDData</a></div><div class="ttdeci">virtual void ParseBTHIDData(uint8_t len, uint8_t *buf)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00120">BTHID.h:120</a></div></div>
<div class="ttc" id="class_bluetooth_service_html_a321393d44ce59213fa1c7498c247d5ff"><div class="ttname"><a href="class_bluetooth_service.html#a321393d44ce59213fa1c7498c247d5ff">BluetoothService::pFuncOnInit</a></div><div class="ttdeci">void(* pFuncOnInit)(void)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00603">BTD.h:603</a></div></div>
<div class="ttc" id="class_bluetooth_service_html_aa67faf901f78a55a202945a20f6d778a"><div class="ttname"><a href="class_bluetooth_service.html#aa67faf901f78a55a202945a20f6d778a">BluetoothService::pBtd</a></div><div class="ttdeci">BTD * pBtd</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00606">BTD.h:606</a></div></div>
<div class="ttc" id="_b_t_h_i_d_8h_html_ae20db05997d6849ad3de3d7eb6145f93"><div class="ttname"><a href="_b_t_h_i_d_8h.html#ae20db05997d6849ad3de3d7eb6145f93">NUM_PARSERS</a></div><div class="ttdeci">#define NUM_PARSERS</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00026">BTHID.h:26</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_a9c3d1a1c2420a7f7d6d9f8a75a4a5a88"><div class="ttname"><a href="class_b_t_h_i_d.html#a9c3d1a1c2420a7f7d6d9f8a75a4a5a88">BTHID::onInit</a></div><div class="ttdeci">void onInit()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00107">BTHID.h:107</a></div></div>
<div class="ttc" id="class_h_i_d_report_parser_html"><div class="ttname"><a href="class_h_i_d_report_parser.html">HIDReportParser</a></div><div class="ttdef"><b>Definition:</b> <a href="hid_8h_source.html#l00138">hid.h:138</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html"><div class="ttname"><a href="class_b_t_h_i_d.html">BTHID</a></div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00029">BTHID.h:29</a></div></div>
<div class="ttc" id="_b_t_d_8h_html"><div class="ttname"><a href="_b_t_d_8h.html">BTD.h</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_afceaafc89581441da40b141170b98595"><div class="ttname"><a href="class_b_t_h_i_d.html#afceaafc89581441da40b141170b98595">BTHID::setProtocolMode</a></div><div class="ttdeci">void setProtocolMode(uint8_t mode)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00081">BTHID.h:81</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_afceaafc89581441da40b141170b98595"><div class="ttname"><a href="class_b_t_h_i_d.html#afceaafc89581441da40b141170b98595">BTHID::setProtocolMode</a></div><div class="ttdeci">void setProtocolMode(uint8_t mode)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00072">BTHID.h:72</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_a5ee874513852b83d6a04b991ab892f54"><div class="ttname"><a href="class_b_t_h_i_d.html#a5ee874513852b83d6a04b991ab892f54">BTHID::BTHID</a></div><div class="ttdeci">BTHID(BTD *p, bool pair=false, const char *pin=&quot;0000&quot;)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8cpp_source.html#l00023">BTHID.cpp:23</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_afb19720b65cda69d910416c7a689dd45"><div class="ttname"><a href="class_b_t_h_i_d.html#afb19720b65cda69d910416c7a689dd45">BTHID::pair</a></div><div class="ttdeci">void pair(void)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00095">BTHID.h:95</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_a0e903f0b5040f3561e5de6c4431027b1"><div class="ttname"><a href="class_b_t_h_i_d.html#a0e903f0b5040f3561e5de6c4431027b1">BTHID::SetReportParser</a></div><div class="ttdeci">bool SetReportParser(uint8_t id, HIDReportParser *prs)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00070">BTHID.h:70</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_afb19720b65cda69d910416c7a689dd45"><div class="ttname"><a href="class_b_t_h_i_d.html#afb19720b65cda69d910416c7a689dd45">BTHID::pair</a></div><div class="ttdeci">void pair(void)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00086">BTHID.h:86</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_a0e903f0b5040f3561e5de6c4431027b1"><div class="ttname"><a href="class_b_t_h_i_d.html#a0e903f0b5040f3561e5de6c4431027b1">BTHID::SetReportParser</a></div><div class="ttdeci">bool SetReportParser(uint8_t id, HIDReportParser *prs)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00061">BTHID.h:61</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.7
</a> 1.8.9.1
</small></address>
</body>
</html>

View file

@ -3,15 +3,16 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<meta name="generator" content="Doxygen 1.8.9.1"/>
<title>USB Host Shield 2.0: PS3BT.cpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="imageStyle.css" rel="stylesheet" type="text/css"/>
@ -31,7 +32,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.7 -->
<!-- Generated by Doxygen 1.8.9.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -70,7 +71,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
@ -95,7 +96,7 @@ Include dependency graph for PS3BT.cpp:</div>
<div class="dyncontent">
<div class="center"><img src="_p_s3_b_t_8cpp__incl.png" border="0" usemap="#_p_s3_b_t_8cpp" alt=""/></div>
<map name="_p_s3_b_t_8cpp" id="_p_s3_b_t_8cpp">
<area shape="rect" id="node2" href="_p_s3_b_t_8h.html" title="PS3BT.h" alt="" coords="54,79,127,104"/><area shape="rect" id="node3" href="_b_t_d_8h.html" title="BTD.h" alt="" coords="7,152,66,177"/><area shape="rect" id="node5" href="_p_s3_enums_8h.html" title="PS3Enums.h" alt="" coords="96,152,195,177"/><area shape="rect" id="node4" href="_usb_8h.html" title="Usb.h" alt="" coords="5,225,61,251"/><area shape="rect" id="node6" href="controller_enums_8h.html" title="controllerEnums.h" alt="" coords="85,225,214,251"/></map>
<area shape="rect" id="node2" href="_p_s3_b_t_8h.html" title="PS3BT.h" alt="" coords="65,79,138,104"/><area shape="rect" id="node3" href="_b_t_d_8h.html" title="BTD.h" alt="" coords="18,152,77,177"/><area shape="rect" id="node7" href="_p_s3_enums_8h.html" title="PS3Enums.h" alt="" coords="106,152,205,177"/><area shape="rect" id="node4" href="_usb_8h.html" title="Usb.h" alt="" coords="8,372,64,397"/><area shape="rect" id="node5" href="hid_8h.html" title="hid.h" alt="" coords="23,225,73,251"/><area shape="rect" id="node6" href="hidusagestr_8h.html" title="hidusagestr.h" alt="" coords="73,299,174,324"/><area shape="rect" id="node8" href="controller_enums_8h.html" title="controllerEnums.h" alt="" coords="97,225,226,251"/></map>
</div>
</div>
<p><a href="_p_s3_b_t_8cpp_source.html">Go to the source code of this file.</a></p>
@ -104,7 +105,7 @@ Include dependency graph for PS3BT.cpp:</div>
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.7
</a> 1.8.9.1
</small></address>
</body>
</html>

View file

@ -1,7 +1,9 @@
<map id="PS3BT.cpp" name="PS3BT.cpp">
<area shape="rect" id="node2" href="$_p_s3_b_t_8h.html" title="PS3BT.h" alt="" coords="54,79,127,104"/>
<area shape="rect" id="node3" href="$_b_t_d_8h.html" title="BTD.h" alt="" coords="7,152,66,177"/>
<area shape="rect" id="node5" href="$_p_s3_enums_8h.html" title="PS3Enums.h" alt="" coords="96,152,195,177"/>
<area shape="rect" id="node4" href="$_usb_8h.html" title="Usb.h" alt="" coords="5,225,61,251"/>
<area shape="rect" id="node6" href="$controller_enums_8h.html" title="controllerEnums.h" alt="" coords="85,225,214,251"/>
<area shape="rect" id="node2" href="$_p_s3_b_t_8h.html" title="PS3BT.h" alt="" coords="65,79,138,104"/>
<area shape="rect" id="node3" href="$_b_t_d_8h.html" title="BTD.h" alt="" coords="18,152,77,177"/>
<area shape="rect" id="node7" href="$_p_s3_enums_8h.html" title="PS3Enums.h" alt="" coords="106,152,205,177"/>
<area shape="rect" id="node4" href="$_usb_8h.html" title="Usb.h" alt="" coords="8,372,64,397"/>
<area shape="rect" id="node5" href="$hid_8h.html" title="hid.h" alt="" coords="23,225,73,251"/>
<area shape="rect" id="node6" href="$hidusagestr_8h.html" title="hidusagestr.h" alt="" coords="73,299,174,324"/>
<area shape="rect" id="node8" href="$controller_enums_8h.html" title="controllerEnums.h" alt="" coords="97,225,226,251"/>
</map>

View file

@ -1 +1 @@
2a26709935401ef53e5fb70ac8d80eef
4aca24efbdc1291f07e6257ad7bd19ca

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 21 KiB

File diff suppressed because it is too large Load diff

View file

@ -3,15 +3,16 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<meta name="generator" content="Doxygen 1.8.9.1"/>
<title>USB Host Shield 2.0: PS3BT.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="imageStyle.css" rel="stylesheet" type="text/css"/>
@ -31,7 +32,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.7 -->
<!-- Generated by Doxygen 1.8.9.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -70,7 +71,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
@ -99,7 +100,7 @@ Include dependency graph for PS3BT.h:</div>
<div class="dyncontent">
<div class="center"><img src="_p_s3_b_t_8h__incl.png" border="0" usemap="#_p_s3_b_t_8h" alt=""/></div>
<map name="_p_s3_b_t_8h" id="_p_s3_b_t_8h">
<area shape="rect" id="node2" href="_b_t_d_8h.html" title="BTD.h" alt="" coords="7,79,66,104"/><area shape="rect" id="node4" href="_p_s3_enums_8h.html" title="PS3Enums.h" alt="" coords="96,79,195,104"/><area shape="rect" id="node3" href="_usb_8h.html" title="Usb.h" alt="" coords="5,152,61,177"/><area shape="rect" id="node5" href="controller_enums_8h.html" title="controllerEnums.h" alt="" coords="85,152,214,177"/></map>
<area shape="rect" id="node2" href="_b_t_d_8h.html" title="BTD.h" alt="" coords="18,79,77,104"/><area shape="rect" id="node6" href="_p_s3_enums_8h.html" title="PS3Enums.h" alt="" coords="106,79,205,104"/><area shape="rect" id="node3" href="_usb_8h.html" title="Usb.h" alt="" coords="8,299,64,324"/><area shape="rect" id="node4" href="hid_8h.html" title="hid.h" alt="" coords="23,152,73,177"/><area shape="rect" id="node5" href="hidusagestr_8h.html" title="hidusagestr.h" alt="" coords="73,225,174,251"/><area shape="rect" id="node7" href="controller_enums_8h.html" title="controllerEnums.h" alt="" coords="97,152,226,177"/></map>
</div>
</div><div class="textblock"><div class="dynheader">
This graph shows which files directly or indirectly include this file:</div>
@ -141,7 +142,7 @@ Macros</h2></td></tr>
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.7
</a> 1.8.9.1
</small></address>
</body>
</html>

View file

@ -1 +1 @@
bb28c7be8b59850aa707116e8edbd78a
eba794dfcd5eea5cd385cf4d1f0cee96

View file

@ -1,6 +1,8 @@
<map id="PS3BT.h" name="PS3BT.h">
<area shape="rect" id="node2" href="$_b_t_d_8h.html" title="BTD.h" alt="" coords="7,79,66,104"/>
<area shape="rect" id="node4" href="$_p_s3_enums_8h.html" title="PS3Enums.h" alt="" coords="96,79,195,104"/>
<area shape="rect" id="node3" href="$_usb_8h.html" title="Usb.h" alt="" coords="5,152,61,177"/>
<area shape="rect" id="node5" href="$controller_enums_8h.html" title="controllerEnums.h" alt="" coords="85,152,214,177"/>
<area shape="rect" id="node2" href="$_b_t_d_8h.html" title="BTD.h" alt="" coords="18,79,77,104"/>
<area shape="rect" id="node6" href="$_p_s3_enums_8h.html" title="PS3Enums.h" alt="" coords="106,79,205,104"/>
<area shape="rect" id="node3" href="$_usb_8h.html" title="Usb.h" alt="" coords="8,299,64,324"/>
<area shape="rect" id="node4" href="$hid_8h.html" title="hid.h" alt="" coords="23,152,73,177"/>
<area shape="rect" id="node5" href="$hidusagestr_8h.html" title="hidusagestr.h" alt="" coords="73,225,174,251"/>
<area shape="rect" id="node7" href="$controller_enums_8h.html" title="controllerEnums.h" alt="" coords="97,152,226,177"/>
</map>

View file

@ -1 +1 @@
a835b66fa43df95b77c40211831fd028
22ecfc90e081038b1c871acb1a43b6d4

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.6 KiB

After

Width:  |  Height:  |  Size: 18 KiB

View file

@ -3,15 +3,16 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<meta name="generator" content="Doxygen 1.8.9.1"/>
<title>USB Host Shield 2.0: PS3BT.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="imageStyle.css" rel="stylesheet" type="text/css"/>
@ -31,7 +32,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.7 -->
<!-- Generated by Doxygen 1.8.9.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -70,7 +71,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
@ -116,148 +117,137 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div>
<div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="class_p_s3_b_t.html"> 32</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_p_s3_b_t.html">PS3BT</a> : <span class="keyword">public</span> <a class="code" href="class_bluetooth_service.html">BluetoothService</a> {</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <a class="code" href="class_p_s3_b_t.html#aab14832f7844f07e6287eb443019b6e7">PS3BT</a>(<a class="code" href="class_b_t_d.html">BTD</a> *pBtd, uint8_t btadr5 = 0, uint8_t btadr4 = 0, uint8_t btadr3 = 0, uint8_t btadr2 = 0, uint8_t btadr1 = 0, uint8_t btadr0 = 0);</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <a class="code" href="class_p_s3_b_t.html#aab14832f7844f07e6287eb443019b6e7">PS3BT</a>(<a class="code" href="class_b_t_d.html">BTD</a> *<a class="code" href="class_bluetooth_service.html#aa67faf901f78a55a202945a20f6d778a">pBtd</a>, uint8_t btadr5 = 0, uint8_t btadr4 = 0, uint8_t btadr3 = 0, uint8_t btadr2 = 0, uint8_t btadr1 = 0, uint8_t btadr0 = 0);</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#aa310ede24b68b1b03cfc49c4308c66b7">ACLData</a>(uint8_t* <a class="code" href="class_p_s3_b_t.html#aa310ede24b68b1b03cfc49c4308c66b7">ACLData</a>);</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#ab41f25f45573239990f68611dc825086">Run</a>();</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#a576d72cdf12af58ae59c8f2a02f99c0f">Reset</a>();</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#a39ad8810c67e85eddc68c8a16d38a985">disconnect</a>();</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_p_s3_b_t.html#a5e7842bef25e7c7210974f5405e1bc81">getButtonPress</a>(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a> b);</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_p_s3_b_t.html#a3b0e522b5d8a39d3daf540e4feb4f5fe">getButtonClick</a>(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a> b);</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; uint8_t <a class="code" href="class_p_s3_b_t.html#a6dac11972fc4b1f5984d43365be1a954">getAnalogButton</a>(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a> a);</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; uint8_t <a class="code" href="class_p_s3_b_t.html#a648e2bfeb06e2dc1603202e95324b206">getAnalogHat</a>(<a class="code" href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093">AnalogHatEnum</a> a);</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; int16_t <a class="code" href="class_p_s3_b_t.html#a07c8dcb809005e8492bbef4e1f4b9d24">getSensor</a>(<a class="code" href="controller_enums_8h.html#a00d5030559c481763282483889597d51">SensorEnum</a> a);</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordtype">double</span> <a class="code" href="class_p_s3_b_t.html#ae1e00364c5ff214274438bf54c3cf743">getAngle</a>(<a class="code" href="controller_enums_8h.html#a7c7824a10a9ffa8fea85602fcf4d84e6">AngleEnum</a> a);</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordtype">double</span> <a class="code" href="class_p_s3_b_t.html#ae6596ca28c65db105392a9fed8698ef2">get9DOFValues</a>(<a class="code" href="controller_enums_8h.html#a00d5030559c481763282483889597d51">SensorEnum</a> a);</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_p_s3_b_t.html#a5062acbd19a52d88a998f19060fbc46a">getStatus</a>(<a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161ae">StatusEnum</a> c);</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#a8f3945da5c4e00ce2fd3daf0b6267cec">printStatusString</a>();</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; String <a class="code" href="class_p_s3_b_t.html#ab4f49b61167df001d13b68c7699651b4">getTemperature</a>();</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#a6ee74242b0c1644496ff04b457f39cd2">setAllOff</a>();</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#a5c87e7db5311a5d56f78c994b5545e4e">setRumbleOff</a>();</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#a7a3e593911490538c061e9ccb4273f87">setRumbleOn</a>(<a class="code" href="controller_enums_8h.html#ab195293384292950ebc2166bfe360fd1">RumbleEnum</a> mode);</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#a7a3e593911490538c061e9ccb4273f87">setRumbleOn</a>(uint8_t rightDuration, uint8_t rightPower, uint8_t leftDuration, uint8_t leftPower);</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#a0acdc09661a8099b2d5e8b59cd8325bb">setLedRaw</a>(uint8_t value);</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div>
<div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="class_p_s3_b_t.html#a2ce9fb6251b56ec877cd22af7213a037"> 147</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#a2ce9fb6251b56ec877cd22af7213a037">setLedOff</a>() {</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <a class="code" href="class_p_s3_b_t.html#a0acdc09661a8099b2d5e8b59cd8325bb">setLedRaw</a>(0);</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; };</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#a2ce9fb6251b56ec877cd22af7213a037">setLedOff</a>(<a class="code" href="controller_enums_8h.html#a70df64e026046bc352983127b7ae2cf0">LEDEnum</a> a);</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#a4e6cdea1880421a21cc8cfca0f00b449">setLedOn</a>(<a class="code" href="controller_enums_8h.html#a70df64e026046bc352983127b7ae2cf0">LEDEnum</a> a);</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#ae163b7f00d287f8647dabc2897d0d208">setLedToggle</a>(<a class="code" href="controller_enums_8h.html#a70df64e026046bc352983127b7ae2cf0">LEDEnum</a> a);</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#ad0926b75edcbb12ddf76f78e66728782">moveSetBulb</a>(uint8_t r, uint8_t g, uint8_t b);</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#ad0926b75edcbb12ddf76f78e66728782">moveSetBulb</a>(<a class="code" href="controller_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2">ColorsEnum</a> color);</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#ac14d338ddb573d1c06f70749f9205689">moveSetRumble</a>(uint8_t rumble);</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div>
<div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="class_p_s3_b_t.html#ad5b6bba68b85614f6a1b2ddeb2a3f191"> 183</a></span>&#160; uint32_t <a class="code" href="class_p_s3_b_t.html#ad5b6bba68b85614f6a1b2ddeb2a3f191">getLastMessageTime</a>() {</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">return</span> lastMessageTime;</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; };</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div>
<div class="line"><a name="l00191"></a><span class="lineno"><a class="line" href="class_p_s3_b_t.html#a11a7a031b249e09c39aa0872fa1e4a6c"> 191</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#a11a7a031b249e09c39aa0872fa1e4a6c">attachOnInit</a>(<span class="keywordtype">void</span> (*funcOnInit)(<span class="keywordtype">void</span>)) {</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; pFuncOnInit = funcOnInit;</div>
<div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="class_p_s3_b_t.html#a2804535e3164eafca80a6f6c6bd9a4f9"> 193</a></span>&#160; };</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_p_s3_b_t.html#a2804535e3164eafca80a6f6c6bd9a4f9">PS3Connected</a>;</div>
<div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="class_p_s3_b_t.html#a9273b6796948b83772117b3805421b4a"> 199</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_p_s3_b_t.html#a9273b6796948b83772117b3805421b4a">PS3MoveConnected</a>;</div>
<div class="line"><a name="l00201"></a><span class="lineno"><a class="line" href="class_p_s3_b_t.html#ab35277632083d43f8750d130bea6d430"> 201</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_p_s3_b_t.html#ab35277632083d43f8750d130bea6d430">PS3NavigationConnected</a>;</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="comment">/* Mandatory members */</span></div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <a class="code" href="class_b_t_d.html">BTD</a> *pBtd;</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#a39ad8810c67e85eddc68c8a16d38a985">disconnect</a>();</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_p_s3_b_t.html#a5e7842bef25e7c7210974f5405e1bc81">getButtonPress</a>(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a> b);</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_p_s3_b_t.html#a3b0e522b5d8a39d3daf540e4feb4f5fe">getButtonClick</a>(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a> b);</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; uint8_t <a class="code" href="class_p_s3_b_t.html#a6dac11972fc4b1f5984d43365be1a954">getAnalogButton</a>(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a> a);</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; uint8_t <a class="code" href="class_p_s3_b_t.html#a648e2bfeb06e2dc1603202e95324b206">getAnalogHat</a>(<a class="code" href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093">AnalogHatEnum</a> a);</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; int16_t <a class="code" href="class_p_s3_b_t.html#a07c8dcb809005e8492bbef4e1f4b9d24">getSensor</a>(<a class="code" href="controller_enums_8h.html#a00d5030559c481763282483889597d51">SensorEnum</a> a);</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordtype">double</span> <a class="code" href="class_p_s3_b_t.html#ae1e00364c5ff214274438bf54c3cf743">getAngle</a>(<a class="code" href="controller_enums_8h.html#a7c7824a10a9ffa8fea85602fcf4d84e6">AngleEnum</a> a);</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordtype">double</span> <a class="code" href="class_p_s3_b_t.html#ae6596ca28c65db105392a9fed8698ef2">get9DOFValues</a>(<a class="code" href="controller_enums_8h.html#a00d5030559c481763282483889597d51">SensorEnum</a> a);</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_p_s3_b_t.html#a5062acbd19a52d88a998f19060fbc46a">getStatus</a>(<a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161ae">StatusEnum</a> c);</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#a8f3945da5c4e00ce2fd3daf0b6267cec">printStatusString</a>();</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; String <a class="code" href="class_p_s3_b_t.html#ab4f49b61167df001d13b68c7699651b4">getTemperature</a>();</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#a6ee74242b0c1644496ff04b457f39cd2">setAllOff</a>();</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#a5c87e7db5311a5d56f78c994b5545e4e">setRumbleOff</a>();</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#a7a3e593911490538c061e9ccb4273f87">setRumbleOn</a>(<a class="code" href="controller_enums_8h.html#ab195293384292950ebc2166bfe360fd1">RumbleEnum</a> mode);</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#a7a3e593911490538c061e9ccb4273f87">setRumbleOn</a>(uint8_t rightDuration, uint8_t rightPower, uint8_t leftDuration, uint8_t leftPower);</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#a0acdc09661a8099b2d5e8b59cd8325bb">setLedRaw</a>(uint8_t value);</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div>
<div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="class_p_s3_b_t.html#a2ce9fb6251b56ec877cd22af7213a037"> 138</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#a2ce9fb6251b56ec877cd22af7213a037">setLedOff</a>() {</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <a class="code" href="class_p_s3_b_t.html#a0acdc09661a8099b2d5e8b59cd8325bb">setLedRaw</a>(0);</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; };</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#a2ce9fb6251b56ec877cd22af7213a037">setLedOff</a>(<a class="code" href="controller_enums_8h.html#a70df64e026046bc352983127b7ae2cf0">LEDEnum</a> a);</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#a4e6cdea1880421a21cc8cfca0f00b449">setLedOn</a>(<a class="code" href="controller_enums_8h.html#a70df64e026046bc352983127b7ae2cf0">LEDEnum</a> a);</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#ae163b7f00d287f8647dabc2897d0d208">setLedToggle</a>(<a class="code" href="controller_enums_8h.html#a70df64e026046bc352983127b7ae2cf0">LEDEnum</a> a);</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#ad0926b75edcbb12ddf76f78e66728782">moveSetBulb</a>(uint8_t r, uint8_t g, uint8_t b);</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#ad0926b75edcbb12ddf76f78e66728782">moveSetBulb</a>(<a class="code" href="controller_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2">ColorsEnum</a> color);</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#ac14d338ddb573d1c06f70749f9205689">moveSetRumble</a>(uint8_t rumble);</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;</div>
<div class="line"><a name="l00174"></a><span class="lineno"><a class="line" href="class_p_s3_b_t.html#ad5b6bba68b85614f6a1b2ddeb2a3f191"> 174</a></span>&#160; uint32_t <a class="code" href="class_p_s3_b_t.html#ad5b6bba68b85614f6a1b2ddeb2a3f191">getLastMessageTime</a>() {</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">return</span> lastMessageTime;</div>
<div class="line"><a name="l00176"></a><span class="lineno"><a class="line" href="class_p_s3_b_t.html#a2804535e3164eafca80a6f6c6bd9a4f9"> 176</a></span>&#160; };</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_p_s3_b_t.html#a2804535e3164eafca80a6f6c6bd9a4f9">PS3Connected</a>;</div>
<div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="class_p_s3_b_t.html#a9273b6796948b83772117b3805421b4a"> 182</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_p_s3_b_t.html#a9273b6796948b83772117b3805421b4a">PS3MoveConnected</a>;</div>
<div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="class_p_s3_b_t.html#ab35277632083d43f8750d130bea6d430"> 184</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_p_s3_b_t.html#ab35277632083d43f8750d130bea6d430">PS3NavigationConnected</a>;</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="keyword">protected</span>:</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#aa310ede24b68b1b03cfc49c4308c66b7">ACLData</a>(uint8_t* <a class="code" href="class_p_s3_b_t.html#aa310ede24b68b1b03cfc49c4308c66b7">ACLData</a>);</div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#ab41f25f45573239990f68611dc825086">Run</a>();</div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#a576d72cdf12af58ae59c8f2a02f99c0f">Reset</a>();</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#a4ed5311e2ba8b2700ab003e37e0f9172">onInit</a>();</div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordtype">void</span> onInit();</div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; void (*pFuncOnInit)(void); <span class="comment">// Pointer to function called in onInit()</span></div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordtype">void</span> L2CAP_task(); <span class="comment">// L2CAP state machine</span></div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="comment">/* Variables filled from HCI event management */</span></div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; int16_t hci_handle;</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; uint8_t remote_name[30]; <span class="comment">// First 30 chars of remote name</span></div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordtype">bool</span> activeConnection; <span class="comment">// Used to indicate if it&#39;s already has established a connection</span></div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordtype">void</span> L2CAP_task(); <span class="comment">// L2CAP state machine</span></div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="comment">/* Variables filled from HCI event management */</span></div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keywordtype">char</span> remote_name_first; <span class="comment">// First letter in remote name</span></div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordtype">bool</span> activeConnection; <span class="comment">// Used to indicate if it&#39;s already has established a connection</span></div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="comment">/* Variables used by high level L2CAP task */</span></div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; uint8_t l2cap_state;</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; uint32_t lastMessageTime; <span class="comment">// Variable used to store the millis value of the last message.</span></div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;</div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; uint32_t ButtonState;</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; uint32_t OldButtonState;</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; uint32_t ButtonClickState;</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="comment">/* Variables used by high level L2CAP task */</span></div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; uint8_t l2cap_state;</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; uint32_t l2cap_event_flag; <span class="comment">// L2CAP flags of received Bluetooth events</span></div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; uint32_t lastMessageTime; <span class="comment">// Variable used to store the millis value of the last message.</span></div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;</div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> timer;</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;</div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; uint32_t ButtonState;</div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; uint32_t OldButtonState;</div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; uint32_t ButtonClickState;</div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;</div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; uint32_t timerHID; <span class="comment">// Timer used see if there has to be a delay before a new HID command</span></div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; uint32_t timerBulbRumble; <span class="comment">// used to continuously set PS3 Move controller Bulb and rumble values</span></div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;</div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; uint8_t l2capinbuf[<a class="code" href="_b_t_d_8h.html#a32d591ef5742a99963130616ef146787">BULK_MAXPKTSIZE</a>]; <span class="comment">// General purpose buffer for L2CAP in data</span></div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; uint8_t HIDBuffer[<a class="code" href="_p_s3_b_t_8h.html#a465c4c33eae0fd5f934ae12bc8d6ca7e">HID_BUFFERSIZE</a>]; <span class="comment">// Used to store HID commands</span></div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; uint8_t HIDMoveBuffer[<a class="code" href="_p_s3_b_t_8h.html#a465c4c33eae0fd5f934ae12bc8d6ca7e">HID_BUFFERSIZE</a>]; <span class="comment">// Used to store HID commands for the Move controller</span></div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="comment">/* L2CAP Channels */</span></div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; uint8_t control_scid[2]; <span class="comment">// L2CAP source CID for HID_Control</span></div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; uint8_t control_dcid[2]; <span class="comment">// 0x0040</span></div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; uint8_t interrupt_scid[2]; <span class="comment">// L2CAP source CID for HID_Interrupt</span></div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; uint8_t interrupt_dcid[2]; <span class="comment">// 0x0041</span></div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; uint8_t identifier; <span class="comment">// Identifier for connection</span></div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;</div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="comment">/* HID Commands */</span></div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keywordtype">void</span> HID_Command(uint8_t* data, uint8_t nbytes);</div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keywordtype">void</span> HIDMove_Command(uint8_t* data, uint8_t nbytes);</div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keywordtype">void</span> enable_sixaxis(); <span class="comment">// Command used to enable the Dualshock 3 and Navigation controller to send data via Bluetooth</span></div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;};</div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="ttc" id="class_p_s3_b_t_html_ab35277632083d43f8750d130bea6d430"><div class="ttname"><a href="class_p_s3_b_t.html#ab35277632083d43f8750d130bea6d430">PS3BT::PS3NavigationConnected</a></div><div class="ttdeci">bool PS3NavigationConnected</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8h_source.html#l00201">PS3BT.h:201</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a5062acbd19a52d88a998f19060fbc46a"><div class="ttname"><a href="class_p_s3_b_t.html#a5062acbd19a52d88a998f19060fbc46a">PS3BT::getStatus</a></div><div class="ttdeci">bool getStatus(StatusEnum c)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00159">PS3BT.cpp:159</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_ab41f25f45573239990f68611dc825086"><div class="ttname"><a href="class_p_s3_b_t.html#ab41f25f45573239990f68611dc825086">PS3BT::Run</a></div><div class="ttdeci">virtual void Run()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00458">PS3BT.cpp:458</a></div></div>
<div class="ttc" id="class_b_t_d_html"><div class="ttname"><a href="class_b_t_d.html">BTD</a></div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00230">BTD.h:230</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a4e6cdea1880421a21cc8cfca0f00b449"><div class="ttname"><a href="class_p_s3_b_t.html#a4e6cdea1880421a21cc8cfca0f00b449">PS3BT::setLedOn</a></div><div class="ttdeci">void setLedOn(LEDEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00570">PS3BT.cpp:570</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_ab4f49b61167df001d13b68c7699651b4"><div class="ttname"><a href="class_p_s3_b_t.html#ab4f49b61167df001d13b68c7699651b4">PS3BT::getTemperature</a></div><div class="ttdeci">String getTemperature()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00144">PS3BT.cpp:144</a></div></div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; uint32_t timer; <span class="comment">// Timer used to limit time between messages and also used to continuously set PS3 Move controller Bulb and rumble values</span></div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; uint32_t timerHID; <span class="comment">// Timer used see if there has to be a delay before a new HID command</span></div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; uint8_t l2capinbuf[<a class="code" href="_b_t_d_8h.html#a32d591ef5742a99963130616ef146787">BULK_MAXPKTSIZE</a>]; <span class="comment">// General purpose buffer for L2CAP in data</span></div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; uint8_t HIDBuffer[<a class="code" href="_p_s3_b_t_8h.html#a465c4c33eae0fd5f934ae12bc8d6ca7e">HID_BUFFERSIZE</a>]; <span class="comment">// Used to store HID commands</span></div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; uint8_t HIDMoveBuffer[<a class="code" href="_p_s3_b_t_8h.html#a465c4c33eae0fd5f934ae12bc8d6ca7e">HID_BUFFERSIZE</a>]; <span class="comment">// Used to store HID commands for the Move controller</span></div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="comment">/* L2CAP Channels */</span></div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; uint8_t control_scid[2]; <span class="comment">// L2CAP source CID for HID_Control</span></div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; uint8_t control_dcid[2]; <span class="comment">// 0x0040</span></div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; uint8_t interrupt_scid[2]; <span class="comment">// L2CAP source CID for HID_Interrupt</span></div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; uint8_t interrupt_dcid[2]; <span class="comment">// 0x0041</span></div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="comment">/* HID Commands */</span></div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keywordtype">void</span> HID_Command(uint8_t* data, uint8_t nbytes);</div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keywordtype">void</span> HIDMove_Command(uint8_t* data, uint8_t nbytes);</div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keywordtype">void</span> enable_sixaxis(); <span class="comment">// Command used to enable the Dualshock 3 and Navigation controller to send data via Bluetooth</span></div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;};</div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="ttc" id="class_p_s3_b_t_html_ab35277632083d43f8750d130bea6d430"><div class="ttname"><a href="class_p_s3_b_t.html#ab35277632083d43f8750d130bea6d430">PS3BT::PS3NavigationConnected</a></div><div class="ttdeci">bool PS3NavigationConnected</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8h_source.html#l00184">PS3BT.h:184</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a5062acbd19a52d88a998f19060fbc46a"><div class="ttname"><a href="class_p_s3_b_t.html#a5062acbd19a52d88a998f19060fbc46a">PS3BT::getStatus</a></div><div class="ttdeci">bool getStatus(StatusEnum c)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00156">PS3BT.cpp:156</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_ab41f25f45573239990f68611dc825086"><div class="ttname"><a href="class_p_s3_b_t.html#ab41f25f45573239990f68611dc825086">PS3BT::Run</a></div><div class="ttdeci">void Run()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00454">PS3BT.cpp:454</a></div></div>
<div class="ttc" id="class_b_t_d_html"><div class="ttname"><a href="class_b_t_d.html">BTD</a></div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00198">BTD.h:198</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a4e6cdea1880421a21cc8cfca0f00b449"><div class="ttname"><a href="class_p_s3_b_t.html#a4e6cdea1880421a21cc8cfca0f00b449">PS3BT::setLedOn</a></div><div class="ttdeci">void setLedOn(LEDEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00566">PS3BT.cpp:566</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_ab4f49b61167df001d13b68c7699651b4"><div class="ttname"><a href="class_p_s3_b_t.html#ab4f49b61167df001d13b68c7699651b4">PS3BT::getTemperature</a></div><div class="ttdeci">String getTemperature()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00141">PS3BT.cpp:141</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a34dad8f0a0927471137c403216597093"><div class="ttname"><a href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093">AnalogHatEnum</a></div><div class="ttdeci">AnalogHatEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00151">controllerEnums.h:151</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_ac14d338ddb573d1c06f70749f9205689"><div class="ttname"><a href="class_p_s3_b_t.html#ac14d338ddb573d1c06f70749f9205689">PS3BT::moveSetRumble</a></div><div class="ttdeci">void moveSetRumble(uint8_t rumble)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00618">PS3BT.cpp:618</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a8f3945da5c4e00ce2fd3daf0b6267cec"><div class="ttname"><a href="class_p_s3_b_t.html#a8f3945da5c4e00ce2fd3daf0b6267cec">PS3BT::printStatusString</a></div><div class="ttdeci">void printStatusString()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00163">PS3BT.cpp:163</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a6ee74242b0c1644496ff04b457f39cd2"><div class="ttname"><a href="class_p_s3_b_t.html#a6ee74242b0c1644496ff04b457f39cd2">PS3BT::setAllOff</a></div><div class="ttdeci">void setAllOff()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00523">PS3BT.cpp:523</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_ac14d338ddb573d1c06f70749f9205689"><div class="ttname"><a href="class_p_s3_b_t.html#ac14d338ddb573d1c06f70749f9205689">PS3BT::moveSetRumble</a></div><div class="ttdeci">void moveSetRumble(uint8_t rumble)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00614">PS3BT.cpp:614</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a8f3945da5c4e00ce2fd3daf0b6267cec"><div class="ttname"><a href="class_p_s3_b_t.html#a8f3945da5c4e00ce2fd3daf0b6267cec">PS3BT::printStatusString</a></div><div class="ttdeci">void printStatusString()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00160">PS3BT.cpp:160</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a6ee74242b0c1644496ff04b457f39cd2"><div class="ttname"><a href="class_p_s3_b_t.html#a6ee74242b0c1644496ff04b457f39cd2">PS3BT::setAllOff</a></div><div class="ttdeci">void setAllOff()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00519">PS3BT.cpp:519</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161ae"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161ae">StatusEnum</a></div><div class="ttdeci">StatusEnum</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00113">PS3Enums.h:113</a></div></div>
<div class="ttc" id="_p_s3_b_t_8h_html_a465c4c33eae0fd5f934ae12bc8d6ca7e"><div class="ttname"><a href="_p_s3_b_t_8h.html#a465c4c33eae0fd5f934ae12bc8d6ca7e">HID_BUFFERSIZE</a></div><div class="ttdeci">#define HID_BUFFERSIZE</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8h_source.html#l00024">PS3BT.h:24</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a576d72cdf12af58ae59c8f2a02f99c0f"><div class="ttname"><a href="class_p_s3_b_t.html#a576d72cdf12af58ae59c8f2a02f99c0f">PS3BT::Reset</a></div><div class="ttdeci">virtual void Reset()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00207">PS3BT.cpp:207</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a5e7842bef25e7c7210974f5405e1bc81"><div class="ttname"><a href="class_p_s3_b_t.html#a5e7842bef25e7c7210974f5405e1bc81">PS3BT::getButtonPress</a></div><div class="ttdeci">bool getButtonPress(ButtonEnum b)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00052">PS3BT.cpp:52</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a576d72cdf12af58ae59c8f2a02f99c0f"><div class="ttname"><a href="class_p_s3_b_t.html#a576d72cdf12af58ae59c8f2a02f99c0f">PS3BT::Reset</a></div><div class="ttdeci">void Reset()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00204">PS3BT.cpp:204</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a5e7842bef25e7c7210974f5405e1bc81"><div class="ttname"><a href="class_p_s3_b_t.html#a5e7842bef25e7c7210974f5405e1bc81">PS3BT::getButtonPress</a></div><div class="ttdeci">bool getButtonPress(ButtonEnum b)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00049">PS3BT.cpp:49</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a70df64e026046bc352983127b7ae2cf0"><div class="ttname"><a href="controller_enums_8h.html#a70df64e026046bc352983127b7ae2cf0">LEDEnum</a></div><div class="ttdeci">LEDEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00027">controllerEnums.h:27</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a07c8dcb809005e8492bbef4e1f4b9d24"><div class="ttname"><a href="class_p_s3_b_t.html#a07c8dcb809005e8492bbef4e1f4b9d24">PS3BT::getSensor</a></div><div class="ttdeci">int16_t getSensor(SensorEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00071">PS3BT.cpp:71</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a07c8dcb809005e8492bbef4e1f4b9d24"><div class="ttname"><a href="class_p_s3_b_t.html#a07c8dcb809005e8492bbef4e1f4b9d24">PS3BT::getSensor</a></div><div class="ttdeci">int16_t getSensor(SensorEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00068">PS3BT.cpp:68</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html"><div class="ttname"><a href="_p_s3_enums_8h.html">PS3Enums.h</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_ae1e00364c5ff214274438bf54c3cf743"><div class="ttname"><a href="class_p_s3_b_t.html#ae1e00364c5ff214274438bf54c3cf743">PS3BT::getAngle</a></div><div class="ttdeci">double getAngle(AngleEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00088">PS3BT.cpp:88</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_ae1e00364c5ff214274438bf54c3cf743"><div class="ttname"><a href="class_p_s3_b_t.html#ae1e00364c5ff214274438bf54c3cf743">PS3BT::getAngle</a></div><div class="ttdeci">double getAngle(AngleEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00085">PS3BT.cpp:85</a></div></div>
<div class="ttc" id="controller_enums_8h_html_ab195293384292950ebc2166bfe360fd1"><div class="ttname"><a href="controller_enums_8h.html#ab195293384292950ebc2166bfe360fd1">RumbleEnum</a></div><div class="ttdeci">RumbleEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00066">controllerEnums.h:66</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html"><div class="ttname"><a href="class_p_s3_b_t.html">PS3BT</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8h_source.html#l00032">PS3BT.h:32</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a11a7a031b249e09c39aa0872fa1e4a6c"><div class="ttname"><a href="class_p_s3_b_t.html#a11a7a031b249e09c39aa0872fa1e4a6c">PS3BT::attachOnInit</a></div><div class="ttdeci">void attachOnInit(void(*funcOnInit)(void))</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8h_source.html#l00191">PS3BT.h:191</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a648e2bfeb06e2dc1603202e95324b206"><div class="ttname"><a href="class_p_s3_b_t.html#a648e2bfeb06e2dc1603202e95324b206">PS3BT::getAnalogHat</a></div><div class="ttdeci">uint8_t getAnalogHat(AnalogHatEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00067">PS3BT.cpp:67</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a2804535e3164eafca80a6f6c6bd9a4f9"><div class="ttname"><a href="class_p_s3_b_t.html#a2804535e3164eafca80a6f6c6bd9a4f9">PS3BT::PS3Connected</a></div><div class="ttdeci">bool PS3Connected</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8h_source.html#l00193">PS3BT.h:193</a></div></div>
<div class="ttc" id="class_bluetooth_service_html"><div class="ttname"><a href="class_bluetooth_service.html">BluetoothService</a></div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00211">BTD.h:211</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a648e2bfeb06e2dc1603202e95324b206"><div class="ttname"><a href="class_p_s3_b_t.html#a648e2bfeb06e2dc1603202e95324b206">PS3BT::getAnalogHat</a></div><div class="ttdeci">uint8_t getAnalogHat(AnalogHatEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00064">PS3BT.cpp:64</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a2804535e3164eafca80a6f6c6bd9a4f9"><div class="ttname"><a href="class_p_s3_b_t.html#a2804535e3164eafca80a6f6c6bd9a4f9">PS3BT::PS3Connected</a></div><div class="ttdeci">bool PS3Connected</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8h_source.html#l00176">PS3BT.h:176</a></div></div>
<div class="ttc" id="class_bluetooth_service_html"><div class="ttname"><a href="class_bluetooth_service.html">BluetoothService</a></div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00563">BTD.h:563</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fd"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a></div><div class="ttdeci">ButtonEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00072">controllerEnums.h:72</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_ad0926b75edcbb12ddf76f78e66728782"><div class="ttname"><a href="class_p_s3_b_t.html#ad0926b75edcbb12ddf76f78e66728782">PS3BT::moveSetBulb</a></div><div class="ttdeci">void moveSetBulb(uint8_t r, uint8_t g, uint8_t b)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00605">PS3BT.cpp:605</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a9273b6796948b83772117b3805421b4a"><div class="ttname"><a href="class_p_s3_b_t.html#a9273b6796948b83772117b3805421b4a">PS3BT::PS3MoveConnected</a></div><div class="ttdeci">bool PS3MoveConnected</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8h_source.html#l00199">PS3BT.h:199</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a7a3e593911490538c061e9ccb4273f87"><div class="ttname"><a href="class_p_s3_b_t.html#a7a3e593911490538c061e9ccb4273f87">PS3BT::setRumbleOn</a></div><div class="ttdeci">void setRumbleOn(RumbleEnum mode)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00543">PS3BT.cpp:543</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_ad0926b75edcbb12ddf76f78e66728782"><div class="ttname"><a href="class_p_s3_b_t.html#ad0926b75edcbb12ddf76f78e66728782">PS3BT::moveSetBulb</a></div><div class="ttdeci">void moveSetBulb(uint8_t r, uint8_t g, uint8_t b)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00601">PS3BT.cpp:601</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a9273b6796948b83772117b3805421b4a"><div class="ttname"><a href="class_p_s3_b_t.html#a9273b6796948b83772117b3805421b4a">PS3BT::PS3MoveConnected</a></div><div class="ttdeci">bool PS3MoveConnected</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8h_source.html#l00182">PS3BT.h:182</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a7a3e593911490538c061e9ccb4273f87"><div class="ttname"><a href="class_p_s3_b_t.html#a7a3e593911490538c061e9ccb4273f87">PS3BT::setRumbleOn</a></div><div class="ttdeci">void setRumbleOn(RumbleEnum mode)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00539">PS3BT.cpp:539</a></div></div>
<div class="ttc" id="controller_enums_8h_html_aac6fa7b0395b95cc528deaad0ce884a2"><div class="ttname"><a href="controller_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2">ColorsEnum</a></div><div class="ttdeci">ColorsEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00045">controllerEnums.h:45</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a32d591ef5742a99963130616ef146787"><div class="ttname"><a href="_b_t_d_8h.html#a32d591ef5742a99963130616ef146787">BULK_MAXPKTSIZE</a></div><div class="ttdeci">#define BULK_MAXPKTSIZE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00033">BTD.h:33</a></div></div>
<div class="ttc" id="class_bluetooth_service_html_aa67faf901f78a55a202945a20f6d778a"><div class="ttname"><a href="class_bluetooth_service.html#aa67faf901f78a55a202945a20f6d778a">BluetoothService::pBtd</a></div><div class="ttdeci">BTD * pBtd</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00606">BTD.h:606</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a32d591ef5742a99963130616ef146787"><div class="ttname"><a href="_b_t_d_8h.html#a32d591ef5742a99963130616ef146787">BULK_MAXPKTSIZE</a></div><div class="ttdeci">#define BULK_MAXPKTSIZE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00034">BTD.h:34</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a7c7824a10a9ffa8fea85602fcf4d84e6"><div class="ttname"><a href="controller_enums_8h.html#a7c7824a10a9ffa8fea85602fcf4d84e6">AngleEnum</a></div><div class="ttdeci">AngleEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00199">controllerEnums.h:199</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_aa310ede24b68b1b03cfc49c4308c66b7"><div class="ttname"><a href="class_p_s3_b_t.html#aa310ede24b68b1b03cfc49c4308c66b7">PS3BT::ACLData</a></div><div class="ttdeci">virtual void ACLData(uint8_t *ACLData)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00227">PS3BT.cpp:227</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a2ce9fb6251b56ec877cd22af7213a037"><div class="ttname"><a href="class_p_s3_b_t.html#a2ce9fb6251b56ec877cd22af7213a037">PS3BT::setLedOff</a></div><div class="ttdeci">void setLedOff()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8h_source.html#l00147">PS3BT.h:147</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_ae163b7f00d287f8647dabc2897d0d208"><div class="ttname"><a href="class_p_s3_b_t.html#ae163b7f00d287f8647dabc2897d0d208">PS3BT::setLedToggle</a></div><div class="ttdeci">void setLedToggle(LEDEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00579">PS3BT.cpp:579</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a39ad8810c67e85eddc68c8a16d38a985"><div class="ttname"><a href="class_p_s3_b_t.html#a39ad8810c67e85eddc68c8a16d38a985">PS3BT::disconnect</a></div><div class="ttdeci">virtual void disconnect()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00220">PS3BT.cpp:220</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_aa310ede24b68b1b03cfc49c4308c66b7"><div class="ttname"><a href="class_p_s3_b_t.html#aa310ede24b68b1b03cfc49c4308c66b7">PS3BT::ACLData</a></div><div class="ttdeci">void ACLData(uint8_t *ACLData)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00224">PS3BT.cpp:224</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a2ce9fb6251b56ec877cd22af7213a037"><div class="ttname"><a href="class_p_s3_b_t.html#a2ce9fb6251b56ec877cd22af7213a037">PS3BT::setLedOff</a></div><div class="ttdeci">void setLedOff()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8h_source.html#l00138">PS3BT.h:138</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_ae163b7f00d287f8647dabc2897d0d208"><div class="ttname"><a href="class_p_s3_b_t.html#ae163b7f00d287f8647dabc2897d0d208">PS3BT::setLedToggle</a></div><div class="ttdeci">void setLedToggle(LEDEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00575">PS3BT.cpp:575</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a39ad8810c67e85eddc68c8a16d38a985"><div class="ttname"><a href="class_p_s3_b_t.html#a39ad8810c67e85eddc68c8a16d38a985">PS3BT::disconnect</a></div><div class="ttdeci">void disconnect()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00217">PS3BT.cpp:217</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a00d5030559c481763282483889597d51"><div class="ttname"><a href="controller_enums_8h.html#a00d5030559c481763282483889597d51">SensorEnum</a></div><div class="ttdeci">SensorEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00166">controllerEnums.h:166</a></div></div>
<div class="ttc" id="_b_t_d_8h_html"><div class="ttname"><a href="_b_t_d_8h.html">BTD.h</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_ae6596ca28c65db105392a9fed8698ef2"><div class="ttname"><a href="class_p_s3_b_t.html#ae6596ca28c65db105392a9fed8698ef2">PS3BT::get9DOFValues</a></div><div class="ttdeci">double get9DOFValues(SensorEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00115">PS3BT.cpp:115</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a6dac11972fc4b1f5984d43365be1a954"><div class="ttname"><a href="class_p_s3_b_t.html#a6dac11972fc4b1f5984d43365be1a954">PS3BT::getAnalogButton</a></div><div class="ttdeci">uint8_t getAnalogButton(ButtonEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00063">PS3BT.cpp:63</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a0acdc09661a8099b2d5e8b59cd8325bb"><div class="ttname"><a href="class_p_s3_b_t.html#a0acdc09661a8099b2d5e8b59cd8325bb">PS3BT::setLedRaw</a></div><div class="ttdeci">void setLedRaw(uint8_t value)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00560">PS3BT.cpp:560</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_ae6596ca28c65db105392a9fed8698ef2"><div class="ttname"><a href="class_p_s3_b_t.html#ae6596ca28c65db105392a9fed8698ef2">PS3BT::get9DOFValues</a></div><div class="ttdeci">double get9DOFValues(SensorEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00112">PS3BT.cpp:112</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a6dac11972fc4b1f5984d43365be1a954"><div class="ttname"><a href="class_p_s3_b_t.html#a6dac11972fc4b1f5984d43365be1a954">PS3BT::getAnalogButton</a></div><div class="ttdeci">uint8_t getAnalogButton(ButtonEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00060">PS3BT.cpp:60</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a0acdc09661a8099b2d5e8b59cd8325bb"><div class="ttname"><a href="class_p_s3_b_t.html#a0acdc09661a8099b2d5e8b59cd8325bb">PS3BT::setLedRaw</a></div><div class="ttdeci">void setLedRaw(uint8_t value)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00556">PS3BT.cpp:556</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_aab14832f7844f07e6287eb443019b6e7"><div class="ttname"><a href="class_p_s3_b_t.html#aab14832f7844f07e6287eb443019b6e7">PS3BT::PS3BT</a></div><div class="ttdeci">PS3BT(BTD *pBtd, uint8_t btadr5=0, uint8_t btadr4=0, uint8_t btadr3=0, uint8_t btadr2=0, uint8_t btadr1=0, uint8_t btadr0=0)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00023">PS3BT.cpp:23</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_ad5b6bba68b85614f6a1b2ddeb2a3f191"><div class="ttname"><a href="class_p_s3_b_t.html#ad5b6bba68b85614f6a1b2ddeb2a3f191">PS3BT::getLastMessageTime</a></div><div class="ttdeci">uint32_t getLastMessageTime()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8h_source.html#l00183">PS3BT.h:183</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a5c87e7db5311a5d56f78c994b5545e4e"><div class="ttname"><a href="class_p_s3_b_t.html#a5c87e7db5311a5d56f78c994b5545e4e">PS3BT::setRumbleOff</a></div><div class="ttdeci">void setRumbleOff()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00534">PS3BT.cpp:534</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a3b0e522b5d8a39d3daf540e4feb4f5fe"><div class="ttname"><a href="class_p_s3_b_t.html#a3b0e522b5d8a39d3daf540e4feb4f5fe">PS3BT::getButtonClick</a></div><div class="ttdeci">bool getButtonClick(ButtonEnum b)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00056">PS3BT.cpp:56</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_ad5b6bba68b85614f6a1b2ddeb2a3f191"><div class="ttname"><a href="class_p_s3_b_t.html#ad5b6bba68b85614f6a1b2ddeb2a3f191">PS3BT::getLastMessageTime</a></div><div class="ttdeci">uint32_t getLastMessageTime()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8h_source.html#l00174">PS3BT.h:174</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a4ed5311e2ba8b2700ab003e37e0f9172"><div class="ttname"><a href="class_p_s3_b_t.html#a4ed5311e2ba8b2700ab003e37e0f9172">PS3BT::onInit</a></div><div class="ttdeci">void onInit()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00625">PS3BT.cpp:625</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a5c87e7db5311a5d56f78c994b5545e4e"><div class="ttname"><a href="class_p_s3_b_t.html#a5c87e7db5311a5d56f78c994b5545e4e">PS3BT::setRumbleOff</a></div><div class="ttdeci">void setRumbleOff()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00530">PS3BT.cpp:530</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a3b0e522b5d8a39d3daf540e4feb4f5fe"><div class="ttname"><a href="class_p_s3_b_t.html#a3b0e522b5d8a39d3daf540e4feb4f5fe">PS3BT::getButtonClick</a></div><div class="ttdeci">bool getButtonClick(ButtonEnum b)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00053">PS3BT.cpp:53</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.7
</a> 1.8.9.1
</small></address>
</body>
</html>

View file

@ -3,15 +3,16 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<meta name="generator" content="Doxygen 1.8.9.1"/>
<title>USB Host Shield 2.0: PS3Enums.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="imageStyle.css" rel="stylesheet" type="text/css"/>
@ -31,7 +32,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.7 -->
<!-- Generated by Doxygen 1.8.9.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -70,7 +71,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
@ -384,7 +385,7 @@ Variables</h2></td></tr>
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.7
</a> 1.8.9.1
</small></address>
</body>
</html>

View file

@ -1 +1 @@
632aeb814444892cb4235318575b2052
2ee6fe4e5f4f5bb8864f711284e44ace

View file

@ -1 +1 @@
8cf971386ed8276013189d149241a27d
1b975049347183489796e6dc1da09be9

View file

@ -3,15 +3,16 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<meta name="generator" content="Doxygen 1.8.9.1"/>
<title>USB Host Shield 2.0: PS3Enums.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="imageStyle.css" rel="stylesheet" type="text/css"/>
@ -31,7 +32,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.7 -->
<!-- Generated by Doxygen 1.8.9.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -70,7 +71,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
@ -250,7 +251,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.7
</a> 1.8.9.1
</small></address>
</body>
</html>

View file

@ -3,15 +3,16 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<meta name="generator" content="Doxygen 1.8.9.1"/>
<title>USB Host Shield 2.0: PS3USB.cpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="imageStyle.css" rel="stylesheet" type="text/css"/>
@ -31,7 +32,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.7 -->
<!-- Generated by Doxygen 1.8.9.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -70,7 +71,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
@ -95,7 +96,7 @@ Include dependency graph for PS3USB.cpp:</div>
<div class="dyncontent">
<div class="center"><img src="_p_s3_u_s_b_8cpp__incl.png" border="0" usemap="#_p_s3_u_s_b_8cpp" alt=""/></div>
<map name="_p_s3_u_s_b_8cpp" id="_p_s3_u_s_b_8cpp">
<area shape="rect" id="node2" href="_p_s3_u_s_b_8h.html" title="PS3USB.h" alt="" coords="42,79,127,104"/><area shape="rect" id="node3" href="_usb_8h.html" title="Usb.h" alt="" coords="5,152,61,177"/><area shape="rect" id="node4" href="_p_s3_enums_8h.html" title="PS3Enums.h" alt="" coords="85,152,184,177"/><area shape="rect" id="node5" href="controller_enums_8h.html" title="controllerEnums.h" alt="" coords="70,225,199,251"/></map>
<area shape="rect" id="node2" href="_p_s3_u_s_b_8h.html" title="PS3USB.h" alt="" coords="32,79,117,104"/><area shape="rect" id="node3" href="_usb_8h.html" title="Usb.h" alt="" coords="5,299,61,324"/><area shape="rect" id="node4" href="hid_8h.html" title="hid.h" alt="" coords="50,152,100,177"/><area shape="rect" id="node6" href="_p_s3_enums_8h.html" title="PS3Enums.h" alt="" coords="181,152,280,177"/><area shape="rect" id="node5" href="hidusagestr_8h.html" title="hidusagestr.h" alt="" coords="71,225,172,251"/><area shape="rect" id="node7" href="controller_enums_8h.html" title="controllerEnums.h" alt="" coords="196,225,324,251"/></map>
</div>
</div>
<p><a href="_p_s3_u_s_b_8cpp_source.html">Go to the source code of this file.</a></p>
@ -104,7 +105,7 @@ Include dependency graph for PS3USB.cpp:</div>
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.7
</a> 1.8.9.1
</small></address>
</body>
</html>

View file

@ -1,6 +1,8 @@
<map id="PS3USB.cpp" name="PS3USB.cpp">
<area shape="rect" id="node2" href="$_p_s3_u_s_b_8h.html" title="PS3USB.h" alt="" coords="42,79,127,104"/>
<area shape="rect" id="node3" href="$_usb_8h.html" title="Usb.h" alt="" coords="5,152,61,177"/>
<area shape="rect" id="node4" href="$_p_s3_enums_8h.html" title="PS3Enums.h" alt="" coords="85,152,184,177"/>
<area shape="rect" id="node5" href="$controller_enums_8h.html" title="controllerEnums.h" alt="" coords="70,225,199,251"/>
<area shape="rect" id="node2" href="$_p_s3_u_s_b_8h.html" title="PS3USB.h" alt="" coords="32,79,117,104"/>
<area shape="rect" id="node3" href="$_usb_8h.html" title="Usb.h" alt="" coords="5,299,61,324"/>
<area shape="rect" id="node4" href="$hid_8h.html" title="hid.h" alt="" coords="50,152,100,177"/>
<area shape="rect" id="node6" href="$_p_s3_enums_8h.html" title="PS3Enums.h" alt="" coords="181,152,280,177"/>
<area shape="rect" id="node5" href="$hidusagestr_8h.html" title="hidusagestr.h" alt="" coords="71,225,172,251"/>
<area shape="rect" id="node7" href="$controller_enums_8h.html" title="controllerEnums.h" alt="" coords="196,225,324,251"/>
</map>

View file

@ -1 +1 @@
68d8fca935dc486bd7b23a04cf3b7f24
a2824aebe89d82dcd9d4b1ac1984f3c8

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 20 KiB

View file

@ -3,15 +3,16 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<meta name="generator" content="Doxygen 1.8.9.1"/>
<title>USB Host Shield 2.0: PS3USB.cpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="imageStyle.css" rel="stylesheet" type="text/css"/>
@ -31,7 +32,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.7 -->
<!-- Generated by Doxygen 1.8.9.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -70,7 +71,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
@ -146,12 +147,12 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="comment">// get memory address of USB device address pool</span></div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <a class="code" href="class_address_pool.html">AddressPool</a> &amp;addrPool = <a class="code" href="class_p_s3_u_s_b.html#aa1873f41ae0da7c4568cfb7517560c48">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a66ab8f5eda239e761d5a48741ea1f9d4">GetAddressPool</a>();</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nPS3USB Init&quot;</span>), 0x80);</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(<a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot;\r\nPS3USB Init&quot;</span>), 0x80);</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="comment">// check if address has already been assigned to an instance</span></div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_p_s3_u_s_b.html#a3f43df159277003acdf7dd107bda27fd">bAddress</a>) {</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nAddress in use&quot;</span>), 0x80);</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(<a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot;\r\nAddress in use&quot;</span>), 0x80);</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#a44416ff64fc0e3691f98addac13d4595">USB_ERROR_CLASS_INSTANCE_ALREADY_IN_USE</a>;</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; }</div>
@ -161,14 +162,14 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">if</span>(!p) {</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nAddress not found&quot;</span>), 0x80);</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(<a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot;\r\nAddress not found&quot;</span>), 0x80);</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#afe2fedb4b0ccc89a688c0b4b59691ce0">USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL</a>;</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; }</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">if</span>(!p-&gt;<a class="code" href="struct_usb_device.html#a410d39fb7758157f57794335e990ed02">epinfo</a>) {</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nepinfo is null&quot;</span>), 0x80);</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(<a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot;\r\nepinfo is null&quot;</span>), 0x80);</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#af192c59cafe2192ad802b22e6dbc077d">USB_ERROR_EPINFO_IS_NULL</a>;</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; }</div>
@ -211,13 +212,13 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; addrPool.<a class="code" href="class_address_pool.html#a15fde13223dcb1da89305ad229763562">FreeAddress</a>(<a class="code" href="class_p_s3_u_s_b.html#a3f43df159277003acdf7dd107bda27fd">bAddress</a>);</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#a3f43df159277003acdf7dd107bda27fd">bAddress</a> = 0;</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nsetAddr: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(<a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot;\r\nsetAddr: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; D_PrintHex&lt;uint8_t &gt; (rcode, 0x80);</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">return</span> rcode;</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; }</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nAddr: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(<a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot;\r\nAddr: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; D_PrintHex&lt;uint8_t &gt; (<a class="code" href="class_p_s3_u_s_b.html#a3f43df159277003acdf7dd107bda27fd">bAddress</a>, 0x80);</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="comment">//delay(300); // Spec says you should wait at least 200ms</span></div>
@ -243,13 +244,13 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="comment">/* Initialize data structures for endpoints of device */</span></div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#a394dbb0a59b587210e5958f08dac48f1">epInfo</a>[ <a class="code" href="_p_s3_u_s_b_8h.html#a0da271fcb10181b3ce15aefe76c259bb">PS3_OUTPUT_PIPE</a> ].<a class="code" href="struct_ep_info.html#a9f92be74c75c037b39e2cae1eb49b89b">epAddr</a> = 0x02; <span class="comment">// PS3 output endpoint</span></div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#a394dbb0a59b587210e5958f08dac48f1">epInfo</a>[ <a class="code" href="_p_s3_u_s_b_8h.html#a0da271fcb10181b3ce15aefe76c259bb">PS3_OUTPUT_PIPE</a> ].<a class="code" href="struct_ep_info.html#a1dea928517c961235eef7b0876e69f10">epAttribs</a> = <a class="code" href="_p_s3_u_s_b_8h.html#ad4d26e1c566064f2259faf65f0858b6e">EP_INTERRUPT</a>;</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#a394dbb0a59b587210e5958f08dac48f1">epInfo</a>[ <a class="code" href="_p_s3_u_s_b_8h.html#a0da271fcb10181b3ce15aefe76c259bb">PS3_OUTPUT_PIPE</a> ].<a class="code" href="struct_ep_info.html#a1dea928517c961235eef7b0876e69f10">epAttribs</a> = <a class="code" href="usb__ch9_8h.html#ac80ae240a4a703b554aa8edee201495f">USB_TRANSFER_TYPE_INTERRUPT</a>;</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#a394dbb0a59b587210e5958f08dac48f1">epInfo</a>[ <a class="code" href="_p_s3_u_s_b_8h.html#a0da271fcb10181b3ce15aefe76c259bb">PS3_OUTPUT_PIPE</a> ].<a class="code" href="struct_ep_info.html#a3a5b1c017a034cd9e06e76729e727c46">bmNakPower</a> = <a class="code" href="address_8h.html#a660e8da9c1167a8450aef91c5c03761d">USB_NAK_NOWAIT</a>; <span class="comment">// Only poll once for interrupt endpoints</span></div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#a394dbb0a59b587210e5958f08dac48f1">epInfo</a>[ <a class="code" href="_p_s3_u_s_b_8h.html#a0da271fcb10181b3ce15aefe76c259bb">PS3_OUTPUT_PIPE</a> ].<a class="code" href="struct_ep_info.html#aa2ca775b63736df4008e88da7dd4dddb">maxPktSize</a> = <a class="code" href="_p_s3_u_s_b_8h.html#abcb805b13bfd36145e252b0633bbcfc0">EP_MAXPKTSIZE</a>;</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#a394dbb0a59b587210e5958f08dac48f1">epInfo</a>[ <a class="code" href="_p_s3_u_s_b_8h.html#a0da271fcb10181b3ce15aefe76c259bb">PS3_OUTPUT_PIPE</a> ].<a class="code" href="struct_ep_info.html#ac85bff70ad0e5d71e50cb501f4d8caf3">bmSndToggle</a> = 0;</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#a394dbb0a59b587210e5958f08dac48f1">epInfo</a>[ <a class="code" href="_p_s3_u_s_b_8h.html#a0da271fcb10181b3ce15aefe76c259bb">PS3_OUTPUT_PIPE</a> ].<a class="code" href="struct_ep_info.html#a9238dd40c096baedf041c98b19386a14">bmRcvToggle</a> = 0;</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#a394dbb0a59b587210e5958f08dac48f1">epInfo</a>[ <a class="code" href="_p_s3_u_s_b_8h.html#aca3cbaad8732d9185bb9bda1a32cd18d">PS3_INPUT_PIPE</a> ].<a class="code" href="struct_ep_info.html#a9f92be74c75c037b39e2cae1eb49b89b">epAddr</a> = 0x01; <span class="comment">// PS3 report endpoint</span></div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#a394dbb0a59b587210e5958f08dac48f1">epInfo</a>[ <a class="code" href="_p_s3_u_s_b_8h.html#aca3cbaad8732d9185bb9bda1a32cd18d">PS3_INPUT_PIPE</a> ].<a class="code" href="struct_ep_info.html#a1dea928517c961235eef7b0876e69f10">epAttribs</a> = <a class="code" href="_p_s3_u_s_b_8h.html#ad4d26e1c566064f2259faf65f0858b6e">EP_INTERRUPT</a>;</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#a394dbb0a59b587210e5958f08dac48f1">epInfo</a>[ <a class="code" href="_p_s3_u_s_b_8h.html#aca3cbaad8732d9185bb9bda1a32cd18d">PS3_INPUT_PIPE</a> ].<a class="code" href="struct_ep_info.html#a1dea928517c961235eef7b0876e69f10">epAttribs</a> = <a class="code" href="usb__ch9_8h.html#ac80ae240a4a703b554aa8edee201495f">USB_TRANSFER_TYPE_INTERRUPT</a>;</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#a394dbb0a59b587210e5958f08dac48f1">epInfo</a>[ <a class="code" href="_p_s3_u_s_b_8h.html#aca3cbaad8732d9185bb9bda1a32cd18d">PS3_INPUT_PIPE</a> ].<a class="code" href="struct_ep_info.html#a3a5b1c017a034cd9e06e76729e727c46">bmNakPower</a> = <a class="code" href="address_8h.html#a660e8da9c1167a8450aef91c5c03761d">USB_NAK_NOWAIT</a>; <span class="comment">// Only poll once for interrupt endpoints</span></div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#a394dbb0a59b587210e5958f08dac48f1">epInfo</a>[ <a class="code" href="_p_s3_u_s_b_8h.html#aca3cbaad8732d9185bb9bda1a32cd18d">PS3_INPUT_PIPE</a> ].<a class="code" href="struct_ep_info.html#aa2ca775b63736df4008e88da7dd4dddb">maxPktSize</a> = <a class="code" href="_p_s3_u_s_b_8h.html#abcb805b13bfd36145e252b0633bbcfc0">EP_MAXPKTSIZE</a>;</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#a394dbb0a59b587210e5958f08dac48f1">epInfo</a>[ <a class="code" href="_p_s3_u_s_b_8h.html#aca3cbaad8732d9185bb9bda1a32cd18d">PS3_INPUT_PIPE</a> ].<a class="code" href="struct_ep_info.html#ac85bff70ad0e5d71e50cb501f4d8caf3">bmSndToggle</a> = 0;</div>
@ -268,12 +269,12 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">if</span>(PID == <a class="code" href="_b_t_d_8h.html#a0ae276efa5e73a4da658c714e70402c0">PS3_PID</a> || PID == <a class="code" href="_b_t_d_8h.html#a54903b410722a45f8246653cd4d00632">PS3NAVIGATION_PID</a>) {</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordflow">if</span>(PID == <a class="code" href="_b_t_d_8h.html#a0ae276efa5e73a4da658c714e70402c0">PS3_PID</a>) {</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nDualshock 3 Controller Connected&quot;</span>), 0x80);</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(<a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot;\r\nDualshock 3 Controller Connected&quot;</span>), 0x80);</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#a0dad8754ff18d0c375c2569791d50876">PS3Connected</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; } <span class="keywordflow">else</span> { <span class="comment">// must be a navigation controller</span></div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nNavigation Controller Connected&quot;</span>), 0x80);</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(<a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot;\r\nNavigation Controller Connected&quot;</span>), 0x80);</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#a54b2dcaa1e9acef83de2376b50c7ff09">PS3NavigationConnected</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; }</div>
@ -281,13 +282,13 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="comment">// Needed for PS3 Dualshock and Navigation commands to work</span></div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">for</span>(uint8_t i = 0; i &lt; <a class="code" href="_p_s3_enums_8h.html#a4898fccf5d2aa053bc67894aa3627e0f">PS3_REPORT_BUFFER_SIZE</a>; i++)</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; writeBuf[i] = pgm_read_byte(&amp;<a class="code" href="_p_s3_enums_8h.html#ab8d0298319d2131eb55cd94c07bcf391">PS3_REPORT_BUFFER</a>[i]);</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; writeBuf[i] = <a class="code" href="version__helper_8h.html#a48c60b057902adf805797f183286728d">pgm_read_byte</a>(&amp;<a class="code" href="_p_s3_enums_8h.html#ab8d0298319d2131eb55cd94c07bcf391">PS3_REPORT_BUFFER</a>[i]);</div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordflow">for</span>(uint8_t i = 6; i &lt; 10; i++)</div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; readBuf[i] = 0x7F; <span class="comment">// Set the analog joystick values to center position</span></div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; } <span class="keywordflow">else</span> { <span class="comment">// must be a Motion controller</span></div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nMotion Controller Connected&quot;</span>), 0x80);</div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(<a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot;\r\nMotion Controller Connected&quot;</span>), 0x80);</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#a89aa4233f3eeeb99693a099da527ec28">PS3MoveConnected</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; writeBuf[0] = 0x02; <span class="comment">// Set report ID, this is needed for Move commands to work</span></div>
@ -299,10 +300,10 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#ad50962ff6194746c076084ec0714605a">setBdaddr</a>(my_bdaddr); <span class="comment">// Set internal Bluetooth address</span></div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nBluetooth Address was set to: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(<a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot;\r\nBluetooth Address was set to: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">for</span>(int8_t i = 5; i &gt; 0; i--) {</div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; D_PrintHex&lt;uint8_t &gt; (my_bdaddr[i], 0x80);</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;:&quot;</span>), 0x80);</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(<a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot;:&quot;</span>), 0x80);</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; }</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; D_PrintHex&lt;uint8_t &gt; (my_bdaddr[0], 0x80);</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;<span class="preprocessor">#endif</span></div>
@ -310,7 +311,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; onInit();</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; bPollEnable = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\n&quot;</span>), 0x80);</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(<a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot;\r\n&quot;</span>), 0x80);</div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; timer = millis();</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">return</span> 0; <span class="comment">// Successful configuration</span></div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;</div>
@ -341,7 +342,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;</div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;Fail:</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nPS3 Init Failed, error code: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(<a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot;\r\nPS3 Init Failed, error code: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <a class="code" href="message_8h.html#a22695bdc18ebde4a87dbe8633cb39593">NotifyFail</a>(rcode);</div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#a5750c5448bf1ec73a7669ca2e4799c98">Release</a>();</div>
@ -397,25 +398,25 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;<span class="preprocessor">#ifdef PRINTREPORT</span></div>
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keywordflow">for</span>(uint8_t i = 0; i &lt; <a class="code" href="_p_s3_enums_8h.html#a4898fccf5d2aa053bc67894aa3627e0f">PS3_REPORT_BUFFER_SIZE</a>; i++) {</div>
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; D_PrintHex&lt;uint8_t &gt; (readBuf[i], 0x80);</div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(<a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; }</div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\n&quot;</span>), 0x80);</div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(<a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot;\r\n&quot;</span>), 0x80);</div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;}</div>
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;</div>
<div class="line"><a name="l00315"></a><span class="lineno"><a class="line" href="class_p_s3_u_s_b.html#a89df07d76648a48c1f0ef8fd9604c201"> 315</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_p_s3_u_s_b.html#a89df07d76648a48c1f0ef8fd9604c201">PS3USB::getButtonPress</a>(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a> b) {</div>
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keywordflow">return</span> (ButtonState &amp; pgm_read_dword(&amp;<a class="code" href="_p_s3_enums_8h.html#a90c28adabe5fc5da343fe8a5ac9ca6de">PS3_BUTTONS</a>[(uint8_t)b]));</div>
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keywordflow">return</span> (ButtonState &amp; <a class="code" href="version__helper_8h.html#a73cf3e57e32321cb193b3cc4b041cc6c">pgm_read_dword</a>(&amp;<a class="code" href="_p_s3_enums_8h.html#a90c28adabe5fc5da343fe8a5ac9ca6de">PS3_BUTTONS</a>[(uint8_t)b]));</div>
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;}</div>
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;</div>
<div class="line"><a name="l00319"></a><span class="lineno"><a class="line" href="class_p_s3_u_s_b.html#ac22875ff006c68daad6f688551f5e6d5"> 319</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_p_s3_u_s_b.html#ac22875ff006c68daad6f688551f5e6d5">PS3USB::getButtonClick</a>(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a> b) {</div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; uint32_t button = pgm_read_dword(&amp;<a class="code" href="_p_s3_enums_8h.html#a90c28adabe5fc5da343fe8a5ac9ca6de">PS3_BUTTONS</a>[(uint8_t)b]);</div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; uint32_t button = <a class="code" href="version__helper_8h.html#a73cf3e57e32321cb193b3cc4b041cc6c">pgm_read_dword</a>(&amp;<a class="code" href="_p_s3_enums_8h.html#a90c28adabe5fc5da343fe8a5ac9ca6de">PS3_BUTTONS</a>[(uint8_t)b]);</div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keywordtype">bool</span> click = (ButtonClickState &amp; button);</div>
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; ButtonClickState &amp;= ~button; <span class="comment">// Clear &quot;click&quot; event</span></div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <span class="keywordflow">return</span> click;</div>
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;}</div>
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;</div>
<div class="line"><a name="l00326"></a><span class="lineno"><a class="line" href="class_p_s3_u_s_b.html#a6844111657a882b1997ca30d2649bd1c"> 326</a></span>&#160;uint8_t <a class="code" href="class_p_s3_u_s_b.html#a6844111657a882b1997ca30d2649bd1c">PS3USB::getAnalogButton</a>(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a> a) {</div>
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <span class="keywordflow">return</span> (uint8_t)(readBuf[(pgm_read_byte(&amp;<a class="code" href="_p_s3_enums_8h.html#ac306dfe7b0e1b3a3e9bb357aa7552dec">PS3_ANALOG_BUTTONS</a>[(uint8_t)a])) - 9]);</div>
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <span class="keywordflow">return</span> (uint8_t)(readBuf[(<a class="code" href="version__helper_8h.html#a48c60b057902adf805797f183286728d">pgm_read_byte</a>(&amp;<a class="code" href="_p_s3_enums_8h.html#ac306dfe7b0e1b3a3e9bb357aa7552dec">PS3_ANALOG_BUTTONS</a>[(uint8_t)a])) - 9]);</div>
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;}</div>
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;</div>
<div class="line"><a name="l00330"></a><span class="lineno"><a class="line" href="class_p_s3_u_s_b.html#a0de554815afcb66f57d8ac0045f19f2c"> 330</a></span>&#160;uint8_t <a class="code" href="class_p_s3_u_s_b.html#a0de554815afcb66f57d8ac0045f19f2c">PS3USB::getAnalogHat</a>(<a class="code" href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093">AnalogHatEnum</a> a) {</div>
@ -456,32 +457,32 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00365"></a><span class="lineno"><a class="line" href="class_p_s3_u_s_b.html#a1328a3f017f8d010cd0559c084981021"> 365</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#a1328a3f017f8d010cd0559c084981021">PS3USB::printStatusString</a>() {</div>
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <span class="keywordtype">char</span> statusOutput[100]; <span class="comment">// Max string length plus null character</span></div>
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_p_s3_u_s_b.html#a0dad8754ff18d0c375c2569791d50876">PS3Connected</a> || <a class="code" href="class_p_s3_u_s_b.html#a54b2dcaa1e9acef83de2376b50c7ff09">PS3NavigationConnected</a>) {</div>
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; strcpy_P(statusOutput, PSTR(<span class="stringliteral">&quot;ConnectionStatus: &quot;</span>));</div>
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <a class="code" href="version__helper_8h.html#ae74941b597bdd8ffb5c35f45b636946b">strcpy_P</a>(statusOutput, <a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot;ConnectionStatus: &quot;</span>));</div>
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160;</div>
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_p_s3_u_s_b.html#ad0887b415c3ba180789781a713d98be8">getStatus</a>(<a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeaff01ce39b42bec30132b0fc53c882387">Plugged</a>)) strcat_P(statusOutput, PSTR(<span class="stringliteral">&quot;Plugged&quot;</span>));</div>
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_p_s3_u_s_b.html#ad0887b415c3ba180789781a713d98be8">getStatus</a>(<a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeae37160f3a65bb54a91fb5efb4f971924">Unplugged</a>)) strcat_P(statusOutput, PSTR(<span class="stringliteral">&quot;Unplugged&quot;</span>));</div>
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keywordflow">else</span> strcat_P(statusOutput, PSTR(<span class="stringliteral">&quot;Error&quot;</span>));</div>
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_p_s3_u_s_b.html#ad0887b415c3ba180789781a713d98be8">getStatus</a>(<a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeaff01ce39b42bec30132b0fc53c882387">Plugged</a>)) <a class="code" href="version__helper_8h.html#a2ca9304dda7dc2472812baa9e9ede965">strcat_P</a>(statusOutput, <a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot;Plugged&quot;</span>));</div>
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_p_s3_u_s_b.html#ad0887b415c3ba180789781a713d98be8">getStatus</a>(<a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeae37160f3a65bb54a91fb5efb4f971924">Unplugged</a>)) <a class="code" href="version__helper_8h.html#a2ca9304dda7dc2472812baa9e9ede965">strcat_P</a>(statusOutput, <a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot;Unplugged&quot;</span>));</div>
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keywordflow">else</span> <a class="code" href="version__helper_8h.html#a2ca9304dda7dc2472812baa9e9ede965">strcat_P</a>(statusOutput, <a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot;Error&quot;</span>));</div>
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;</div>
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; strcat_P(statusOutput, PSTR(<span class="stringliteral">&quot; - PowerRating: &quot;</span>));</div>
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <a class="code" href="version__helper_8h.html#a2ca9304dda7dc2472812baa9e9ede965">strcat_P</a>(statusOutput, <a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot; - PowerRating: &quot;</span>));</div>
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;</div>
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_p_s3_u_s_b.html#ad0887b415c3ba180789781a713d98be8">getStatus</a>(<a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea5a86ae1482947377a116685c168d1773">Charging</a>)) strcat_P(statusOutput, PSTR(<span class="stringliteral">&quot;Charging&quot;</span>));</div>
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_p_s3_u_s_b.html#ad0887b415c3ba180789781a713d98be8">getStatus</a>(<a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeac138cecbd4ef1ba0f9e0ab12440a6df6">NotCharging</a>)) strcat_P(statusOutput, PSTR(<span class="stringliteral">&quot;Not Charging&quot;</span>));</div>
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_p_s3_u_s_b.html#ad0887b415c3ba180789781a713d98be8">getStatus</a>(<a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea82084136e62c38642986b05419b4e734">Shutdown</a>)) strcat_P(statusOutput, PSTR(<span class="stringliteral">&quot;Shutdown&quot;</span>));</div>
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_p_s3_u_s_b.html#ad0887b415c3ba180789781a713d98be8">getStatus</a>(<a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea96cc2a0090ada376561406d48d1f2089">Dying</a>)) strcat_P(statusOutput, PSTR(<span class="stringliteral">&quot;Dying&quot;</span>));</div>
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_p_s3_u_s_b.html#ad0887b415c3ba180789781a713d98be8">getStatus</a>(<a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea7a352a3dd2accc1dd65a4538c3754ee8">Low</a>)) strcat_P(statusOutput, PSTR(<span class="stringliteral">&quot;Low&quot;</span>));</div>
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_p_s3_u_s_b.html#ad0887b415c3ba180789781a713d98be8">getStatus</a>(<a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea24c57acd029e3f96fede49402ea01e6f">High</a>)) strcat_P(statusOutput, PSTR(<span class="stringliteral">&quot;High&quot;</span>));</div>
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_p_s3_u_s_b.html#ad0887b415c3ba180789781a713d98be8">getStatus</a>(<a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea8b7c5cd8bd8eb51ee6d3fd0eac584679">Full</a>)) strcat_P(statusOutput, PSTR(<span class="stringliteral">&quot;Full&quot;</span>));</div>
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <span class="keywordflow">else</span> strcat_P(statusOutput, PSTR(<span class="stringliteral">&quot;Error&quot;</span>));</div>
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_p_s3_u_s_b.html#ad0887b415c3ba180789781a713d98be8">getStatus</a>(<a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea5a86ae1482947377a116685c168d1773">Charging</a>)) <a class="code" href="version__helper_8h.html#a2ca9304dda7dc2472812baa9e9ede965">strcat_P</a>(statusOutput, <a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot;Charging&quot;</span>));</div>
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_p_s3_u_s_b.html#ad0887b415c3ba180789781a713d98be8">getStatus</a>(<a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeac138cecbd4ef1ba0f9e0ab12440a6df6">NotCharging</a>)) <a class="code" href="version__helper_8h.html#a2ca9304dda7dc2472812baa9e9ede965">strcat_P</a>(statusOutput, <a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot;Not Charging&quot;</span>));</div>
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_p_s3_u_s_b.html#ad0887b415c3ba180789781a713d98be8">getStatus</a>(<a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea82084136e62c38642986b05419b4e734">Shutdown</a>)) <a class="code" href="version__helper_8h.html#a2ca9304dda7dc2472812baa9e9ede965">strcat_P</a>(statusOutput, <a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot;Shutdown&quot;</span>));</div>
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_p_s3_u_s_b.html#ad0887b415c3ba180789781a713d98be8">getStatus</a>(<a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea96cc2a0090ada376561406d48d1f2089">Dying</a>)) <a class="code" href="version__helper_8h.html#a2ca9304dda7dc2472812baa9e9ede965">strcat_P</a>(statusOutput, <a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot;Dying&quot;</span>));</div>
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_p_s3_u_s_b.html#ad0887b415c3ba180789781a713d98be8">getStatus</a>(<a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea7a352a3dd2accc1dd65a4538c3754ee8">Low</a>)) <a class="code" href="version__helper_8h.html#a2ca9304dda7dc2472812baa9e9ede965">strcat_P</a>(statusOutput, <a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot;Low&quot;</span>));</div>
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_p_s3_u_s_b.html#ad0887b415c3ba180789781a713d98be8">getStatus</a>(<a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea24c57acd029e3f96fede49402ea01e6f">High</a>)) <a class="code" href="version__helper_8h.html#a2ca9304dda7dc2472812baa9e9ede965">strcat_P</a>(statusOutput, <a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot;High&quot;</span>));</div>
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_p_s3_u_s_b.html#ad0887b415c3ba180789781a713d98be8">getStatus</a>(<a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea8b7c5cd8bd8eb51ee6d3fd0eac584679">Full</a>)) <a class="code" href="version__helper_8h.html#a2ca9304dda7dc2472812baa9e9ede965">strcat_P</a>(statusOutput, <a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot;Full&quot;</span>));</div>
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <span class="keywordflow">else</span> <a class="code" href="version__helper_8h.html#a2ca9304dda7dc2472812baa9e9ede965">strcat_P</a>(statusOutput, <a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot;Error&quot;</span>));</div>
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;</div>
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; strcat_P(statusOutput, PSTR(<span class="stringliteral">&quot; - WirelessStatus: &quot;</span>));</div>
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <a class="code" href="version__helper_8h.html#a2ca9304dda7dc2472812baa9e9ede965">strcat_P</a>(statusOutput, <a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot; - WirelessStatus: &quot;</span>));</div>
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;</div>
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_p_s3_u_s_b.html#ad0887b415c3ba180789781a713d98be8">getStatus</a>(<a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea71c14aef95c9953673a880e2633fa209">CableRumble</a>)) strcat_P(statusOutput, PSTR(<span class="stringliteral">&quot;Cable - Rumble is on&quot;</span>));</div>
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_p_s3_u_s_b.html#ad0887b415c3ba180789781a713d98be8">getStatus</a>(<a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea1a36ca9a60a5e244f3404ec0db7b44a1">Cable</a>)) strcat_P(statusOutput, PSTR(<span class="stringliteral">&quot;Cable - Rumble is off&quot;</span>));</div>
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_p_s3_u_s_b.html#ad0887b415c3ba180789781a713d98be8">getStatus</a>(<a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea27912f9ea05a45aada21fc375817342c">BluetoothRumble</a>)) strcat_P(statusOutput, PSTR(<span class="stringliteral">&quot;Bluetooth - Rumble is on&quot;</span>));</div>
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_p_s3_u_s_b.html#ad0887b415c3ba180789781a713d98be8">getStatus</a>(<a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea730728c9aac83393ac83f96a8125b8bb">Bluetooth</a>)) strcat_P(statusOutput, PSTR(<span class="stringliteral">&quot;Bluetooth - Rumble is off&quot;</span>));</div>
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="keywordflow">else</span> strcat_P(statusOutput, PSTR(<span class="stringliteral">&quot;Error&quot;</span>));</div>
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_p_s3_u_s_b.html#ad0887b415c3ba180789781a713d98be8">getStatus</a>(<a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea71c14aef95c9953673a880e2633fa209">CableRumble</a>)) <a class="code" href="version__helper_8h.html#a2ca9304dda7dc2472812baa9e9ede965">strcat_P</a>(statusOutput, <a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot;Cable - Rumble is on&quot;</span>));</div>
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_p_s3_u_s_b.html#ad0887b415c3ba180789781a713d98be8">getStatus</a>(<a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea1a36ca9a60a5e244f3404ec0db7b44a1">Cable</a>)) <a class="code" href="version__helper_8h.html#a2ca9304dda7dc2472812baa9e9ede965">strcat_P</a>(statusOutput, <a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot;Cable - Rumble is off&quot;</span>));</div>
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_p_s3_u_s_b.html#ad0887b415c3ba180789781a713d98be8">getStatus</a>(<a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea27912f9ea05a45aada21fc375817342c">BluetoothRumble</a>)) <a class="code" href="version__helper_8h.html#a2ca9304dda7dc2472812baa9e9ede965">strcat_P</a>(statusOutput, <a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot;Bluetooth - Rumble is on&quot;</span>));</div>
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_p_s3_u_s_b.html#ad0887b415c3ba180789781a713d98be8">getStatus</a>(<a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea730728c9aac83393ac83f96a8125b8bb">Bluetooth</a>)) <a class="code" href="version__helper_8h.html#a2ca9304dda7dc2472812baa9e9ede965">strcat_P</a>(statusOutput, <a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot;Bluetooth - Rumble is off&quot;</span>));</div>
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="keywordflow">else</span> <a class="code" href="version__helper_8h.html#a2ca9304dda7dc2472812baa9e9ede965">strcat_P</a>(statusOutput, <a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot;Error&quot;</span>));</div>
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; } <span class="keywordflow">else</span></div>
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; strcpy_P(statusOutput, PSTR(<span class="stringliteral">&quot;Error&quot;</span>));</div>
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <a class="code" href="version__helper_8h.html#ae74941b597bdd8ffb5c35f45b636946b">strcpy_P</a>(statusOutput, <a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot;Error&quot;</span>));</div>
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;</div>
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <a class="code" href="settings_8h.html#a11b6e9d1bc9facf0772bda8ad763530c">USB_HOST_SERIAL</a>.write(statusOutput);</div>
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;}</div>
@ -489,12 +490,12 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160;<span class="comment">/* Playstation Sixaxis Dualshock and Navigation Controller commands */</span></div>
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160;<span class="keywordtype">void</span> PS3USB::PS3_Command(uint8_t *data, uint16_t nbytes) {</div>
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <span class="comment">// bmRequest = Host to device (0x00) | Class (0x20) | Interface (0x01) = 0x21, bRequest = Set Report (0x09), Report ID (0x01), Report Type (Output 0x02), interface (0x00), datalength, datalength, data)</span></div>
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#aa1873f41ae0da7c4568cfb7517560c48">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(<a class="code" href="class_p_s3_u_s_b.html#a3f43df159277003acdf7dd107bda27fd">bAddress</a>, <a class="code" href="class_p_s3_u_s_b.html#a394dbb0a59b587210e5958f08dac48f1">epInfo</a>[<a class="code" href="_p_s3_u_s_b_8h.html#ae6276fa555fe14995bee0713be663333">PS3_CONTROL_PIPE</a>].epAddr, <a class="code" href="_b_t_d_8h.html#a5bd4ea095da29635414952894bd527f5">bmREQ_HID_OUT</a>, <a class="code" href="_b_t_d_8h.html#aee05d40a014750b24a7e9967f6f389f4">HID_REQUEST_SET_REPORT</a>, 0x01, 0x02, 0x00, nbytes, nbytes, data, NULL);</div>
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#aa1873f41ae0da7c4568cfb7517560c48">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(<a class="code" href="class_p_s3_u_s_b.html#a3f43df159277003acdf7dd107bda27fd">bAddress</a>, <a class="code" href="class_p_s3_u_s_b.html#a394dbb0a59b587210e5958f08dac48f1">epInfo</a>[<a class="code" href="_p_s3_u_s_b_8h.html#ae6276fa555fe14995bee0713be663333">PS3_CONTROL_PIPE</a>].epAddr, <a class="code" href="hid_8h.html#a5bd4ea095da29635414952894bd527f5">bmREQ_HID_OUT</a>, <a class="code" href="hid_8h.html#aee05d40a014750b24a7e9967f6f389f4">HID_REQUEST_SET_REPORT</a>, 0x01, 0x02, 0x00, nbytes, nbytes, data, NULL);</div>
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;}</div>
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;</div>
<div class="line"><a name="l00404"></a><span class="lineno"><a class="line" href="class_p_s3_u_s_b.html#ac7adc7365bb45d15c37e22f26f012498"> 404</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#ac7adc7365bb45d15c37e22f26f012498">PS3USB::setAllOff</a>() {</div>
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; <span class="keywordflow">for</span>(uint8_t i = 0; i &lt; <a class="code" href="_p_s3_enums_8h.html#a4898fccf5d2aa053bc67894aa3627e0f">PS3_REPORT_BUFFER_SIZE</a>; i++)</div>
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; writeBuf[i] = pgm_read_byte(&amp;<a class="code" href="_p_s3_enums_8h.html#ab8d0298319d2131eb55cd94c07bcf391">PS3_REPORT_BUFFER</a>[i]); <span class="comment">// Reset buffer</span></div>
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; writeBuf[i] = <a class="code" href="version__helper_8h.html#a48c60b057902adf805797f183286728d">pgm_read_byte</a>(&amp;<a class="code" href="_p_s3_enums_8h.html#ab8d0298319d2131eb55cd94c07bcf391">PS3_REPORT_BUFFER</a>[i]); <span class="comment">// Reset buffer</span></div>
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;</div>
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; PS3_Command(writeBuf, PS3_REPORT_BUFFER_SIZE);</div>
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;}</div>
@ -533,7 +534,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;}</div>
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160;</div>
<div class="line"><a name="l00444"></a><span class="lineno"><a class="line" href="class_p_s3_u_s_b.html#ae13c95a649aba7315c2a18eb5f4277a9"> 444</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#ac912fd49bd2a415206df7a8c2b672ea4">PS3USB::setLedOff</a>(<a class="code" href="controller_enums_8h.html#a70df64e026046bc352983127b7ae2cf0">LEDEnum</a> a) {</div>
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; writeBuf[9] &amp;= ~((uint8_t)((pgm_read_byte(&amp;<a class="code" href="_p_s3_enums_8h.html#a7ba142ed3f585d034f29cc2c36fba0e9">PS3_LEDS</a>[(uint8_t)a]) &amp; 0x0f) &lt;&lt; 1));</div>
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; writeBuf[9] &amp;= ~((uint8_t)((<a class="code" href="version__helper_8h.html#a48c60b057902adf805797f183286728d">pgm_read_byte</a>(&amp;<a class="code" href="_p_s3_enums_8h.html#a7ba142ed3f585d034f29cc2c36fba0e9">PS3_LEDS</a>[(uint8_t)a]) &amp; 0x0f) &lt;&lt; 1));</div>
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; PS3_Command(writeBuf, PS3_REPORT_BUFFER_SIZE);</div>
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160;}</div>
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160;</div>
@ -541,13 +542,13 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; <span class="keywordflow">if</span>(a == <a class="code" href="controller_enums_8h.html#a70df64e026046bc352983127b7ae2cf0aac132f2982b98bcaa3445e535a03ff75">OFF</a>)</div>
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#aa0aac5ea016db4cd6736a15e9d6eb41b">setLedRaw</a>(0);</div>
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; writeBuf[9] |= (uint8_t)((pgm_read_byte(&amp;<a class="code" href="_p_s3_enums_8h.html#a7ba142ed3f585d034f29cc2c36fba0e9">PS3_LEDS</a>[(uint8_t)a]) &amp; 0x0f) &lt;&lt; 1);</div>
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; writeBuf[9] |= (uint8_t)((<a class="code" href="version__helper_8h.html#a48c60b057902adf805797f183286728d">pgm_read_byte</a>(&amp;<a class="code" href="_p_s3_enums_8h.html#a7ba142ed3f585d034f29cc2c36fba0e9">PS3_LEDS</a>[(uint8_t)a]) &amp; 0x0f) &lt;&lt; 1);</div>
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; PS3_Command(writeBuf, PS3_REPORT_BUFFER_SIZE);</div>
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; }</div>
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160;}</div>
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160;</div>
<div class="line"><a name="l00458"></a><span class="lineno"><a class="line" href="class_p_s3_u_s_b.html#a87db50031f7e265baaa82365c14befae"> 458</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#a87db50031f7e265baaa82365c14befae">PS3USB::setLedToggle</a>(<a class="code" href="controller_enums_8h.html#a70df64e026046bc352983127b7ae2cf0">LEDEnum</a> a) {</div>
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; writeBuf[9] ^= (uint8_t)((pgm_read_byte(&amp;<a class="code" href="_p_s3_enums_8h.html#a7ba142ed3f585d034f29cc2c36fba0e9">PS3_LEDS</a>[(uint8_t)a]) &amp; 0x0f) &lt;&lt; 1);</div>
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; writeBuf[9] ^= (uint8_t)((<a class="code" href="version__helper_8h.html#a48c60b057902adf805797f183286728d">pgm_read_byte</a>(&amp;<a class="code" href="_p_s3_enums_8h.html#a7ba142ed3f585d034f29cc2c36fba0e9">PS3_LEDS</a>[(uint8_t)a]) &amp; 0x0f) &lt;&lt; 1);</div>
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; PS3_Command(writeBuf, PS3_REPORT_BUFFER_SIZE);</div>
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160;}</div>
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160;</div>
@ -561,14 +562,14 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; buf[i + 2] = bdaddr[5 - i]; <span class="comment">// Copy into buffer, has to be written reversed, so it is MSB first</span></div>
<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160;</div>
<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; <span class="comment">// bmRequest = Host to device (0x00) | Class (0x20) | Interface (0x01) = 0x21, bRequest = Set Report (0x09), Report ID (0xF5), Report Type (Feature 0x03), interface (0x00), datalength, datalength, data</span></div>
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#aa1873f41ae0da7c4568cfb7517560c48">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(<a class="code" href="class_p_s3_u_s_b.html#a3f43df159277003acdf7dd107bda27fd">bAddress</a>, <a class="code" href="class_p_s3_u_s_b.html#a394dbb0a59b587210e5958f08dac48f1">epInfo</a>[<a class="code" href="_p_s3_u_s_b_8h.html#ae6276fa555fe14995bee0713be663333">PS3_CONTROL_PIPE</a>].epAddr, <a class="code" href="_b_t_d_8h.html#a5bd4ea095da29635414952894bd527f5">bmREQ_HID_OUT</a>, <a class="code" href="_b_t_d_8h.html#aee05d40a014750b24a7e9967f6f389f4">HID_REQUEST_SET_REPORT</a>, 0xF5, 0x03, 0x00, 8, 8, buf, NULL);</div>
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#aa1873f41ae0da7c4568cfb7517560c48">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(<a class="code" href="class_p_s3_u_s_b.html#a3f43df159277003acdf7dd107bda27fd">bAddress</a>, <a class="code" href="class_p_s3_u_s_b.html#a394dbb0a59b587210e5958f08dac48f1">epInfo</a>[<a class="code" href="_p_s3_u_s_b_8h.html#ae6276fa555fe14995bee0713be663333">PS3_CONTROL_PIPE</a>].epAddr, <a class="code" href="hid_8h.html#a5bd4ea095da29635414952894bd527f5">bmREQ_HID_OUT</a>, <a class="code" href="hid_8h.html#aee05d40a014750b24a7e9967f6f389f4">HID_REQUEST_SET_REPORT</a>, 0xF5, 0x03, 0x00, 8, 8, buf, NULL);</div>
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160;}</div>
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;</div>
<div class="line"><a name="l00476"></a><span class="lineno"><a class="line" href="class_p_s3_u_s_b.html#a1448bc51226a9b63f2937630da6bd48f"> 476</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#a1448bc51226a9b63f2937630da6bd48f">PS3USB::getBdaddr</a>(uint8_t *bdaddr) {</div>
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; uint8_t buf[8];</div>
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160;</div>
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <span class="comment">// bmRequest = Device to host (0x80) | Class (0x20) | Interface (0x01) = 0xA1, bRequest = Get Report (0x01), Report ID (0xF5), Report Type (Feature 0x03), interface (0x00), datalength, datalength, data</span></div>
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#aa1873f41ae0da7c4568cfb7517560c48">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(<a class="code" href="class_p_s3_u_s_b.html#a3f43df159277003acdf7dd107bda27fd">bAddress</a>, <a class="code" href="class_p_s3_u_s_b.html#a394dbb0a59b587210e5958f08dac48f1">epInfo</a>[<a class="code" href="_p_s3_u_s_b_8h.html#ae6276fa555fe14995bee0713be663333">PS3_CONTROL_PIPE</a>].epAddr, <a class="code" href="_p_s3_u_s_b_8h.html#a2b422a95d6f43756111dea6b6a9230ff">bmREQ_HID_IN</a>, <a class="code" href="hid_8h.html#a73dbc093cd8c096054332fde410cd9ed">HID_REQUEST_GET_REPORT</a>, 0xF5, 0x03, 0x00, 8, 8, buf, NULL);</div>
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#aa1873f41ae0da7c4568cfb7517560c48">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(<a class="code" href="class_p_s3_u_s_b.html#a3f43df159277003acdf7dd107bda27fd">bAddress</a>, <a class="code" href="class_p_s3_u_s_b.html#a394dbb0a59b587210e5958f08dac48f1">epInfo</a>[<a class="code" href="_p_s3_u_s_b_8h.html#ae6276fa555fe14995bee0713be663333">PS3_CONTROL_PIPE</a>].epAddr, <a class="code" href="hid_8h.html#a2b422a95d6f43756111dea6b6a9230ff">bmREQ_HID_IN</a>, <a class="code" href="hid_8h.html#a73dbc093cd8c096054332fde410cd9ed">HID_REQUEST_GET_REPORT</a>, 0xF5, 0x03, 0x00, 8, 8, buf, NULL);</div>
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160;</div>
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <span class="keywordflow">for</span>(uint8_t i = 0; i &lt; 6; i++)</div>
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; bdaddr[5 - i] = buf[i + 2]; <span class="comment">// Copy into buffer reversed, so it is LSB first</span></div>
@ -582,7 +583,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; cmd_buf[3] = 0x00;</div>
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160;</div>
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; <span class="comment">// bmRequest = Host to device (0x00) | Class (0x20) | Interface (0x01) = 0x21, bRequest = Set Report (0x09), Report ID (0xF4), Report Type (Feature 0x03), interface (0x00), datalength, datalength, data)</span></div>
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#aa1873f41ae0da7c4568cfb7517560c48">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(<a class="code" href="class_p_s3_u_s_b.html#a3f43df159277003acdf7dd107bda27fd">bAddress</a>, <a class="code" href="class_p_s3_u_s_b.html#a394dbb0a59b587210e5958f08dac48f1">epInfo</a>[<a class="code" href="_p_s3_u_s_b_8h.html#ae6276fa555fe14995bee0713be663333">PS3_CONTROL_PIPE</a>].epAddr, <a class="code" href="_b_t_d_8h.html#a5bd4ea095da29635414952894bd527f5">bmREQ_HID_OUT</a>, <a class="code" href="_b_t_d_8h.html#aee05d40a014750b24a7e9967f6f389f4">HID_REQUEST_SET_REPORT</a>, 0xF4, 0x03, 0x00, 4, 4, cmd_buf, NULL);</div>
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#aa1873f41ae0da7c4568cfb7517560c48">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(<a class="code" href="class_p_s3_u_s_b.html#a3f43df159277003acdf7dd107bda27fd">bAddress</a>, <a class="code" href="class_p_s3_u_s_b.html#a394dbb0a59b587210e5958f08dac48f1">epInfo</a>[<a class="code" href="_p_s3_u_s_b_8h.html#ae6276fa555fe14995bee0713be663333">PS3_CONTROL_PIPE</a>].epAddr, <a class="code" href="hid_8h.html#a5bd4ea095da29635414952894bd527f5">bmREQ_HID_OUT</a>, <a class="code" href="hid_8h.html#aee05d40a014750b24a7e9967f6f389f4">HID_REQUEST_SET_REPORT</a>, 0xF4, 0x03, 0x00, 4, 4, cmd_buf, NULL);</div>
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160;}</div>
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;</div>
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160;<span class="comment">/* Playstation Move Controller commands */</span></div>
@ -606,7 +607,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00515"></a><span class="lineno"><a class="line" href="class_p_s3_u_s_b.html#a66d542c2cec73cefb3cdda36ff080e1a"> 515</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#a66d542c2cec73cefb3cdda36ff080e1a">PS3USB::moveSetRumble</a>(uint8_t rumble) {</div>
<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; <span class="keywordflow">if</span>(rumble &lt; 64 &amp;&amp; rumble != 0) <span class="comment">// The rumble value has to at least 64, or approximately 25% (64/255*100)</span></div>
<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nThe rumble value has to at least 64, or approximately 25%&quot;</span>), 0x80);</div>
<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(<a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot;\r\nThe rumble value has to at least 64, or approximately 25%&quot;</span>), 0x80);</div>
<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; writeBuf[6] = rumble; <span class="comment">// Set the rumble value into the write buffer</span></div>
<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160;</div>
@ -626,14 +627,14 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; buf[i + 1] = bdaddr[i];</div>
<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160;</div>
<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; <span class="comment">// bmRequest = Host to device (0x00) | Class (0x20) | Interface (0x01) = 0x21, bRequest = Set Report (0x09), Report ID (0x05), Report Type (Feature 0x03), interface (0x00), datalength, datalength, data</span></div>
<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#aa1873f41ae0da7c4568cfb7517560c48">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(<a class="code" href="class_p_s3_u_s_b.html#a3f43df159277003acdf7dd107bda27fd">bAddress</a>, <a class="code" href="class_p_s3_u_s_b.html#a394dbb0a59b587210e5958f08dac48f1">epInfo</a>[<a class="code" href="_p_s3_u_s_b_8h.html#ae6276fa555fe14995bee0713be663333">PS3_CONTROL_PIPE</a>].epAddr, <a class="code" href="_b_t_d_8h.html#a5bd4ea095da29635414952894bd527f5">bmREQ_HID_OUT</a>, <a class="code" href="_b_t_d_8h.html#aee05d40a014750b24a7e9967f6f389f4">HID_REQUEST_SET_REPORT</a>, 0x05, 0x03, 0x00, 11, 11, buf, NULL);</div>
<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#aa1873f41ae0da7c4568cfb7517560c48">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(<a class="code" href="class_p_s3_u_s_b.html#a3f43df159277003acdf7dd107bda27fd">bAddress</a>, <a class="code" href="class_p_s3_u_s_b.html#a394dbb0a59b587210e5958f08dac48f1">epInfo</a>[<a class="code" href="_p_s3_u_s_b_8h.html#ae6276fa555fe14995bee0713be663333">PS3_CONTROL_PIPE</a>].epAddr, <a class="code" href="hid_8h.html#a5bd4ea095da29635414952894bd527f5">bmREQ_HID_OUT</a>, <a class="code" href="hid_8h.html#aee05d40a014750b24a7e9967f6f389f4">HID_REQUEST_SET_REPORT</a>, 0x05, 0x03, 0x00, 11, 11, buf, NULL);</div>
<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160;}</div>
<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160;</div>
<div class="line"><a name="l00541"></a><span class="lineno"><a class="line" href="class_p_s3_u_s_b.html#a6c722086999db05d8abf5f1f26c19f77"> 541</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#a6c722086999db05d8abf5f1f26c19f77">PS3USB::getMoveBdaddr</a>(uint8_t *bdaddr) {</div>
<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; uint8_t buf[16];</div>
<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160;</div>
<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; <span class="comment">// bmRequest = Device to host (0x80) | Class (0x20) | Interface (0x01) = 0xA1, bRequest = Get Report (0x01), Report ID (0x04), Report Type (Feature 0x03), interface (0x00), datalength, datalength, data</span></div>
<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#aa1873f41ae0da7c4568cfb7517560c48">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(<a class="code" href="class_p_s3_u_s_b.html#a3f43df159277003acdf7dd107bda27fd">bAddress</a>, <a class="code" href="class_p_s3_u_s_b.html#a394dbb0a59b587210e5958f08dac48f1">epInfo</a>[<a class="code" href="_p_s3_u_s_b_8h.html#ae6276fa555fe14995bee0713be663333">PS3_CONTROL_PIPE</a>].epAddr, <a class="code" href="_p_s3_u_s_b_8h.html#a2b422a95d6f43756111dea6b6a9230ff">bmREQ_HID_IN</a>, <a class="code" href="hid_8h.html#a73dbc093cd8c096054332fde410cd9ed">HID_REQUEST_GET_REPORT</a>, 0x04, 0x03, 0x00, 16, 16, buf, NULL);</div>
<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#aa1873f41ae0da7c4568cfb7517560c48">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(<a class="code" href="class_p_s3_u_s_b.html#a3f43df159277003acdf7dd107bda27fd">bAddress</a>, <a class="code" href="class_p_s3_u_s_b.html#a394dbb0a59b587210e5958f08dac48f1">epInfo</a>[<a class="code" href="_p_s3_u_s_b_8h.html#ae6276fa555fe14995bee0713be663333">PS3_CONTROL_PIPE</a>].epAddr, <a class="code" href="hid_8h.html#a2b422a95d6f43756111dea6b6a9230ff">bmREQ_HID_IN</a>, <a class="code" href="hid_8h.html#a73dbc093cd8c096054332fde410cd9ed">HID_REQUEST_GET_REPORT</a>, 0x04, 0x03, 0x00, 16, 16, buf, NULL);</div>
<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160;</div>
<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; <span class="keywordflow">for</span>(uint8_t i = 0; i &lt; 6; i++)</div>
<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; bdaddr[i] = buf[10 + i];</div>
@ -644,7 +645,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160;</div>
<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; <span class="keywordflow">for</span>(uint8_t i = 0; i &lt; 3; i++) {</div>
<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; <span class="comment">// bmRequest = Device to host (0x80) | Class (0x20) | Interface (0x01) = 0xA1, bRequest = Get Report (0x01), Report ID (0x10), Report Type (Feature 0x03), interface (0x00), datalength, datalength, data</span></div>
<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#aa1873f41ae0da7c4568cfb7517560c48">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(<a class="code" href="class_p_s3_u_s_b.html#a3f43df159277003acdf7dd107bda27fd">bAddress</a>, <a class="code" href="class_p_s3_u_s_b.html#a394dbb0a59b587210e5958f08dac48f1">epInfo</a>[<a class="code" href="_p_s3_u_s_b_8h.html#ae6276fa555fe14995bee0713be663333">PS3_CONTROL_PIPE</a>].epAddr, <a class="code" href="_p_s3_u_s_b_8h.html#a2b422a95d6f43756111dea6b6a9230ff">bmREQ_HID_IN</a>, <a class="code" href="hid_8h.html#a73dbc093cd8c096054332fde410cd9ed">HID_REQUEST_GET_REPORT</a>, 0x10, 0x03, 0x00, 49, 49, buf, NULL);</div>
<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#aa1873f41ae0da7c4568cfb7517560c48">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(<a class="code" href="class_p_s3_u_s_b.html#a3f43df159277003acdf7dd107bda27fd">bAddress</a>, <a class="code" href="class_p_s3_u_s_b.html#a394dbb0a59b587210e5958f08dac48f1">epInfo</a>[<a class="code" href="_p_s3_u_s_b_8h.html#ae6276fa555fe14995bee0713be663333">PS3_CONTROL_PIPE</a>].epAddr, <a class="code" href="hid_8h.html#a2b422a95d6f43756111dea6b6a9230ff">bmREQ_HID_IN</a>, <a class="code" href="hid_8h.html#a73dbc093cd8c096054332fde410cd9ed">HID_REQUEST_GET_REPORT</a>, 0x10, 0x03, 0x00, 49, 49, buf, NULL);</div>
<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160;</div>
<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; <span class="keywordflow">for</span>(byte j = 0; j &lt; 49; j++)</div>
<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; data[49 * i + j] = buf[j];</div>
@ -666,34 +667,40 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="ttc" id="class_address_pool_html"><div class="ttname"><a href="class_address_pool.html">AddressPool</a></div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00083">address.h:83</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a1448bc51226a9b63f2937630da6bd48f"><div class="ttname"><a href="class_p_s3_u_s_b.html#a1448bc51226a9b63f2937630da6bd48f">PS3USB::getBdaddr</a></div><div class="ttdeci">void getBdaddr(uint8_t *bdaddr)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00476">PS3USB.cpp:476</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aeae37160f3a65bb54a91fb5efb4f971924"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeae37160f3a65bb54a91fb5efb4f971924">Unplugged</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00117">PS3Enums.h:117</a></div></div>
<div class="ttc" id="version__helper_8h_html_a73cf3e57e32321cb193b3cc4b041cc6c"><div class="ttname"><a href="version__helper_8h.html#a73cf3e57e32321cb193b3cc4b041cc6c">pgm_read_dword</a></div><div class="ttdeci">#define pgm_read_dword(addr)</div><div class="ttdef"><b>Definition:</b> <a href="version__helper_8h_source.html#l00188">version_helper.h:188</a></div></div>
<div class="ttc" id="struct_usb_device_html_a410d39fb7758157f57794335e990ed02"><div class="ttname"><a href="struct_usb_device.html#a410d39fb7758157f57794335e990ed02">UsbDevice::epinfo</a></div><div class="ttdeci">EpInfo * epinfo</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00076">address.h:76</a></div></div>
<div class="ttc" id="struct_usb_device_html_a86a815577ad7883437d3ca72b32b8e8a"><div class="ttname"><a href="struct_usb_device.html#a86a815577ad7883437d3ca72b32b8e8a">UsbDevice::lowspeed</a></div><div class="ttdeci">bool lowspeed</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00079">address.h:79</a></div></div>
<div class="ttc" id="_usb_core_8h_html_af192c59cafe2192ad802b22e6dbc077d"><div class="ttname"><a href="_usb_core_8h.html#af192c59cafe2192ad802b22e6dbc077d">USB_ERROR_EPINFO_IS_NULL</a></div><div class="ttdeci">#define USB_ERROR_EPINFO_IS_NULL</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00081">UsbCore.h:81</a></div></div>
<div class="ttc" id="_usb_core_8h_html_af192c59cafe2192ad802b22e6dbc077d"><div class="ttname"><a href="_usb_core_8h.html#af192c59cafe2192ad802b22e6dbc077d">USB_ERROR_EPINFO_IS_NULL</a></div><div class="ttdeci">#define USB_ERROR_EPINFO_IS_NULL</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00083">UsbCore.h:83</a></div></div>
<div class="ttc" id="version__helper_8h_html_ae74941b597bdd8ffb5c35f45b636946b"><div class="ttname"><a href="version__helper_8h.html#ae74941b597bdd8ffb5c35f45b636946b">strcpy_P</a></div><div class="ttdeci">#define strcpy_P(dest, src)</div><div class="ttdef"><b>Definition:</b> <a href="version__helper_8h_source.html#l00112">version_helper.h:112</a></div></div>
<div class="ttc" id="struct_ep_info_html_a3a5b1c017a034cd9e06e76729e727c46"><div class="ttname"><a href="struct_ep_info.html#a3a5b1c017a034cd9e06e76729e727c46">EpInfo::bmNakPower</a></div><div class="ttdeci">uint8_t bmNakPower</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00042">address.h:42</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_aa0aac5ea016db4cd6736a15e9d6eb41b"><div class="ttname"><a href="class_p_s3_u_s_b.html#aa0aac5ea016db4cd6736a15e9d6eb41b">PS3USB::setLedRaw</a></div><div class="ttdeci">void setLedRaw(uint8_t value)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00439">PS3USB.cpp:439</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a54b2dcaa1e9acef83de2376b50c7ff09"><div class="ttname"><a href="class_p_s3_u_s_b.html#a54b2dcaa1e9acef83de2376b50c7ff09">PS3USB::PS3NavigationConnected</a></div><div class="ttdeci">bool PS3NavigationConnected</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00273">PS3USB.h:273</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_ac912fd49bd2a415206df7a8c2b672ea4"><div class="ttname"><a href="class_p_s3_u_s_b.html#ac912fd49bd2a415206df7a8c2b672ea4">PS3USB::setLedOff</a></div><div class="ttdeci">void setLedOff()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00224">PS3USB.h:224</a></div></div>
<div class="ttc" id="_p_s3_u_s_b_8h_html_aca3cbaad8732d9185bb9bda1a32cd18d"><div class="ttname"><a href="_p_s3_u_s_b_8h.html#aca3cbaad8732d9185bb9bda1a32cd18d">PS3_INPUT_PIPE</a></div><div class="ttdeci">#define PS3_INPUT_PIPE</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00033">PS3USB.h:33</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a54b2dcaa1e9acef83de2376b50c7ff09"><div class="ttname"><a href="class_p_s3_u_s_b.html#a54b2dcaa1e9acef83de2376b50c7ff09">PS3USB::PS3NavigationConnected</a></div><div class="ttdeci">bool PS3NavigationConnected</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00264">PS3USB.h:264</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_ac912fd49bd2a415206df7a8c2b672ea4"><div class="ttname"><a href="class_p_s3_u_s_b.html#ac912fd49bd2a415206df7a8c2b672ea4">PS3USB::setLedOff</a></div><div class="ttdeci">void setLedOff()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00215">PS3USB.h:215</a></div></div>
<div class="ttc" id="_p_s3_u_s_b_8h_html_aca3cbaad8732d9185bb9bda1a32cd18d"><div class="ttname"><a href="_p_s3_u_s_b_8h.html#aca3cbaad8732d9185bb9bda1a32cd18d">PS3_INPUT_PIPE</a></div><div class="ttdeci">#define PS3_INPUT_PIPE</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00031">PS3USB.h:31</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a70df64e026046bc352983127b7ae2cf0adac6477842247cab1a8c02c65f431b44"><div class="ttname"><a href="controller_enums_8h.html#a70df64e026046bc352983127b7ae2cf0adac6477842247cab1a8c02c65f431b44">LED1</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00029">controllerEnums.h:29</a></div></div>
<div class="ttc" id="struct_usb_device_html"><div class="ttname"><a href="struct_usb_device.html">UsbDevice</a></div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00075">address.h:75</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea71c14aef95c9953673a880e2633fa209"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea71c14aef95c9953673a880e2633fa209">CableRumble</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00135">PS3Enums.h:135</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_afc242b8a1b867f79c49ad78e3a47b37f"><div class="ttname"><a href="_b_t_d_8h.html#afc242b8a1b867f79c49ad78e3a47b37f">PS3MOVE_PID</a></div><div class="ttdeci">#define PS3MOVE_PID</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00027">BTD.h:27</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_afc242b8a1b867f79c49ad78e3a47b37f"><div class="ttname"><a href="_b_t_d_8h.html#afc242b8a1b867f79c49ad78e3a47b37f">PS3MOVE_PID</a></div><div class="ttdeci">#define PS3MOVE_PID</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00028">BTD.h:28</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_ad50962ff6194746c076084ec0714605a"><div class="ttname"><a href="class_p_s3_u_s_b.html#ad50962ff6194746c076084ec0714605a">PS3USB::setBdaddr</a></div><div class="ttdeci">void setBdaddr(uint8_t *bdaddr)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00463">PS3USB.cpp:463</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a5750c5448bf1ec73a7669ca2e4799c98"><div class="ttname"><a href="class_p_s3_u_s_b.html#a5750c5448bf1ec73a7669ca2e4799c98">PS3USB::Release</a></div><div class="ttdeci">virtual uint8_t Release()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00261">PS3USB.cpp:261</a></div></div>
<div class="ttc" id="hid_8h_html_aee05d40a014750b24a7e9967f6f389f4"><div class="ttname"><a href="hid_8h.html#aee05d40a014750b24a7e9967f6f389f4">HID_REQUEST_SET_REPORT</a></div><div class="ttdeci">#define HID_REQUEST_SET_REPORT</div><div class="ttdef"><b>Definition:</b> <a href="hid_8h_source.html#l00072">hid.h:72</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a5750c5448bf1ec73a7669ca2e4799c98"><div class="ttname"><a href="class_p_s3_u_s_b.html#a5750c5448bf1ec73a7669ca2e4799c98">PS3USB::Release</a></div><div class="ttdeci">uint8_t Release()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00261">PS3USB.cpp:261</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea730728c9aac83393ac83f96a8125b8bb"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea730728c9aac83393ac83f96a8125b8bb">Bluetooth</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00138">PS3Enums.h:138</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a89df07d76648a48c1f0ef8fd9604c201"><div class="ttname"><a href="class_p_s3_u_s_b.html#a89df07d76648a48c1f0ef8fd9604c201">PS3USB::getButtonPress</a></div><div class="ttdeci">bool getButtonPress(ButtonEnum b)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00315">PS3USB.cpp:315</a></div></div>
<div class="ttc" id="_p_s3_u_s_b_8h_html"><div class="ttname"><a href="_p_s3_u_s_b_8h.html">PS3USB.h</a></div></div>
<div class="ttc" id="_p_s3_u_s_b_8h_html_a0da271fcb10181b3ce15aefe76c259bb"><div class="ttname"><a href="_p_s3_u_s_b_8h.html#a0da271fcb10181b3ce15aefe76c259bb">PS3_OUTPUT_PIPE</a></div><div class="ttdeci">#define PS3_OUTPUT_PIPE</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00032">PS3USB.h:32</a></div></div>
<div class="ttc" id="_p_s3_u_s_b_8h_html_a0da271fcb10181b3ce15aefe76c259bb"><div class="ttname"><a href="_p_s3_u_s_b_8h.html#a0da271fcb10181b3ce15aefe76c259bb">PS3_OUTPUT_PIPE</a></div><div class="ttdeci">#define PS3_OUTPUT_PIPE</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00030">PS3USB.h:30</a></div></div>
<div class="ttc" id="message_8h_html_a22695bdc18ebde4a87dbe8633cb39593"><div class="ttname"><a href="message_8h.html#a22695bdc18ebde4a87dbe8633cb39593">NotifyFail</a></div><div class="ttdeci">#define NotifyFail(...)</div><div class="ttdef"><b>Definition:</b> <a href="message_8h_source.html#l00055">message.h:55</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a89aa4233f3eeeb99693a099da527ec28"><div class="ttname"><a href="class_p_s3_u_s_b.html#a89aa4233f3eeeb99693a099da527ec28">PS3USB::PS3MoveConnected</a></div><div class="ttdeci">bool PS3MoveConnected</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00271">PS3USB.h:271</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a89aa4233f3eeeb99693a099da527ec28"><div class="ttname"><a href="class_p_s3_u_s_b.html#a89aa4233f3eeeb99693a099da527ec28">PS3USB::PS3MoveConnected</a></div><div class="ttdeci">bool PS3MoveConnected</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00262">PS3USB.h:262</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a34dad8f0a0927471137c403216597093"><div class="ttname"><a href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093">AnalogHatEnum</a></div><div class="ttdeci">AnalogHatEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00151">controllerEnums.h:151</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a00d5030559c481763282483889597d51a4a709497e95c67840807ab9e99af2bbc"><div class="ttname"><a href="controller_enums_8h.html#a00d5030559c481763282483889597d51a4a709497e95c67840807ab9e99af2bbc">aZ</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00168">controllerEnums.h:168</a></div></div>
<div class="ttc" id="class_u_s_b_html_a31e2c132ec32ffdde94dff72be87c378"><div class="ttname"><a href="class_u_s_b.html#a31e2c132ec32ffdde94dff72be87c378">USB::setConf</a></div><div class="ttdeci">uint8_t setConf(uint8_t addr, uint8_t ep, uint8_t conf_value)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00805">Usb.cpp:805</a></div></div>
<div class="ttc" id="class_u_s_b_html_a31e2c132ec32ffdde94dff72be87c378"><div class="ttname"><a href="class_u_s_b.html#a31e2c132ec32ffdde94dff72be87c378">USB::setConf</a></div><div class="ttdeci">uint8_t setConf(uint8_t addr, uint8_t ep, uint8_t conf_value)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00808">Usb.cpp:808</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea82084136e62c38642986b05419b4e734"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea82084136e62c38642986b05419b4e734">Shutdown</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00121">PS3Enums.h:121</a></div></div>
<div class="ttc" id="hid_8h_html_a5bd4ea095da29635414952894bd527f5"><div class="ttname"><a href="hid_8h.html#a5bd4ea095da29635414952894bd527f5">bmREQ_HID_OUT</a></div><div class="ttdeci">#define bmREQ_HID_OUT</div><div class="ttdef"><b>Definition:</b> <a href="hid_8h_source.html#l00063">hid.h:63</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea5a86ae1482947377a116685c168d1773"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea5a86ae1482947377a116685c168d1773">Charging</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00119">PS3Enums.h:119</a></div></div>
<div class="ttc" id="usb__ch9_8h_html_ac80ae240a4a703b554aa8edee201495f"><div class="ttname"><a href="usb__ch9_8h.html#ac80ae240a4a703b554aa8edee201495f">USB_TRANSFER_TYPE_INTERRUPT</a></div><div class="ttdeci">#define USB_TRANSFER_TYPE_INTERRUPT</div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00086">usb_ch9.h:86</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161ae"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161ae">StatusEnum</a></div><div class="ttdeci">StatusEnum</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00113">PS3Enums.h:113</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a6c722086999db05d8abf5f1f26c19f77"><div class="ttname"><a href="class_p_s3_u_s_b.html#a6c722086999db05d8abf5f1f26c19f77">PS3USB::getMoveBdaddr</a></div><div class="ttdeci">void getMoveBdaddr(uint8_t *bdaddr)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00541">PS3USB.cpp:541</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a5bb06f989db583d290ba79642d37c514"><div class="ttname"><a href="_b_t_d_8h.html#a5bb06f989db583d290ba79642d37c514">PS3_VID</a></div><div class="ttdeci">#define PS3_VID</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00024">BTD.h:24</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a5bb06f989db583d290ba79642d37c514"><div class="ttname"><a href="_b_t_d_8h.html#a5bb06f989db583d290ba79642d37c514">PS3_VID</a></div><div class="ttdeci">#define PS3_VID</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00025">BTD.h:25</a></div></div>
<div class="ttc" id="version__helper_8h_html_a48c60b057902adf805797f183286728d"><div class="ttname"><a href="version__helper_8h.html#a48c60b057902adf805797f183286728d">pgm_read_byte</a></div><div class="ttdeci">#define pgm_read_byte(addr)</div><div class="ttdef"><b>Definition:</b> <a href="version__helper_8h_source.html#l00182">version_helper.h:182</a></div></div>
<div class="ttc" id="message_8h_html_ae65e02f44cfdc490efd1b33f9882fbbd"><div class="ttname"><a href="message_8h.html#ae65e02f44cfdc490efd1b33f9882fbbd">NotifyFailGetDevDescr</a></div><div class="ttdeci">#define NotifyFailGetDevDescr(...)</div><div class="ttdef"><b>Definition:</b> <a href="message_8h_source.html#l00050">message.h:50</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a6844111657a882b1997ca30d2649bd1c"><div class="ttname"><a href="class_p_s3_u_s_b.html#a6844111657a882b1997ca30d2649bd1c">PS3USB::getAnalogButton</a></div><div class="ttdeci">uint8_t getAnalogButton(ButtonEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00326">PS3USB.cpp:326</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a00d5030559c481763282483889597d51aba377ea700e0cdf1c61034ef60b259bd"><div class="ttname"><a href="controller_enums_8h.html#a00d5030559c481763282483889597d51aba377ea700e0cdf1c61034ef60b259bd">aY</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00168">controllerEnums.h:168</a></div></div>
@ -701,17 +708,17 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="ttc" id="class_u_s_b_html_a6c3ba3f7e6dccb450267011ce783d7ea"><div class="ttname"><a href="class_u_s_b.html#a6c3ba3f7e6dccb450267011ce783d7ea">USB::setEpInfoEntry</a></div><div class="ttdeci">uint8_t setEpInfoEntry(uint8_t addr, uint8_t epcount, EpInfo *eprecord_ptr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00064">Usb.cpp:64</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_aaa1e66d7397be6364d4f76749cbaad5a"><div class="ttname"><a href="class_p_s3_u_s_b.html#aaa1e66d7397be6364d4f76749cbaad5a">PS3USB::setRumbleOff</a></div><div class="ttdeci">void setRumbleOff()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00411">PS3USB.cpp:411</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a90c28adabe5fc5da343fe8a5ac9ca6de"><div class="ttname"><a href="_p_s3_enums_8h.html#a90c28adabe5fc5da343fe8a5ac9ca6de">PS3_BUTTONS</a></div><div class="ttdeci">const uint32_t PS3_BUTTONS[]</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00062">PS3Enums.h:62</a></div></div>
<div class="ttc" id="_p_s3_u_s_b_8h_html_abcb805b13bfd36145e252b0633bbcfc0"><div class="ttname"><a href="_p_s3_u_s_b_8h.html#abcb805b13bfd36145e252b0633bbcfc0">EP_MAXPKTSIZE</a></div><div class="ttdeci">#define EP_MAXPKTSIZE</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00025">PS3USB.h:25</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a0dad8754ff18d0c375c2569791d50876"><div class="ttname"><a href="class_p_s3_u_s_b.html#a0dad8754ff18d0c375c2569791d50876">PS3USB::PS3Connected</a></div><div class="ttdeci">bool PS3Connected</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00265">PS3USB.h:265</a></div></div>
<div class="ttc" id="_p_s3_u_s_b_8h_html_abcb805b13bfd36145e252b0633bbcfc0"><div class="ttname"><a href="_p_s3_u_s_b_8h.html#abcb805b13bfd36145e252b0633bbcfc0">EP_MAXPKTSIZE</a></div><div class="ttdeci">#define EP_MAXPKTSIZE</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00026">PS3USB.h:26</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a0dad8754ff18d0c375c2569791d50876"><div class="ttname"><a href="class_p_s3_u_s_b.html#a0dad8754ff18d0c375c2569791d50876">PS3USB::PS3Connected</a></div><div class="ttdeci">bool PS3Connected</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00256">PS3USB.h:256</a></div></div>
<div class="ttc" id="class_address_pool_html_a15fde13223dcb1da89305ad229763562"><div class="ttname"><a href="class_address_pool.html#a15fde13223dcb1da89305ad229763562">AddressPool::FreeAddress</a></div><div class="ttdeci">virtual void FreeAddress(uint8_t addr)=0</div></div>
<div class="ttc" id="controller_enums_8h_html_a70df64e026046bc352983127b7ae2cf0"><div class="ttname"><a href="controller_enums_8h.html#a70df64e026046bc352983127b7ae2cf0">LEDEnum</a></div><div class="ttdeci">LEDEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00027">controllerEnums.h:27</a></div></div>
<div class="ttc" id="struct_ep_info_html_a1dea928517c961235eef7b0876e69f10"><div class="ttname"><a href="struct_ep_info.html#a1dea928517c961235eef7b0876e69f10">EpInfo::epAttribs</a></div><div class="ttdeci">uint8_t epAttribs</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00037">address.h:37</a></div></div>
<div class="ttc" id="class_u_s_b_html_a636695a5c3d35cd6b9e31c54edfacd7c"><div class="ttname"><a href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">USB::ctrlReq</a></div><div class="ttdeci">uint8_t ctrlReq(uint8_t addr, uint8_t ep, uint8_t bmReqType, uint8_t bRequest, uint8_t wValLo, uint8_t wValHi, uint16_t wInd, uint16_t total, uint16_t nbytes, uint8_t *dataptr, USBReadParser *p)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00126">Usb.cpp:126</a></div></div>
<div class="ttc" id="class_address_pool_html_aa92d7e8f0f515340ae2dc1679b627056"><div class="ttname"><a href="class_address_pool.html#aa92d7e8f0f515340ae2dc1679b627056">AddressPool::GetUsbDevicePtr</a></div><div class="ttdeci">virtual UsbDevice * GetUsbDevicePtr(uint8_t addr)=0</div></div>
<div class="ttc" id="message_8h_html_a27117e124c5d66d5512fe8d494fe6338"><div class="ttname"><a href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a></div><div class="ttdeci">#define Notify(...)</div><div class="ttdef"><b>Definition:</b> <a href="message_8h_source.html#l00044">message.h:44</a></div></div>
<div class="ttc" id="_p_s3_u_s_b_8h_html_ae6276fa555fe14995bee0713be663333"><div class="ttname"><a href="_p_s3_u_s_b_8h.html#ae6276fa555fe14995bee0713be663333">PS3_CONTROL_PIPE</a></div><div class="ttdeci">#define PS3_CONTROL_PIPE</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00031">PS3USB.h:31</a></div></div>
<div class="ttc" id="_p_s3_u_s_b_8h_html_ae6276fa555fe14995bee0713be663333"><div class="ttname"><a href="_p_s3_u_s_b_8h.html#ae6276fa555fe14995bee0713be663333">PS3_CONTROL_PIPE</a></div><div class="ttdeci">#define PS3_CONTROL_PIPE</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00029">PS3USB.h:29</a></div></div>
<div class="ttc" id="controller_enums_8h_html_ab195293384292950ebc2166bfe360fd1"><div class="ttname"><a href="controller_enums_8h.html#ab195293384292950ebc2166bfe360fd1">RumbleEnum</a></div><div class="ttdeci">RumbleEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00066">controllerEnums.h:66</a></div></div>
<div class="ttc" id="class_u_s_b_html_a3aea534daed66b5606fa798df7ad3c47"><div class="ttname"><a href="class_u_s_b.html#a3aea534daed66b5606fa798df7ad3c47">USB::setAddr</a></div><div class="ttdeci">uint8_t setAddr(uint8_t oldaddr, uint8_t ep, uint8_t newaddr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00796">Usb.cpp:796</a></div></div>
<div class="ttc" id="class_u_s_b_html_a3aea534daed66b5606fa798df7ad3c47"><div class="ttname"><a href="class_u_s_b.html#a3aea534daed66b5606fa798df7ad3c47">USB::setAddr</a></div><div class="ttdeci">uint8_t setAddr(uint8_t oldaddr, uint8_t ep, uint8_t newaddr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00799">Usb.cpp:799</a></div></div>
<div class="ttc" id="settings_8h_html_a11b6e9d1bc9facf0772bda8ad763530c"><div class="ttname"><a href="settings_8h.html#a11b6e9d1bc9facf0772bda8ad763530c">USB_HOST_SERIAL</a></div><div class="ttdeci">#define USB_HOST_SERIAL</div><div class="ttdef"><b>Definition:</b> <a href="settings_8h_source.html#l00034">settings.h:34</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a87db50031f7e265baaa82365c14befae"><div class="ttname"><a href="class_p_s3_u_s_b.html#a87db50031f7e265baaa82365c14befae">PS3USB::setLedToggle</a></div><div class="ttdeci">void setLedToggle(LEDEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00458">PS3USB.cpp:458</a></div></div>
<div class="ttc" id="struct_ep_info_html_a9f92be74c75c037b39e2cae1eb49b89b"><div class="ttname"><a href="struct_ep_info.html#a9f92be74c75c037b39e2cae1eb49b89b">EpInfo::epAddr</a></div><div class="ttdeci">uint8_t epAddr</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00033">address.h:33</a></div></div>
@ -720,8 +727,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="ttc" id="class_p_s3_u_s_b_html_ae9cfdaad3e54dbc271519e22082399c7"><div class="ttname"><a href="class_p_s3_u_s_b.html#ae9cfdaad3e54dbc271519e22082399c7">PS3USB::moveSetBulb</a></div><div class="ttdeci">void moveSetBulb(uint8_t r, uint8_t g, uint8_t b)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00502">PS3USB.cpp:502</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea96cc2a0090ada376561406d48d1f2089"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea96cc2a0090ada376561406d48d1f2089">Dying</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00122">PS3Enums.h:122</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea7a352a3dd2accc1dd65a4538c3754ee8"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea7a352a3dd2accc1dd65a4538c3754ee8">Low</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00123">PS3Enums.h:123</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a0083545cb99fb8786e60281fe7a9050d"><div class="ttname"><a href="class_p_s3_u_s_b.html#a0083545cb99fb8786e60281fe7a9050d">PS3USB::Init</a></div><div class="ttdeci">virtual uint8_t Init(uint8_t parent, uint8_t port, bool lowspeed)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00046">PS3USB.cpp:46</a></div></div>
<div class="ttc" id="_p_s3_u_s_b_8h_html_ad4d26e1c566064f2259faf65f0858b6e"><div class="ttname"><a href="_p_s3_u_s_b_8h.html#ad4d26e1c566064f2259faf65f0858b6e">EP_INTERRUPT</a></div><div class="ttdeci">#define EP_INTERRUPT</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00028">PS3USB.h:28</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a0083545cb99fb8786e60281fe7a9050d"><div class="ttname"><a href="class_p_s3_u_s_b.html#a0083545cb99fb8786e60281fe7a9050d">PS3USB::Init</a></div><div class="ttdeci">uint8_t Init(uint8_t parent, uint8_t port, bool lowspeed)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00046">PS3USB.cpp:46</a></div></div>
<div class="ttc" id="struct_ep_info_html"><div class="ttname"><a href="struct_ep_info.html">EpInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00032">address.h:32</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a2c6c24a4b63d9a34926fb35d6b49cd17"><div class="ttname"><a href="_p_s3_enums_8h.html#a2c6c24a4b63d9a34926fb35d6b49cd17">MOVE_REPORT_BUFFER_SIZE</a></div><div class="ttdeci">#define MOVE_REPORT_BUFFER_SIZE</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00040">PS3Enums.h:40</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a1328a3f017f8d010cd0559c084981021"><div class="ttname"><a href="class_p_s3_u_s_b.html#a1328a3f017f8d010cd0559c084981021">PS3USB::printStatusString</a></div><div class="ttdeci">void printStatusString()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00365">PS3USB.cpp:365</a></div></div>
@ -729,55 +735,55 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="ttc" id="class_u_s_b_html_affbc018973a588995457d535b0ac7ee7"><div class="ttname"><a href="class_u_s_b.html#affbc018973a588995457d535b0ac7ee7">USB::outTransfer</a></div><div class="ttdeci">uint8_t outTransfer(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t *data)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00292">Usb.cpp:292</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a7c7824a10a9ffa8fea85602fcf4d84e6ae3a34b760fa4a6854f28852e91d8bb47"><div class="ttname"><a href="controller_enums_8h.html#a7c7824a10a9ffa8fea85602fcf4d84e6ae3a34b760fa4a6854f28852e91d8bb47">Pitch</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00200">controllerEnums.h:200</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fd"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a></div><div class="ttdeci">ButtonEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00072">controllerEnums.h:72</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_aee05d40a014750b24a7e9967f6f389f4"><div class="ttname"><a href="_b_t_d_8h.html#aee05d40a014750b24a7e9967f6f389f4">HID_REQUEST_SET_REPORT</a></div><div class="ttdeci">#define HID_REQUEST_SET_REPORT</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00039">BTD.h:39</a></div></div>
<div class="ttc" id="hid_8h_html_a73dbc093cd8c096054332fde410cd9ed"><div class="ttname"><a href="hid_8h.html#a73dbc093cd8c096054332fde410cd9ed">HID_REQUEST_GET_REPORT</a></div><div class="ttdeci">#define HID_REQUEST_GET_REPORT</div><div class="ttdef"><b>Definition:</b> <a href="hid_8h_source.html#l00069">hid.h:69</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a7ba142ed3f585d034f29cc2c36fba0e9"><div class="ttname"><a href="_p_s3_enums_8h.html#a7ba142ed3f585d034f29cc2c36fba0e9">PS3_LEDS</a></div><div class="ttdeci">const uint8_t PS3_LEDS[]</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00043">PS3Enums.h:43</a></div></div>
<div class="ttc" id="class_address_pool_html_a97df4ef42e50960ce2165f4cdb53e590"><div class="ttname"><a href="class_address_pool.html#a97df4ef42e50960ce2165f4cdb53e590">AddressPool::AllocAddress</a></div><div class="ttdeci">virtual uint8_t AllocAddress(uint8_t parent, bool is_hub=false, uint8_t port=0)=0</div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aeaff01ce39b42bec30132b0fc53c882387"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeaff01ce39b42bec30132b0fc53c882387">Plugged</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00116">PS3Enums.h:116</a></div></div>
<div class="ttc" id="struct_ep_info_html_ac85bff70ad0e5d71e50cb501f4d8caf3"><div class="ttname"><a href="struct_ep_info.html#ac85bff70ad0e5d71e50cb501f4d8caf3">EpInfo::bmSndToggle</a></div><div class="ttdeci">uint8_t bmSndToggle</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00040">address.h:40</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a0de554815afcb66f57d8ac0045f19f2c"><div class="ttname"><a href="class_p_s3_u_s_b.html#a0de554815afcb66f57d8ac0045f19f2c">PS3USB::getAnalogHat</a></div><div class="ttdeci">uint8_t getAnalogHat(AnalogHatEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00330">PS3USB.cpp:330</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a44416ff64fc0e3691f98addac13d4595"><div class="ttname"><a href="_usb_core_8h.html#a44416ff64fc0e3691f98addac13d4595">USB_ERROR_CLASS_INSTANCE_ALREADY_IN_USE</a></div><div class="ttdeci">#define USB_ERROR_CLASS_INSTANCE_ALREADY_IN_USE</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00083">UsbCore.h:83</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_aa1873f41ae0da7c4568cfb7517560c48"><div class="ttname"><a href="class_p_s3_u_s_b.html#aa1873f41ae0da7c4568cfb7517560c48">PS3USB::pUsb</a></div><div class="ttdeci">USB * pUsb</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00277">PS3USB.h:277</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a44416ff64fc0e3691f98addac13d4595"><div class="ttname"><a href="_usb_core_8h.html#a44416ff64fc0e3691f98addac13d4595">USB_ERROR_CLASS_INSTANCE_ALREADY_IN_USE</a></div><div class="ttdeci">#define USB_ERROR_CLASS_INSTANCE_ALREADY_IN_USE</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00085">UsbCore.h:85</a></div></div>
<div class="ttc" id="version__helper_8h_html_a73809107539df84eaf01f6a4dea4fbff"><div class="ttname"><a href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a></div><div class="ttdeci">#define PSTR(str)</div><div class="ttdef"><b>Definition:</b> <a href="version__helper_8h_source.html#l00047">version_helper.h:47</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_aa1873f41ae0da7c4568cfb7517560c48"><div class="ttname"><a href="class_p_s3_u_s_b.html#aa1873f41ae0da7c4568cfb7517560c48">PS3USB::pUsb</a></div><div class="ttdeci">USB * pUsb</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00268">PS3USB.h:268</a></div></div>
<div class="ttc" id="controller_enums_8h_html_aac6fa7b0395b95cc528deaad0ce884a2"><div class="ttname"><a href="controller_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2">ColorsEnum</a></div><div class="ttdeci">ColorsEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00045">controllerEnums.h:45</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_ac306dfe7b0e1b3a3e9bb357aa7552dec"><div class="ttname"><a href="_p_s3_enums_8h.html#ac306dfe7b0e1b3a3e9bb357aa7552dec">PS3_ANALOG_BUTTONS</a></div><div class="ttdeci">const uint8_t PS3_ANALOG_BUTTONS[]</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00092">PS3Enums.h:92</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a70df64e026046bc352983127b7ae2cf0aac132f2982b98bcaa3445e535a03ff75"><div class="ttname"><a href="controller_enums_8h.html#a70df64e026046bc352983127b7ae2cf0aac132f2982b98bcaa3445e535a03ff75">OFF</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00028">controllerEnums.h:28</a></div></div>
<div class="ttc" id="address_8h_html_a660e8da9c1167a8450aef91c5c03761d"><div class="ttname"><a href="address_8h.html#a660e8da9c1167a8450aef91c5c03761d">USB_NAK_NOWAIT</a></div><div class="ttdeci">#define USB_NAK_NOWAIT</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00029">address.h:29</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a7c7824a10a9ffa8fea85602fcf4d84e6"><div class="ttname"><a href="controller_enums_8h.html#a7c7824a10a9ffa8fea85602fcf4d84e6">AngleEnum</a></div><div class="ttdeci">AngleEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00199">controllerEnums.h:199</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_ae5c5316b4c8dae5927b2a2721a28f6c0"><div class="ttname"><a href="class_p_s3_u_s_b.html#ae5c5316b4c8dae5927b2a2721a28f6c0">PS3USB::getAngle</a></div><div class="ttdeci">double getAngle(AngleEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00338">PS3USB.cpp:338</a></div></div>
<div class="ttc" id="_usb_core_8h_html_afe2fedb4b0ccc89a688c0b4b59691ce0"><div class="ttname"><a href="_usb_core_8h.html#afe2fedb4b0ccc89a688c0b4b59691ce0">USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL</a></div><div class="ttdeci">#define USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00080">UsbCore.h:80</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a0ae276efa5e73a4da658c714e70402c0"><div class="ttname"><a href="_b_t_d_8h.html#a0ae276efa5e73a4da658c714e70402c0">PS3_PID</a></div><div class="ttdeci">#define PS3_PID</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00025">BTD.h:25</a></div></div>
<div class="ttc" id="_usb_core_8h_html_afe2fedb4b0ccc89a688c0b4b59691ce0"><div class="ttname"><a href="_usb_core_8h.html#afe2fedb4b0ccc89a688c0b4b59691ce0">USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL</a></div><div class="ttdeci">#define USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00082">UsbCore.h:82</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a0ae276efa5e73a4da658c714e70402c0"><div class="ttname"><a href="_b_t_d_8h.html#a0ae276efa5e73a4da658c714e70402c0">PS3_PID</a></div><div class="ttdeci">#define PS3_PID</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00026">BTD.h:26</a></div></div>
<div class="ttc" id="class_u_s_b_html_ad75d64f648b102fab2bd75e53e1324a4"><div class="ttname"><a href="class_u_s_b.html#ad75d64f648b102fab2bd75e53e1324a4">USB::inTransfer</a></div><div class="ttdeci">uint8_t inTransfer(uint8_t addr, uint8_t ep, uint16_t *nbytesptr, uint8_t *data)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00206">Usb.cpp:206</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a54903b410722a45f8246653cd4d00632"><div class="ttname"><a href="_b_t_d_8h.html#a54903b410722a45f8246653cd4d00632">PS3NAVIGATION_PID</a></div><div class="ttdeci">#define PS3NAVIGATION_PID</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00026">BTD.h:26</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a54903b410722a45f8246653cd4d00632"><div class="ttname"><a href="_b_t_d_8h.html#a54903b410722a45f8246653cd4d00632">PS3NAVIGATION_PID</a></div><div class="ttdeci">#define PS3NAVIGATION_PID</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00027">BTD.h:27</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a66d542c2cec73cefb3cdda36ff080e1a"><div class="ttname"><a href="class_p_s3_u_s_b.html#a66d542c2cec73cefb3cdda36ff080e1a">PS3USB::moveSetRumble</a></div><div class="ttdeci">void moveSetRumble(uint8_t rumble)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00515">PS3USB.cpp:515</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a9068e2a036012614c0db163830cbcf00"><div class="ttname"><a href="class_p_s3_u_s_b.html#a9068e2a036012614c0db163830cbcf00">PS3USB::Poll</a></div><div class="ttdeci">virtual uint8_t Poll()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00271">PS3USB.cpp:271</a></div></div>
<div class="ttc" id="_usb_core_8h_html_ae9e139d0fd29bb0b3e7afad2f76cd589"><div class="ttname"><a href="_usb_core_8h.html#ae9e139d0fd29bb0b3e7afad2f76cd589">USB_DEV_CONFIG_ERROR_DEVICE_NOT_SUPPORTED</a></div><div class="ttdeci">#define USB_DEV_CONFIG_ERROR_DEVICE_NOT_SUPPORTED</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00075">UsbCore.h:75</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a9068e2a036012614c0db163830cbcf00"><div class="ttname"><a href="class_p_s3_u_s_b.html#a9068e2a036012614c0db163830cbcf00">PS3USB::Poll</a></div><div class="ttdeci">uint8_t Poll()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00271">PS3USB.cpp:271</a></div></div>
<div class="ttc" id="_usb_core_8h_html_ae9e139d0fd29bb0b3e7afad2f76cd589"><div class="ttname"><a href="_usb_core_8h.html#ae9e139d0fd29bb0b3e7afad2f76cd589">USB_DEV_CONFIG_ERROR_DEVICE_NOT_SUPPORTED</a></div><div class="ttdeci">#define USB_DEV_CONFIG_ERROR_DEVICE_NOT_SUPPORTED</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00077">UsbCore.h:77</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea1a36ca9a60a5e244f3404ec0db7b44a1"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea1a36ca9a60a5e244f3404ec0db7b44a1">Cable</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00136">PS3Enums.h:136</a></div></div>
<div class="ttc" id="_p_s3_u_s_b_8h_html_a168ab47b14a95d7cf8066d553a9cb862"><div class="ttname"><a href="_p_s3_u_s_b_8h.html#a168ab47b14a95d7cf8066d553a9cb862">PS3_MAX_ENDPOINTS</a></div><div class="ttdeci">#define PS3_MAX_ENDPOINTS</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00048">PS3USB.h:48</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a394dbb0a59b587210e5958f08dac48f1"><div class="ttname"><a href="class_p_s3_u_s_b.html#a394dbb0a59b587210e5958f08dac48f1">PS3USB::epInfo</a></div><div class="ttdeci">EpInfo epInfo[PS3_MAX_ENDPOINTS]</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00281">PS3USB.h:281</a></div></div>
<div class="ttc" id="_p_s3_u_s_b_8h_html_a168ab47b14a95d7cf8066d553a9cb862"><div class="ttname"><a href="_p_s3_u_s_b_8h.html#a168ab47b14a95d7cf8066d553a9cb862">PS3_MAX_ENDPOINTS</a></div><div class="ttdeci">#define PS3_MAX_ENDPOINTS</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00039">PS3USB.h:39</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a394dbb0a59b587210e5958f08dac48f1"><div class="ttname"><a href="class_p_s3_u_s_b.html#a394dbb0a59b587210e5958f08dac48f1">PS3USB::epInfo</a></div><div class="ttdeci">EpInfo epInfo[PS3_MAX_ENDPOINTS]</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00272">PS3USB.h:272</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a77f44b6007cc735c47bdeaf672c7e464"><div class="ttname"><a href="class_p_s3_u_s_b.html#a77f44b6007cc735c47bdeaf672c7e464">PS3USB::setRumbleOn</a></div><div class="ttdeci">void setRumbleOn(RumbleEnum mode)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00420">PS3USB.cpp:420</a></div></div>
<div class="ttc" id="hid_8h_html_a2b422a95d6f43756111dea6b6a9230ff"><div class="ttname"><a href="hid_8h.html#a2b422a95d6f43756111dea6b6a9230ff">bmREQ_HID_IN</a></div><div class="ttdeci">#define bmREQ_HID_IN</div><div class="ttdef"><b>Definition:</b> <a href="hid_8h_source.html#l00064">hid.h:64</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea27912f9ea05a45aada21fc375817342c"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea27912f9ea05a45aada21fc375817342c">BluetoothRumble</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00137">PS3Enums.h:137</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a5bd4ea095da29635414952894bd527f5"><div class="ttname"><a href="_b_t_d_8h.html#a5bd4ea095da29635414952894bd527f5">bmREQ_HID_OUT</a></div><div class="ttdeci">#define bmREQ_HID_OUT</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00038">BTD.h:38</a></div></div>
<div class="ttc" id="_p_s3_u_s_b_8h_html_a2b422a95d6f43756111dea6b6a9230ff"><div class="ttname"><a href="_p_s3_u_s_b_8h.html#a2b422a95d6f43756111dea6b6a9230ff">bmREQ_HID_IN</a></div><div class="ttdeci">#define bmREQ_HID_IN</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00043">PS3USB.h:43</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aeac138cecbd4ef1ba0f9e0ab12440a6df6"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeac138cecbd4ef1ba0f9e0ab12440a6df6">NotCharging</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00120">PS3Enums.h:120</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a15370eb665cdded5514e69ca58d9f39d"><div class="ttname"><a href="_usb_core_8h.html#a15370eb665cdded5514e69ca58d9f39d">USB_ERROR_OUT_OF_ADDRESS_SPACE_IN_POOL</a></div><div class="ttdeci">#define USB_ERROR_OUT_OF_ADDRESS_SPACE_IN_POOL</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00078">UsbCore.h:78</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a15370eb665cdded5514e69ca58d9f39d"><div class="ttname"><a href="_usb_core_8h.html#a15370eb665cdded5514e69ca58d9f39d">USB_ERROR_OUT_OF_ADDRESS_SPACE_IN_POOL</a></div><div class="ttdeci">#define USB_ERROR_OUT_OF_ADDRESS_SPACE_IN_POOL</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00080">UsbCore.h:80</a></div></div>
<div class="ttc" id="controller_enums_8h_html_ab195293384292950ebc2166bfe360fd1a5819f165165589a8e65b07bf46c7382b"><div class="ttname"><a href="controller_enums_8h.html#ab195293384292950ebc2166bfe360fd1a5819f165165589a8e65b07bf46c7382b">RumbleHigh</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00067">controllerEnums.h:67</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a3ad10dc81cfca1bdeb2f1310ddf4419d"><div class="ttname"><a href="class_p_s3_u_s_b.html#a3ad10dc81cfca1bdeb2f1310ddf4419d">PS3USB::setLedOn</a></div><div class="ttdeci">void setLedOn(LEDEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00449">PS3USB.cpp:449</a></div></div>
<div class="ttc" id="version__helper_8h_html_a2ca9304dda7dc2472812baa9e9ede965"><div class="ttname"><a href="version__helper_8h.html#a2ca9304dda7dc2472812baa9e9ede965">strcat_P</a></div><div class="ttdeci">#define strcat_P(dest, src)</div><div class="ttdef"><b>Definition:</b> <a href="version__helper_8h_source.html#l00100">version_helper.h:100</a></div></div>
<div class="ttc" id="struct_ep_info_html_aa2ca775b63736df4008e88da7dd4dddb"><div class="ttname"><a href="struct_ep_info.html#aa2ca775b63736df4008e88da7dd4dddb">EpInfo::maxPktSize</a></div><div class="ttdeci">uint8_t maxPktSize</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00034">address.h:34</a></div></div>
<div class="ttc" id="class_u_s_b_html_a66ab8f5eda239e761d5a48741ea1f9d4"><div class="ttname"><a href="class_u_s_b.html#a66ab8f5eda239e761d5a48741ea1f9d4">USB::GetAddressPool</a></div><div class="ttdeci">AddressPool &amp; GetAddressPool()</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00206">UsbCore.h:206</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a3f43df159277003acdf7dd107bda27fd"><div class="ttname"><a href="class_p_s3_u_s_b.html#a3f43df159277003acdf7dd107bda27fd">PS3USB::bAddress</a></div><div class="ttdeci">uint8_t bAddress</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00279">PS3USB.h:279</a></div></div>
<div class="ttc" id="class_u_s_b_html_a66ab8f5eda239e761d5a48741ea1f9d4"><div class="ttname"><a href="class_u_s_b.html#a66ab8f5eda239e761d5a48741ea1f9d4">USB::GetAddressPool</a></div><div class="ttdeci">AddressPool &amp; GetAddressPool()</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00213">UsbCore.h:213</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a3f43df159277003acdf7dd107bda27fd"><div class="ttname"><a href="class_p_s3_u_s_b.html#a3f43df159277003acdf7dd107bda27fd">PS3USB::bAddress</a></div><div class="ttdeci">uint8_t bAddress</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00270">PS3USB.h:270</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a3fccc7ef5ac5c414ef8ebcd2e2cdfc80"><div class="ttname"><a href="class_p_s3_u_s_b.html#a3fccc7ef5ac5c414ef8ebcd2e2cdfc80">PS3USB::setMoveBdaddr</a></div><div class="ttdeci">void setMoveBdaddr(uint8_t *bdaddr)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00525">PS3USB.cpp:525</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a4898fccf5d2aa053bc67894aa3627e0f"><div class="ttname"><a href="_p_s3_enums_8h.html#a4898fccf5d2aa053bc67894aa3627e0f">PS3_REPORT_BUFFER_SIZE</a></div><div class="ttdeci">#define PS3_REPORT_BUFFER_SIZE</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00024">PS3Enums.h:24</a></div></div>
<div class="ttc" id="class_u_s_b_html"><div class="ttname"><a href="class_u_s_b.html">USB</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00190">UsbCore.h:190</a></div></div>
<div class="ttc" id="class_u_s_b_html"><div class="ttname"><a href="class_u_s_b.html">USB</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00197">UsbCore.h:197</a></div></div>
<div class="ttc" id="controller_enums_8h_html_aac6fa7b0395b95cc528deaad0ce884a2ad3163c1fcda01965b692ec2c3122b743"><div class="ttname"><a href="controller_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2ad3163c1fcda01965b692ec2c3122b743">Red</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00047">controllerEnums.h:47</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a00d5030559c481763282483889597d51"><div class="ttname"><a href="controller_enums_8h.html#a00d5030559c481763282483889597d51">SensorEnum</a></div><div class="ttdeci">SensorEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00166">controllerEnums.h:166</a></div></div>
<div class="ttc" id="class_u_s_b_html_a3f66bf622590413ef2e1864f93a3e0d2"><div class="ttname"><a href="class_u_s_b.html#a3f66bf622590413ef2e1864f93a3e0d2">USB::RegisterDeviceClass</a></div><div class="ttdeci">uint8_t RegisterDeviceClass(USBDeviceConfig *pdev)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00210">UsbCore.h:210</a></div></div>
<div class="ttc" id="class_u_s_b_html_a3f66bf622590413ef2e1864f93a3e0d2"><div class="ttname"><a href="class_u_s_b.html#a3f66bf622590413ef2e1864f93a3e0d2">USB::RegisterDeviceClass</a></div><div class="ttdeci">uint8_t RegisterDeviceClass(USBDeviceConfig *pdev)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00217">UsbCore.h:217</a></div></div>
<div class="ttc" id="message_8h_html_a03e4088aafca36fd7a4be69e3a22b601"><div class="ttname"><a href="message_8h.html#a03e4088aafca36fd7a4be69e3a22b601">NotifyFailSetConfDescr</a></div><div class="ttdeci">#define NotifyFailSetConfDescr(...)</div><div class="ttdef"><b>Definition:</b> <a href="message_8h_source.html#l00053">message.h:53</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a00d5030559c481763282483889597d51a1b657addccd19368e17fd15ce396a2eb"><div class="ttname"><a href="controller_enums_8h.html#a00d5030559c481763282483889597d51a1b657addccd19368e17fd15ce396a2eb">aX</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00168">controllerEnums.h:168</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_ac919404d4caf4625467756272f8d5502"><div class="ttname"><a href="class_p_s3_u_s_b.html#ac919404d4caf4625467756272f8d5502">PS3USB::PS3USB</a></div><div class="ttdeci">PS3USB(USB *pUsb, uint8_t btadr5=0, uint8_t btadr4=0, uint8_t btadr3=0, uint8_t btadr2=0, uint8_t btadr1=0, uint8_t btadr0=0)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00023">PS3USB.cpp:23</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_ab6e97f59f4a62e52cf54cdd302679cd9"><div class="ttname"><a href="class_p_s3_u_s_b.html#ab6e97f59f4a62e52cf54cdd302679cd9">PS3USB::getMoveCalibration</a></div><div class="ttdeci">void getMoveCalibration(uint8_t *data)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00551">PS3USB.cpp:551</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea8b7c5cd8bd8eb51ee6d3fd0eac584679"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea8b7c5cd8bd8eb51ee6d3fd0eac584679">Full</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00125">PS3Enums.h:125</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_ad0887b415c3ba180789781a713d98be8"><div class="ttname"><a href="class_p_s3_u_s_b.html#ad0887b415c3ba180789781a713d98be8">PS3USB::getStatus</a></div><div class="ttdeci">bool getStatus(StatusEnum c)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00361">PS3USB.cpp:361</a></div></div>
<div class="ttc" id="class_u_s_b_html_a193e63c149fad46adabd77ceb09b2b24"><div class="ttname"><a href="class_u_s_b.html#a193e63c149fad46adabd77ceb09b2b24">USB::getDevDescr</a></div><div class="ttdeci">uint8_t getDevDescr(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t *dataptr)</div><div class="ttdoc">defined(USB_METHODS_INLINE) </div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00761">Usb.cpp:761</a></div></div>
<div class="ttc" id="class_u_s_b_html_a193e63c149fad46adabd77ceb09b2b24"><div class="ttname"><a href="class_u_s_b.html#a193e63c149fad46adabd77ceb09b2b24">USB::getDevDescr</a></div><div class="ttdeci">uint8_t getDevDescr(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t *dataptr)</div><div class="ttdoc">defined(USB_METHODS_INLINE) </div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00764">Usb.cpp:764</a></div></div>
<div class="ttc" id="message_8h_html_a69619d86b1636f141c830ca82c7f45e7"><div class="ttname"><a href="message_8h.html#a69619d86b1636f141c830ca82c7f45e7">NotifyFailSetDevTblEntry</a></div><div class="ttdeci">#define NotifyFailSetDevTblEntry(...)</div><div class="ttdef"><b>Definition:</b> <a href="message_8h_source.html#l00051">message.h:51</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_ab8d0298319d2131eb55cd94c07bcf391"><div class="ttname"><a href="_p_s3_enums_8h.html#ab8d0298319d2131eb55cd94c07bcf391">PS3_REPORT_BUFFER</a></div><div class="ttdeci">const uint8_t PS3_REPORT_BUFFER[PS3_REPORT_BUFFER_SIZE]</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00027">PS3Enums.h:27</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_ac22875ff006c68daad6f688551f5e6d5"><div class="ttname"><a href="class_p_s3_u_s_b.html#ac22875ff006c68daad6f688551f5e6d5">PS3USB::getButtonClick</a></div><div class="ttdeci">bool getButtonClick(ButtonEnum b)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00319">PS3USB.cpp:319</a></div></div>
@ -787,7 +793,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.7
</a> 1.8.9.1
</small></address>
</body>
</html>

View file

@ -3,15 +3,16 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<meta name="generator" content="Doxygen 1.8.9.1"/>
<title>USB Host Shield 2.0: PS3USB.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="imageStyle.css" rel="stylesheet" type="text/css"/>
@ -31,7 +32,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.7 -->
<!-- Generated by Doxygen 1.8.9.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -70,7 +71,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
@ -93,13 +94,14 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="_usb_8h_source.html">Usb.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="hid_8h_source.html">hid.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="_p_s3_enums_8h_source.html">PS3Enums.h</a>&quot;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for PS3USB.h:</div>
<div class="dyncontent">
<div class="center"><img src="_p_s3_u_s_b_8h__incl.png" border="0" usemap="#_p_s3_u_s_b_8h" alt=""/></div>
<map name="_p_s3_u_s_b_8h" id="_p_s3_u_s_b_8h">
<area shape="rect" id="node2" href="_usb_8h.html" title="Usb.h" alt="" coords="5,79,61,104"/><area shape="rect" id="node3" href="_p_s3_enums_8h.html" title="PS3Enums.h" alt="" coords="85,79,184,104"/><area shape="rect" id="node4" href="controller_enums_8h.html" title="controllerEnums.h" alt="" coords="70,152,199,177"/></map>
<area shape="rect" id="node2" href="_usb_8h.html" title="Usb.h" alt="" coords="5,225,61,251"/><area shape="rect" id="node3" href="hid_8h.html" title="hid.h" alt="" coords="50,79,100,104"/><area shape="rect" id="node5" href="_p_s3_enums_8h.html" title="PS3Enums.h" alt="" coords="181,79,280,104"/><area shape="rect" id="node4" href="hidusagestr_8h.html" title="hidusagestr.h" alt="" coords="71,152,172,177"/><area shape="rect" id="node6" href="controller_enums_8h.html" title="controllerEnums.h" alt="" coords="196,152,324,177"/></map>
</div>
</div><div class="textblock"><div class="dynheader">
This graph shows which files directly or indirectly include this file:</div>
@ -120,8 +122,6 @@ Classes</h2></td></tr>
Macros</h2></td></tr>
<tr class="memitem:abcb805b13bfd36145e252b0633bbcfc0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_s3_u_s_b_8h.html#abcb805b13bfd36145e252b0633bbcfc0">EP_MAXPKTSIZE</a>&#160;&#160;&#160;64</td></tr>
<tr class="separator:abcb805b13bfd36145e252b0633bbcfc0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad4d26e1c566064f2259faf65f0858b6e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_s3_u_s_b_8h.html#ad4d26e1c566064f2259faf65f0858b6e">EP_INTERRUPT</a>&#160;&#160;&#160;0x03</td></tr>
<tr class="separator:ad4d26e1c566064f2259faf65f0858b6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae6276fa555fe14995bee0713be663333"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_s3_u_s_b_8h.html#ae6276fa555fe14995bee0713be663333">PS3_CONTROL_PIPE</a>&#160;&#160;&#160;0</td></tr>
<tr class="separator:ae6276fa555fe14995bee0713be663333"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0da271fcb10181b3ce15aefe76c259bb"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_s3_u_s_b_8h.html#a0da271fcb10181b3ce15aefe76c259bb">PS3_OUTPUT_PIPE</a>&#160;&#160;&#160;1</td></tr>
@ -136,14 +136,6 @@ Macros</h2></td></tr>
<tr class="separator:a54903b410722a45f8246653cd4d00632"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc242b8a1b867f79c49ad78e3a47b37f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_s3_u_s_b_8h.html#afc242b8a1b867f79c49ad78e3a47b37f">PS3MOVE_PID</a>&#160;&#160;&#160;0x03D5</td></tr>
<tr class="separator:afc242b8a1b867f79c49ad78e3a47b37f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5bd4ea095da29635414952894bd527f5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_s3_u_s_b_8h.html#a5bd4ea095da29635414952894bd527f5">bmREQ_HID_OUT</a>&#160;&#160;&#160;<a class="el" href="usb__ch9_8h.html#a610dad02930a3061c746f84885e1e11e">USB_SETUP_HOST_TO_DEVICE</a>|<a class="el" href="usb__ch9_8h.html#acf3fd30992e9fe01f1bac9aaa7fea61b">USB_SETUP_TYPE_CLASS</a>|<a class="el" href="usb__ch9_8h.html#a59754621c21db801e11513ba06a3a02e">USB_SETUP_RECIPIENT_INTERFACE</a></td></tr>
<tr class="separator:a5bd4ea095da29635414952894bd527f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2b422a95d6f43756111dea6b6a9230ff"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_s3_u_s_b_8h.html#a2b422a95d6f43756111dea6b6a9230ff">bmREQ_HID_IN</a>&#160;&#160;&#160;<a class="el" href="usb__ch9_8h.html#a35c2a529dc87a274b2eb6f9e33682449">USB_SETUP_DEVICE_TO_HOST</a>|<a class="el" href="usb__ch9_8h.html#acf3fd30992e9fe01f1bac9aaa7fea61b">USB_SETUP_TYPE_CLASS</a>|<a class="el" href="usb__ch9_8h.html#a59754621c21db801e11513ba06a3a02e">USB_SETUP_RECIPIENT_INTERFACE</a></td></tr>
<tr class="separator:a2b422a95d6f43756111dea6b6a9230ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a73dbc093cd8c096054332fde410cd9ed"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_s3_u_s_b_8h.html#a73dbc093cd8c096054332fde410cd9ed">HID_REQUEST_GET_REPORT</a>&#160;&#160;&#160;0x01</td></tr>
<tr class="separator:a73dbc093cd8c096054332fde410cd9ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aee05d40a014750b24a7e9967f6f389f4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_s3_u_s_b_8h.html#aee05d40a014750b24a7e9967f6f389f4">HID_REQUEST_SET_REPORT</a>&#160;&#160;&#160;0x09</td></tr>
<tr class="separator:aee05d40a014750b24a7e9967f6f389f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a168ab47b14a95d7cf8066d553a9cb862"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_s3_u_s_b_8h.html#a168ab47b14a95d7cf8066d553a9cb862">PS3_MAX_ENDPOINTS</a>&#160;&#160;&#160;3</td></tr>
<tr class="separator:a168ab47b14a95d7cf8066d553a9cb862"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
@ -158,21 +150,7 @@ Macros</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_p_s3_u_s_b_8h_source.html#l00025">25</a> of file <a class="el" href="_p_s3_u_s_b_8h_source.html">PS3USB.h</a>.</p>
</div>
</div>
<a class="anchor" id="ad4d26e1c566064f2259faf65f0858b6e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define EP_INTERRUPT&#160;&#160;&#160;0x03</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_p_s3_u_s_b_8h_source.html#l00028">28</a> of file <a class="el" href="_p_s3_u_s_b_8h_source.html">PS3USB.h</a>.</p>
<p>Definition at line <a class="el" href="_p_s3_u_s_b_8h_source.html#l00026">26</a> of file <a class="el" href="_p_s3_u_s_b_8h_source.html">PS3USB.h</a>.</p>
</div>
</div>
@ -186,7 +164,7 @@ Macros</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_p_s3_u_s_b_8h_source.html#l00031">31</a> of file <a class="el" href="_p_s3_u_s_b_8h_source.html">PS3USB.h</a>.</p>
<p>Definition at line <a class="el" href="_p_s3_u_s_b_8h_source.html#l00029">29</a> of file <a class="el" href="_p_s3_u_s_b_8h_source.html">PS3USB.h</a>.</p>
</div>
</div>
@ -200,7 +178,7 @@ Macros</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_p_s3_u_s_b_8h_source.html#l00032">32</a> of file <a class="el" href="_p_s3_u_s_b_8h_source.html">PS3USB.h</a>.</p>
<p>Definition at line <a class="el" href="_p_s3_u_s_b_8h_source.html#l00030">30</a> of file <a class="el" href="_p_s3_u_s_b_8h_source.html">PS3USB.h</a>.</p>
</div>
</div>
@ -214,7 +192,7 @@ Macros</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_p_s3_u_s_b_8h_source.html#l00033">33</a> of file <a class="el" href="_p_s3_u_s_b_8h_source.html">PS3USB.h</a>.</p>
<p>Definition at line <a class="el" href="_p_s3_u_s_b_8h_source.html#l00031">31</a> of file <a class="el" href="_p_s3_u_s_b_8h_source.html">PS3USB.h</a>.</p>
</div>
</div>
@ -228,7 +206,7 @@ Macros</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_p_s3_u_s_b_8h_source.html#l00036">36</a> of file <a class="el" href="_p_s3_u_s_b_8h_source.html">PS3USB.h</a>.</p>
<p>Definition at line <a class="el" href="_p_s3_u_s_b_8h_source.html#l00034">34</a> of file <a class="el" href="_p_s3_u_s_b_8h_source.html">PS3USB.h</a>.</p>
</div>
</div>
@ -242,7 +220,7 @@ Macros</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_p_s3_u_s_b_8h_source.html#l00037">37</a> of file <a class="el" href="_p_s3_u_s_b_8h_source.html">PS3USB.h</a>.</p>
<p>Definition at line <a class="el" href="_p_s3_u_s_b_8h_source.html#l00035">35</a> of file <a class="el" href="_p_s3_u_s_b_8h_source.html">PS3USB.h</a>.</p>
</div>
</div>
@ -256,7 +234,7 @@ Macros</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_p_s3_u_s_b_8h_source.html#l00038">38</a> of file <a class="el" href="_p_s3_u_s_b_8h_source.html">PS3USB.h</a>.</p>
<p>Definition at line <a class="el" href="_p_s3_u_s_b_8h_source.html#l00036">36</a> of file <a class="el" href="_p_s3_u_s_b_8h_source.html">PS3USB.h</a>.</p>
</div>
</div>
@ -270,63 +248,7 @@ Macros</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_p_s3_u_s_b_8h_source.html#l00039">39</a> of file <a class="el" href="_p_s3_u_s_b_8h_source.html">PS3USB.h</a>.</p>
</div>
</div>
<a class="anchor" id="a5bd4ea095da29635414952894bd527f5"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define bmREQ_HID_OUT&#160;&#160;&#160;<a class="el" href="usb__ch9_8h.html#a610dad02930a3061c746f84885e1e11e">USB_SETUP_HOST_TO_DEVICE</a>|<a class="el" href="usb__ch9_8h.html#acf3fd30992e9fe01f1bac9aaa7fea61b">USB_SETUP_TYPE_CLASS</a>|<a class="el" href="usb__ch9_8h.html#a59754621c21db801e11513ba06a3a02e">USB_SETUP_RECIPIENT_INTERFACE</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_p_s3_u_s_b_8h_source.html#l00042">42</a> of file <a class="el" href="_p_s3_u_s_b_8h_source.html">PS3USB.h</a>.</p>
</div>
</div>
<a class="anchor" id="a2b422a95d6f43756111dea6b6a9230ff"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define bmREQ_HID_IN&#160;&#160;&#160;<a class="el" href="usb__ch9_8h.html#a35c2a529dc87a274b2eb6f9e33682449">USB_SETUP_DEVICE_TO_HOST</a>|<a class="el" href="usb__ch9_8h.html#acf3fd30992e9fe01f1bac9aaa7fea61b">USB_SETUP_TYPE_CLASS</a>|<a class="el" href="usb__ch9_8h.html#a59754621c21db801e11513ba06a3a02e">USB_SETUP_RECIPIENT_INTERFACE</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_p_s3_u_s_b_8h_source.html#l00043">43</a> of file <a class="el" href="_p_s3_u_s_b_8h_source.html">PS3USB.h</a>.</p>
</div>
</div>
<a class="anchor" id="a73dbc093cd8c096054332fde410cd9ed"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define HID_REQUEST_GET_REPORT&#160;&#160;&#160;0x01</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_p_s3_u_s_b_8h_source.html#l00045">45</a> of file <a class="el" href="_p_s3_u_s_b_8h_source.html">PS3USB.h</a>.</p>
</div>
</div>
<a class="anchor" id="aee05d40a014750b24a7e9967f6f389f4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define HID_REQUEST_SET_REPORT&#160;&#160;&#160;0x09</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_p_s3_u_s_b_8h_source.html#l00046">46</a> of file <a class="el" href="_p_s3_u_s_b_8h_source.html">PS3USB.h</a>.</p>
<p>Definition at line <a class="el" href="_p_s3_u_s_b_8h_source.html#l00037">37</a> of file <a class="el" href="_p_s3_u_s_b_8h_source.html">PS3USB.h</a>.</p>
</div>
</div>
@ -340,7 +262,7 @@ Macros</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_p_s3_u_s_b_8h_source.html#l00048">48</a> of file <a class="el" href="_p_s3_u_s_b_8h_source.html">PS3USB.h</a>.</p>
<p>Definition at line <a class="el" href="_p_s3_u_s_b_8h_source.html#l00039">39</a> of file <a class="el" href="_p_s3_u_s_b_8h_source.html">PS3USB.h</a>.</p>
</div>
</div>
@ -349,7 +271,7 @@ Macros</h2></td></tr>
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.7
</a> 1.8.9.1
</small></address>
</body>
</html>

View file

@ -1 +1 @@
10cd044b5bf58467538f65c844ab1455
0475266e9b2a94b52ed82e482fd5e58c

View file

@ -1,5 +1,7 @@
<map id="PS3USB.h" name="PS3USB.h">
<area shape="rect" id="node2" href="$_usb_8h.html" title="Usb.h" alt="" coords="5,79,61,104"/>
<area shape="rect" id="node3" href="$_p_s3_enums_8h.html" title="PS3Enums.h" alt="" coords="85,79,184,104"/>
<area shape="rect" id="node4" href="$controller_enums_8h.html" title="controllerEnums.h" alt="" coords="70,152,199,177"/>
<area shape="rect" id="node2" href="$_usb_8h.html" title="Usb.h" alt="" coords="5,225,61,251"/>
<area shape="rect" id="node3" href="$hid_8h.html" title="hid.h" alt="" coords="50,79,100,104"/>
<area shape="rect" id="node5" href="$_p_s3_enums_8h.html" title="PS3Enums.h" alt="" coords="181,79,280,104"/>
<area shape="rect" id="node4" href="$hidusagestr_8h.html" title="hidusagestr.h" alt="" coords="71,152,172,177"/>
<area shape="rect" id="node6" href="$controller_enums_8h.html" title="controllerEnums.h" alt="" coords="196,152,324,177"/>
</map>

View file

@ -1 +1 @@
d7ca50c1f7f20fdedd5d4e89b29bcaf5
2b18542091cc595d838d40ff497d2b2f

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.8 KiB

After

Width:  |  Height:  |  Size: 18 KiB

View file

@ -3,15 +3,16 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<meta name="generator" content="Doxygen 1.8.9.1"/>
<title>USB Host Shield 2.0: PS3USB.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="imageStyle.css" rel="stylesheet" type="text/css"/>
@ -31,7 +32,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.7 -->
<!-- Generated by Doxygen 1.8.9.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -70,7 +71,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
@ -110,186 +111,178 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define _ps3usb_h_</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_usb_8h.html">Usb.h</a>&quot;</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_p_s3_enums_8h.html">PS3Enums.h</a>&quot;</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">/* PS3 data taken from descriptors */</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="_p_s3_u_s_b_8h.html#abcb805b13bfd36145e252b0633bbcfc0"> 25</a></span>&#160;<span class="preprocessor">#define EP_MAXPKTSIZE 64 // max size for data via USB</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment">/* Endpoint types */</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="_p_s3_u_s_b_8h.html#ad4d26e1c566064f2259faf65f0858b6e"> 28</a></span>&#160;<span class="preprocessor">#define EP_INTERRUPT 0x03</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment">/* Names we give to the 3 ps3 pipes - this is only used for setting the bluetooth address into the ps3 controllers */</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="_p_s3_u_s_b_8h.html#ae6276fa555fe14995bee0713be663333"> 31</a></span>&#160;<span class="preprocessor">#define PS3_CONTROL_PIPE 0</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="_p_s3_u_s_b_8h.html#a0da271fcb10181b3ce15aefe76c259bb"> 32</a></span>&#160;<span class="preprocessor">#define PS3_OUTPUT_PIPE 1</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="_p_s3_u_s_b_8h.html#aca3cbaad8732d9185bb9bda1a32cd18d"> 33</a></span>&#160;<span class="preprocessor">#define PS3_INPUT_PIPE 2</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment">//PID and VID of the different devices</span></div>
<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="_p_s3_u_s_b_8h.html#a5bb06f989db583d290ba79642d37c514"> 36</a></span>&#160;<span class="preprocessor">#define PS3_VID 0x054C // Sony Corporation</span></div>
<div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="_p_s3_u_s_b_8h.html#a0ae276efa5e73a4da658c714e70402c0"> 37</a></span>&#160;<span class="preprocessor">#define PS3_PID 0x0268 // PS3 Controller DualShock 3</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="_p_s3_u_s_b_8h.html#a54903b410722a45f8246653cd4d00632"> 38</a></span>&#160;<span class="preprocessor">#define PS3NAVIGATION_PID 0x042F // Navigation controller</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="_p_s3_u_s_b_8h.html#afc242b8a1b867f79c49ad78e3a47b37f"> 39</a></span>&#160;<span class="preprocessor">#define PS3MOVE_PID 0x03D5 // Motion controller</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="hid_8h.html">hid.h</a>&quot;</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_p_s3_enums_8h.html">PS3Enums.h</a>&quot;</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">/* PS3 data taken from descriptors */</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="_p_s3_u_s_b_8h.html#abcb805b13bfd36145e252b0633bbcfc0"> 26</a></span>&#160;<span class="preprocessor">#define EP_MAXPKTSIZE 64 // max size for data via USB</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment">/* Names we give to the 3 ps3 pipes - this is only used for setting the bluetooth address into the ps3 controllers */</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="_p_s3_u_s_b_8h.html#ae6276fa555fe14995bee0713be663333"> 29</a></span>&#160;<span class="preprocessor">#define PS3_CONTROL_PIPE 0</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="_p_s3_u_s_b_8h.html#a0da271fcb10181b3ce15aefe76c259bb"> 30</a></span>&#160;<span class="preprocessor">#define PS3_OUTPUT_PIPE 1</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="_p_s3_u_s_b_8h.html#aca3cbaad8732d9185bb9bda1a32cd18d"> 31</a></span>&#160;<span class="preprocessor">#define PS3_INPUT_PIPE 2</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment">//PID and VID of the different devices</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="_p_s3_u_s_b_8h.html#a5bb06f989db583d290ba79642d37c514"> 34</a></span>&#160;<span class="preprocessor">#define PS3_VID 0x054C // Sony Corporation</span></div>
<div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="_p_s3_u_s_b_8h.html#a0ae276efa5e73a4da658c714e70402c0"> 35</a></span>&#160;<span class="preprocessor">#define PS3_PID 0x0268 // PS3 Controller DualShock 3</span></div>
<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="_p_s3_u_s_b_8h.html#a54903b410722a45f8246653cd4d00632"> 36</a></span>&#160;<span class="preprocessor">#define PS3NAVIGATION_PID 0x042F // Navigation controller</span></div>
<div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="_p_s3_u_s_b_8h.html#afc242b8a1b867f79c49ad78e3a47b37f"> 37</a></span>&#160;<span class="preprocessor">#define PS3MOVE_PID 0x03D5 // Motion controller</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div>
<div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="_p_s3_u_s_b_8h.html#a168ab47b14a95d7cf8066d553a9cb862"> 39</a></span>&#160;<span class="preprocessor">#define PS3_MAX_ENDPOINTS 3</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment">// Used in control endpoint header for HID Commands</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="_p_s3_u_s_b_8h.html#a5bd4ea095da29635414952894bd527f5"> 42</a></span>&#160;<span class="preprocessor">#define bmREQ_HID_OUT USB_SETUP_HOST_TO_DEVICE|USB_SETUP_TYPE_CLASS|USB_SETUP_RECIPIENT_INTERFACE</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="_p_s3_u_s_b_8h.html#a2b422a95d6f43756111dea6b6a9230ff"> 43</a></span>&#160;<span class="preprocessor">#define bmREQ_HID_IN USB_SETUP_DEVICE_TO_HOST|USB_SETUP_TYPE_CLASS|USB_SETUP_RECIPIENT_INTERFACE</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div>
<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="_p_s3_u_s_b_8h.html#a73dbc093cd8c096054332fde410cd9ed"> 45</a></span>&#160;<span class="preprocessor">#define HID_REQUEST_GET_REPORT 0x01</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="_p_s3_u_s_b_8h.html#aee05d40a014750b24a7e9967f6f389f4"> 46</a></span>&#160;<span class="preprocessor">#define HID_REQUEST_SET_REPORT 0x09</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div>
<div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="_p_s3_u_s_b_8h.html#a168ab47b14a95d7cf8066d553a9cb862"> 48</a></span>&#160;<span class="preprocessor">#define PS3_MAX_ENDPOINTS 3</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div>
<div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="class_p_s3_u_s_b.html"> 58</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_p_s3_u_s_b.html">PS3USB</a> : <span class="keyword">public</span> <a class="code" href="class_u_s_b_device_config.html">USBDeviceConfig</a> {</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#ac919404d4caf4625467756272f8d5502">PS3USB</a>(<a class="code" href="class_u_s_b.html">USB</a> *<a class="code" href="class_p_s3_u_s_b.html#aa1873f41ae0da7c4568cfb7517560c48">pUsb</a>, uint8_t btadr5 = 0, uint8_t btadr4 = 0, uint8_t btadr3 = 0, uint8_t btadr2 = 0, uint8_t btadr1 = 0, uint8_t btadr0 = 0);</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_p_s3_u_s_b.html#a0083545cb99fb8786e60281fe7a9050d">Init</a>(uint8_t parent, uint8_t port, <span class="keywordtype">bool</span> lowspeed);</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_p_s3_u_s_b.html#a5750c5448bf1ec73a7669ca2e4799c98">Release</a>();</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_p_s3_u_s_b.html#a9068e2a036012614c0db163830cbcf00">Poll</a>();</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div>
<div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="class_p_s3_u_s_b.html#a04b79c271ca14e1e095c6e305c672627"> 93</a></span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_p_s3_u_s_b.html#a04b79c271ca14e1e095c6e305c672627">GetAddress</a>() {</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_p_s3_u_s_b.html#a3f43df159277003acdf7dd107bda27fd">bAddress</a>;</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; };</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div>
<div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="class_p_s3_u_s_b.html#a02a5b0244665d5a790d1020e51c94479"> 101</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_p_s3_u_s_b.html#a02a5b0244665d5a790d1020e51c94479">isReady</a>() {</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordflow">return</span> bPollEnable;</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; };</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div>
<div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="class_p_s3_u_s_b.html#ababb6cbf8297581b27400f9a39d75e5a"> 111</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">boolean</span> <a class="code" href="class_p_s3_u_s_b.html#ababb6cbf8297581b27400f9a39d75e5a">VIDPIDOK</a>(uint16_t vid, uint16_t pid) {</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordflow">return</span> (vid == <a class="code" href="_p_s3_u_s_b_8h.html#a5bb06f989db583d290ba79642d37c514">PS3_VID</a> &amp;&amp; (pid == <a class="code" href="_p_s3_u_s_b_8h.html#a0ae276efa5e73a4da658c714e70402c0">PS3_PID</a> || pid == <a class="code" href="_p_s3_u_s_b_8h.html#a54903b410722a45f8246653cd4d00632">PS3NAVIGATION_PID</a> || pid == <a class="code" href="_p_s3_u_s_b_8h.html#afc242b8a1b867f79c49ad78e3a47b37f">PS3MOVE_PID</a>));</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; };</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#ad50962ff6194746c076084ec0714605a">setBdaddr</a>(uint8_t *bdaddr);</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#a1448bc51226a9b63f2937630da6bd48f">getBdaddr</a>(uint8_t *bdaddr);</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#a3fccc7ef5ac5c414ef8ebcd2e2cdfc80">setMoveBdaddr</a>(uint8_t *bdaddr);</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#a6c722086999db05d8abf5f1f26c19f77">getMoveBdaddr</a>(uint8_t *bdaddr);</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#ab6e97f59f4a62e52cf54cdd302679cd9">getMoveCalibration</a>(uint8_t *data);</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_p_s3_u_s_b.html#a89df07d76648a48c1f0ef8fd9604c201">getButtonPress</a>(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a> b);</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_p_s3_u_s_b.html#ac22875ff006c68daad6f688551f5e6d5">getButtonClick</a>(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a> b);</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; uint8_t <a class="code" href="class_p_s3_u_s_b.html#a6844111657a882b1997ca30d2649bd1c">getAnalogButton</a>(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a> a);</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; uint8_t <a class="code" href="class_p_s3_u_s_b.html#a0de554815afcb66f57d8ac0045f19f2c">getAnalogHat</a>(<a class="code" href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093">AnalogHatEnum</a> a);</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; uint16_t <a class="code" href="class_p_s3_u_s_b.html#aa01170072ec7fd0e557959ea1d79011e">getSensor</a>(<a class="code" href="controller_enums_8h.html#a00d5030559c481763282483889597d51">SensorEnum</a> a);</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordtype">double</span> <a class="code" href="class_p_s3_u_s_b.html#ae5c5316b4c8dae5927b2a2721a28f6c0">getAngle</a>(<a class="code" href="controller_enums_8h.html#a7c7824a10a9ffa8fea85602fcf4d84e6">AngleEnum</a> a);</div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_p_s3_u_s_b.html#ad0887b415c3ba180789781a713d98be8">getStatus</a>(<a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161ae">StatusEnum</a> c);</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#a1328a3f017f8d010cd0559c084981021">printStatusString</a>();</div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#ac7adc7365bb45d15c37e22f26f012498">setAllOff</a>();</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#aaa1e66d7397be6364d4f76749cbaad5a">setRumbleOff</a>();</div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#a77f44b6007cc735c47bdeaf672c7e464">setRumbleOn</a>(<a class="code" href="controller_enums_8h.html#ab195293384292950ebc2166bfe360fd1">RumbleEnum</a> mode);</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#a77f44b6007cc735c47bdeaf672c7e464">setRumbleOn</a>(uint8_t rightDuration, uint8_t rightPower, uint8_t leftDuration, uint8_t leftPower);</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#aa0aac5ea016db4cd6736a15e9d6eb41b">setLedRaw</a>(uint8_t value);</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;</div>
<div class="line"><a name="l00224"></a><span class="lineno"><a class="line" href="class_p_s3_u_s_b.html#ac912fd49bd2a415206df7a8c2b672ea4"> 224</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#ac912fd49bd2a415206df7a8c2b672ea4">setLedOff</a>() {</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#aa0aac5ea016db4cd6736a15e9d6eb41b">setLedRaw</a>(0);</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; }</div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#ac912fd49bd2a415206df7a8c2b672ea4">setLedOff</a>(<a class="code" href="controller_enums_8h.html#a70df64e026046bc352983127b7ae2cf0">LEDEnum</a> a);</div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#a3ad10dc81cfca1bdeb2f1310ddf4419d">setLedOn</a>(<a class="code" href="controller_enums_8h.html#a70df64e026046bc352983127b7ae2cf0">LEDEnum</a> a);</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#a87db50031f7e265baaa82365c14befae">setLedToggle</a>(<a class="code" href="controller_enums_8h.html#a70df64e026046bc352983127b7ae2cf0">LEDEnum</a> a);</div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;</div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#ae9cfdaad3e54dbc271519e22082399c7">moveSetBulb</a>(uint8_t r, uint8_t g, uint8_t b);</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#ae9cfdaad3e54dbc271519e22082399c7">moveSetBulb</a>(<a class="code" href="controller_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2">ColorsEnum</a> color);</div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#a66d542c2cec73cefb3cdda36ff080e1a">moveSetRumble</a>(uint8_t rumble);</div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;</div>
<div class="line"><a name="l00263"></a><span class="lineno"><a class="line" href="class_p_s3_u_s_b.html#ad06a172d85adf4ffc54dd8117b0be42e"> 263</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#ad06a172d85adf4ffc54dd8117b0be42e">attachOnInit</a>(<span class="keywordtype">void</span> (*funcOnInit)(<span class="keywordtype">void</span>)) {</div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; pFuncOnInit = funcOnInit;</div>
<div class="line"><a name="l00265"></a><span class="lineno"><a class="line" href="class_p_s3_u_s_b.html#a0dad8754ff18d0c375c2569791d50876"> 265</a></span>&#160; };</div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_p_s3_u_s_b.html#a0dad8754ff18d0c375c2569791d50876">PS3Connected</a>;</div>
<div class="line"><a name="l00271"></a><span class="lineno"><a class="line" href="class_p_s3_u_s_b.html#a89aa4233f3eeeb99693a099da527ec28"> 271</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_p_s3_u_s_b.html#a89aa4233f3eeeb99693a099da527ec28">PS3MoveConnected</a>;</div>
<div class="line"><a name="l00273"></a><span class="lineno"><a class="line" href="class_p_s3_u_s_b.html#a54b2dcaa1e9acef83de2376b50c7ff09"> 273</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_p_s3_u_s_b.html#a54b2dcaa1e9acef83de2376b50c7ff09">PS3NavigationConnected</a>;</div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;</div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;<span class="keyword">protected</span>:</div>
<div class="line"><a name="l00277"></a><span class="lineno"><a class="line" href="class_p_s3_u_s_b.html#aa1873f41ae0da7c4568cfb7517560c48"> 277</a></span>&#160; <a class="code" href="class_u_s_b.html">USB</a> *<a class="code" href="class_p_s3_u_s_b.html#aa1873f41ae0da7c4568cfb7517560c48">pUsb</a>;</div>
<div class="line"><a name="l00279"></a><span class="lineno"><a class="line" href="class_p_s3_u_s_b.html#a3f43df159277003acdf7dd107bda27fd"> 279</a></span>&#160; uint8_t <a class="code" href="class_p_s3_u_s_b.html#a3f43df159277003acdf7dd107bda27fd">bAddress</a>;</div>
<div class="line"><a name="l00281"></a><span class="lineno"><a class="line" href="class_p_s3_u_s_b.html#a394dbb0a59b587210e5958f08dac48f1"> 281</a></span>&#160; <a class="code" href="struct_ep_info.html">EpInfo</a> <a class="code" href="class_p_s3_u_s_b.html#a394dbb0a59b587210e5958f08dac48f1">epInfo</a>[<a class="code" href="_p_s3_u_s_b_8h.html#a168ab47b14a95d7cf8066d553a9cb862">PS3_MAX_ENDPOINTS</a>];</div>
<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="class_p_s3_u_s_b.html"> 49</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_p_s3_u_s_b.html">PS3USB</a> : <span class="keyword">public</span> <a class="code" href="class_u_s_b_device_config.html">USBDeviceConfig</a> {</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#ac919404d4caf4625467756272f8d5502">PS3USB</a>(<a class="code" href="class_u_s_b.html">USB</a> *<a class="code" href="class_p_s3_u_s_b.html#aa1873f41ae0da7c4568cfb7517560c48">pUsb</a>, uint8_t btadr5 = 0, uint8_t btadr4 = 0, uint8_t btadr3 = 0, uint8_t btadr2 = 0, uint8_t btadr1 = 0, uint8_t btadr0 = 0);</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; uint8_t <a class="code" href="class_p_s3_u_s_b.html#a0083545cb99fb8786e60281fe7a9050d">Init</a>(uint8_t parent, uint8_t port, <span class="keywordtype">bool</span> lowspeed);</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; uint8_t <a class="code" href="class_p_s3_u_s_b.html#a5750c5448bf1ec73a7669ca2e4799c98">Release</a>();</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; uint8_t <a class="code" href="class_p_s3_u_s_b.html#a9068e2a036012614c0db163830cbcf00">Poll</a>();</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div>
<div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="class_p_s3_u_s_b.html#a04b79c271ca14e1e095c6e305c672627"> 84</a></span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_p_s3_u_s_b.html#a04b79c271ca14e1e095c6e305c672627">GetAddress</a>() {</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_p_s3_u_s_b.html#a3f43df159277003acdf7dd107bda27fd">bAddress</a>;</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; };</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div>
<div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="class_p_s3_u_s_b.html#a02a5b0244665d5a790d1020e51c94479"> 92</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_p_s3_u_s_b.html#a02a5b0244665d5a790d1020e51c94479">isReady</a>() {</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordflow">return</span> bPollEnable;</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; };</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div>
<div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="class_p_s3_u_s_b.html#a2dd246a86a9d8a0453199a09b495e608"> 102</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_p_s3_u_s_b.html#a2dd246a86a9d8a0453199a09b495e608">VIDPIDOK</a>(uint16_t vid, uint16_t pid) {</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">return</span> (vid == <a class="code" href="_p_s3_u_s_b_8h.html#a5bb06f989db583d290ba79642d37c514">PS3_VID</a> &amp;&amp; (pid == <a class="code" href="_p_s3_u_s_b_8h.html#a0ae276efa5e73a4da658c714e70402c0">PS3_PID</a> || pid == <a class="code" href="_p_s3_u_s_b_8h.html#a54903b410722a45f8246653cd4d00632">PS3NAVIGATION_PID</a> || pid == <a class="code" href="_p_s3_u_s_b_8h.html#afc242b8a1b867f79c49ad78e3a47b37f">PS3MOVE_PID</a>));</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; };</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#ad50962ff6194746c076084ec0714605a">setBdaddr</a>(uint8_t *bdaddr);</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#a1448bc51226a9b63f2937630da6bd48f">getBdaddr</a>(uint8_t *bdaddr);</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#a3fccc7ef5ac5c414ef8ebcd2e2cdfc80">setMoveBdaddr</a>(uint8_t *bdaddr);</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#a6c722086999db05d8abf5f1f26c19f77">getMoveBdaddr</a>(uint8_t *bdaddr);</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#ab6e97f59f4a62e52cf54cdd302679cd9">getMoveCalibration</a>(uint8_t *data);</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_p_s3_u_s_b.html#a89df07d76648a48c1f0ef8fd9604c201">getButtonPress</a>(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a> b);</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_p_s3_u_s_b.html#ac22875ff006c68daad6f688551f5e6d5">getButtonClick</a>(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a> b);</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; uint8_t <a class="code" href="class_p_s3_u_s_b.html#a6844111657a882b1997ca30d2649bd1c">getAnalogButton</a>(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a> a);</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; uint8_t <a class="code" href="class_p_s3_u_s_b.html#a0de554815afcb66f57d8ac0045f19f2c">getAnalogHat</a>(<a class="code" href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093">AnalogHatEnum</a> a);</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; uint16_t <a class="code" href="class_p_s3_u_s_b.html#aa01170072ec7fd0e557959ea1d79011e">getSensor</a>(<a class="code" href="controller_enums_8h.html#a00d5030559c481763282483889597d51">SensorEnum</a> a);</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordtype">double</span> <a class="code" href="class_p_s3_u_s_b.html#ae5c5316b4c8dae5927b2a2721a28f6c0">getAngle</a>(<a class="code" href="controller_enums_8h.html#a7c7824a10a9ffa8fea85602fcf4d84e6">AngleEnum</a> a);</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_p_s3_u_s_b.html#ad0887b415c3ba180789781a713d98be8">getStatus</a>(<a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161ae">StatusEnum</a> c);</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#a1328a3f017f8d010cd0559c084981021">printStatusString</a>();</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#ac7adc7365bb45d15c37e22f26f012498">setAllOff</a>();</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#aaa1e66d7397be6364d4f76749cbaad5a">setRumbleOff</a>();</div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#a77f44b6007cc735c47bdeaf672c7e464">setRumbleOn</a>(<a class="code" href="controller_enums_8h.html#ab195293384292950ebc2166bfe360fd1">RumbleEnum</a> mode);</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#a77f44b6007cc735c47bdeaf672c7e464">setRumbleOn</a>(uint8_t rightDuration, uint8_t rightPower, uint8_t leftDuration, uint8_t leftPower);</div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#aa0aac5ea016db4cd6736a15e9d6eb41b">setLedRaw</a>(uint8_t value);</div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;</div>
<div class="line"><a name="l00215"></a><span class="lineno"><a class="line" href="class_p_s3_u_s_b.html#ac912fd49bd2a415206df7a8c2b672ea4"> 215</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#ac912fd49bd2a415206df7a8c2b672ea4">setLedOff</a>() {</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#aa0aac5ea016db4cd6736a15e9d6eb41b">setLedRaw</a>(0);</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; }</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#ac912fd49bd2a415206df7a8c2b672ea4">setLedOff</a>(<a class="code" href="controller_enums_8h.html#a70df64e026046bc352983127b7ae2cf0">LEDEnum</a> a);</div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#a3ad10dc81cfca1bdeb2f1310ddf4419d">setLedOn</a>(<a class="code" href="controller_enums_8h.html#a70df64e026046bc352983127b7ae2cf0">LEDEnum</a> a);</div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#a87db50031f7e265baaa82365c14befae">setLedToggle</a>(<a class="code" href="controller_enums_8h.html#a70df64e026046bc352983127b7ae2cf0">LEDEnum</a> a);</div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;</div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#ae9cfdaad3e54dbc271519e22082399c7">moveSetBulb</a>(uint8_t r, uint8_t g, uint8_t b);</div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#ae9cfdaad3e54dbc271519e22082399c7">moveSetBulb</a>(<a class="code" href="controller_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2">ColorsEnum</a> color);</div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#a66d542c2cec73cefb3cdda36ff080e1a">moveSetRumble</a>(uint8_t rumble);</div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;</div>
<div class="line"><a name="l00254"></a><span class="lineno"><a class="line" href="class_p_s3_u_s_b.html#ad06a172d85adf4ffc54dd8117b0be42e"> 254</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#ad06a172d85adf4ffc54dd8117b0be42e">attachOnInit</a>(<span class="keywordtype">void</span> (*funcOnInit)(<span class="keywordtype">void</span>)) {</div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; pFuncOnInit = funcOnInit;</div>
<div class="line"><a name="l00256"></a><span class="lineno"><a class="line" href="class_p_s3_u_s_b.html#a0dad8754ff18d0c375c2569791d50876"> 256</a></span>&#160; };</div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_p_s3_u_s_b.html#a0dad8754ff18d0c375c2569791d50876">PS3Connected</a>;</div>
<div class="line"><a name="l00262"></a><span class="lineno"><a class="line" href="class_p_s3_u_s_b.html#a89aa4233f3eeeb99693a099da527ec28"> 262</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_p_s3_u_s_b.html#a89aa4233f3eeeb99693a099da527ec28">PS3MoveConnected</a>;</div>
<div class="line"><a name="l00264"></a><span class="lineno"><a class="line" href="class_p_s3_u_s_b.html#a54b2dcaa1e9acef83de2376b50c7ff09"> 264</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_p_s3_u_s_b.html#a54b2dcaa1e9acef83de2376b50c7ff09">PS3NavigationConnected</a>;</div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;</div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;<span class="keyword">protected</span>:</div>
<div class="line"><a name="l00268"></a><span class="lineno"><a class="line" href="class_p_s3_u_s_b.html#aa1873f41ae0da7c4568cfb7517560c48"> 268</a></span>&#160; <a class="code" href="class_u_s_b.html">USB</a> *<a class="code" href="class_p_s3_u_s_b.html#aa1873f41ae0da7c4568cfb7517560c48">pUsb</a>;</div>
<div class="line"><a name="l00270"></a><span class="lineno"><a class="line" href="class_p_s3_u_s_b.html#a3f43df159277003acdf7dd107bda27fd"> 270</a></span>&#160; uint8_t <a class="code" href="class_p_s3_u_s_b.html#a3f43df159277003acdf7dd107bda27fd">bAddress</a>;</div>
<div class="line"><a name="l00272"></a><span class="lineno"><a class="line" href="class_p_s3_u_s_b.html#a394dbb0a59b587210e5958f08dac48f1"> 272</a></span>&#160; <a class="code" href="struct_ep_info.html">EpInfo</a> <a class="code" href="class_p_s3_u_s_b.html#a394dbb0a59b587210e5958f08dac48f1">epInfo</a>[<a class="code" href="_p_s3_u_s_b_8h.html#a168ab47b14a95d7cf8066d553a9cb862">PS3_MAX_ENDPOINTS</a>];</div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;</div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keywordtype">void</span> onInit();</div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; void (*pFuncOnInit)(void); <span class="comment">// Pointer to function called in onInit()</span></div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;</div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="keywordtype">void</span> onInit();</div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; void (*pFuncOnInit)(void); <span class="comment">// Pointer to function called in onInit()</span></div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;</div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="keywordtype">bool</span> bPollEnable;</div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;</div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; uint32_t timer; <span class="comment">// used to continuously set PS3 Move controller Bulb and rumble values</span></div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;</div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; uint32_t ButtonState;</div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; uint32_t OldButtonState;</div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; uint32_t ButtonClickState;</div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;</div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; uint8_t my_bdaddr[6]; <span class="comment">// Change to your dongles Bluetooth address in the constructor</span></div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; uint8_t readBuf[<a class="code" href="_p_s3_u_s_b_8h.html#abcb805b13bfd36145e252b0633bbcfc0">EP_MAXPKTSIZE</a>]; <span class="comment">// General purpose buffer for input data</span></div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; uint8_t writeBuf[<a class="code" href="_p_s3_u_s_b_8h.html#abcb805b13bfd36145e252b0633bbcfc0">EP_MAXPKTSIZE</a>]; <span class="comment">// General purpose buffer for output data</span></div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;</div>
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keywordtype">void</span> readReport(); <span class="comment">// read incoming data</span></div>
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="keywordtype">void</span> printReport(); <span class="comment">// print incoming date - Uncomment for debugging</span></div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;</div>
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="comment">/* Private commands */</span></div>
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="keywordtype">void</span> PS3_Command(uint8_t *data, uint16_t nbytes);</div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keywordtype">void</span> enable_sixaxis(); <span class="comment">// Command used to enable the Dualshock 3 and Navigation controller to send data via USB</span></div>
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="keywordtype">void</span> Move_Command(uint8_t *data, uint16_t nbytes);</div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;};</div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keywordtype">bool</span> bPollEnable;</div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;</div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; uint32_t timer; <span class="comment">// used to continuously set PS3 Move controller Bulb and rumble values</span></div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;</div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; uint32_t ButtonState;</div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; uint32_t OldButtonState;</div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; uint32_t ButtonClickState;</div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;</div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; uint8_t my_bdaddr[6]; <span class="comment">// Change to your dongles Bluetooth address in the constructor</span></div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; uint8_t readBuf[<a class="code" href="_p_s3_u_s_b_8h.html#abcb805b13bfd36145e252b0633bbcfc0">EP_MAXPKTSIZE</a>]; <span class="comment">// General purpose buffer for input data</span></div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; uint8_t writeBuf[<a class="code" href="_p_s3_u_s_b_8h.html#abcb805b13bfd36145e252b0633bbcfc0">EP_MAXPKTSIZE</a>]; <span class="comment">// General purpose buffer for output data</span></div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;</div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keywordtype">void</span> readReport(); <span class="comment">// read incoming data</span></div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keywordtype">void</span> printReport(); <span class="comment">// print incoming date - Uncomment for debugging</span></div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;</div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="comment">/* Private commands */</span></div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keywordtype">void</span> PS3_Command(uint8_t *data, uint16_t nbytes);</div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <span class="keywordtype">void</span> enable_sixaxis(); <span class="comment">// Command used to enable the Dualshock 3 and Navigation controller to send data via USB</span></div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="keywordtype">void</span> Move_Command(uint8_t *data, uint16_t nbytes);</div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;};</div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a1448bc51226a9b63f2937630da6bd48f"><div class="ttname"><a href="class_p_s3_u_s_b.html#a1448bc51226a9b63f2937630da6bd48f">PS3USB::getBdaddr</a></div><div class="ttdeci">void getBdaddr(uint8_t *bdaddr)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00476">PS3USB.cpp:476</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html"><div class="ttname"><a href="class_p_s3_u_s_b.html">PS3USB</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00058">PS3USB.h:58</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html"><div class="ttname"><a href="class_p_s3_u_s_b.html">PS3USB</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00049">PS3USB.h:49</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_aa0aac5ea016db4cd6736a15e9d6eb41b"><div class="ttname"><a href="class_p_s3_u_s_b.html#aa0aac5ea016db4cd6736a15e9d6eb41b">PS3USB::setLedRaw</a></div><div class="ttdeci">void setLedRaw(uint8_t value)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00439">PS3USB.cpp:439</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a54b2dcaa1e9acef83de2376b50c7ff09"><div class="ttname"><a href="class_p_s3_u_s_b.html#a54b2dcaa1e9acef83de2376b50c7ff09">PS3USB::PS3NavigationConnected</a></div><div class="ttdeci">bool PS3NavigationConnected</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00273">PS3USB.h:273</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_ac912fd49bd2a415206df7a8c2b672ea4"><div class="ttname"><a href="class_p_s3_u_s_b.html#ac912fd49bd2a415206df7a8c2b672ea4">PS3USB::setLedOff</a></div><div class="ttdeci">void setLedOff()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00224">PS3USB.h:224</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a54b2dcaa1e9acef83de2376b50c7ff09"><div class="ttname"><a href="class_p_s3_u_s_b.html#a54b2dcaa1e9acef83de2376b50c7ff09">PS3USB::PS3NavigationConnected</a></div><div class="ttdeci">bool PS3NavigationConnected</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00264">PS3USB.h:264</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_ac912fd49bd2a415206df7a8c2b672ea4"><div class="ttname"><a href="class_p_s3_u_s_b.html#ac912fd49bd2a415206df7a8c2b672ea4">PS3USB::setLedOff</a></div><div class="ttdeci">void setLedOff()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00215">PS3USB.h:215</a></div></div>
<div class="ttc" id="hid_8h_html"><div class="ttname"><a href="hid_8h.html">hid.h</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_ad50962ff6194746c076084ec0714605a"><div class="ttname"><a href="class_p_s3_u_s_b.html#ad50962ff6194746c076084ec0714605a">PS3USB::setBdaddr</a></div><div class="ttdeci">void setBdaddr(uint8_t *bdaddr)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00463">PS3USB.cpp:463</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a5750c5448bf1ec73a7669ca2e4799c98"><div class="ttname"><a href="class_p_s3_u_s_b.html#a5750c5448bf1ec73a7669ca2e4799c98">PS3USB::Release</a></div><div class="ttdeci">virtual uint8_t Release()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00261">PS3USB.cpp:261</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a5750c5448bf1ec73a7669ca2e4799c98"><div class="ttname"><a href="class_p_s3_u_s_b.html#a5750c5448bf1ec73a7669ca2e4799c98">PS3USB::Release</a></div><div class="ttdeci">uint8_t Release()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00261">PS3USB.cpp:261</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a89df07d76648a48c1f0ef8fd9604c201"><div class="ttname"><a href="class_p_s3_u_s_b.html#a89df07d76648a48c1f0ef8fd9604c201">PS3USB::getButtonPress</a></div><div class="ttdeci">bool getButtonPress(ButtonEnum b)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00315">PS3USB.cpp:315</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a89aa4233f3eeeb99693a099da527ec28"><div class="ttname"><a href="class_p_s3_u_s_b.html#a89aa4233f3eeeb99693a099da527ec28">PS3USB::PS3MoveConnected</a></div><div class="ttdeci">bool PS3MoveConnected</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00271">PS3USB.h:271</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a89aa4233f3eeeb99693a099da527ec28"><div class="ttname"><a href="class_p_s3_u_s_b.html#a89aa4233f3eeeb99693a099da527ec28">PS3USB::PS3MoveConnected</a></div><div class="ttdeci">bool PS3MoveConnected</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00262">PS3USB.h:262</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a34dad8f0a0927471137c403216597093"><div class="ttname"><a href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093">AnalogHatEnum</a></div><div class="ttdeci">AnalogHatEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00151">controllerEnums.h:151</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161ae"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161ae">StatusEnum</a></div><div class="ttdeci">StatusEnum</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00113">PS3Enums.h:113</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html"><div class="ttname"><a href="class_u_s_b_device_config.html">USBDeviceConfig</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00119">UsbCore.h:119</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html"><div class="ttname"><a href="class_u_s_b_device_config.html">USBDeviceConfig</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00121">UsbCore.h:121</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a6c722086999db05d8abf5f1f26c19f77"><div class="ttname"><a href="class_p_s3_u_s_b.html#a6c722086999db05d8abf5f1f26c19f77">PS3USB::getMoveBdaddr</a></div><div class="ttdeci">void getMoveBdaddr(uint8_t *bdaddr)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00541">PS3USB.cpp:541</a></div></div>
<div class="ttc" id="_usb_8h_html"><div class="ttname"><a href="_usb_8h.html">Usb.h</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a6844111657a882b1997ca30d2649bd1c"><div class="ttname"><a href="class_p_s3_u_s_b.html#a6844111657a882b1997ca30d2649bd1c">PS3USB::getAnalogButton</a></div><div class="ttdeci">uint8_t getAnalogButton(ButtonEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00326">PS3USB.cpp:326</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_aa01170072ec7fd0e557959ea1d79011e"><div class="ttname"><a href="class_p_s3_u_s_b.html#aa01170072ec7fd0e557959ea1d79011e">PS3USB::getSensor</a></div><div class="ttdeci">uint16_t getSensor(SensorEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00334">PS3USB.cpp:334</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_aaa1e66d7397be6364d4f76749cbaad5a"><div class="ttname"><a href="class_p_s3_u_s_b.html#aaa1e66d7397be6364d4f76749cbaad5a">PS3USB::setRumbleOff</a></div><div class="ttdeci">void setRumbleOff()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00411">PS3USB.cpp:411</a></div></div>
<div class="ttc" id="_p_s3_u_s_b_8h_html_abcb805b13bfd36145e252b0633bbcfc0"><div class="ttname"><a href="_p_s3_u_s_b_8h.html#abcb805b13bfd36145e252b0633bbcfc0">EP_MAXPKTSIZE</a></div><div class="ttdeci">#define EP_MAXPKTSIZE</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00025">PS3USB.h:25</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a0dad8754ff18d0c375c2569791d50876"><div class="ttname"><a href="class_p_s3_u_s_b.html#a0dad8754ff18d0c375c2569791d50876">PS3USB::PS3Connected</a></div><div class="ttdeci">bool PS3Connected</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00265">PS3USB.h:265</a></div></div>
<div class="ttc" id="_p_s3_u_s_b_8h_html_abcb805b13bfd36145e252b0633bbcfc0"><div class="ttname"><a href="_p_s3_u_s_b_8h.html#abcb805b13bfd36145e252b0633bbcfc0">EP_MAXPKTSIZE</a></div><div class="ttdeci">#define EP_MAXPKTSIZE</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00026">PS3USB.h:26</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a0dad8754ff18d0c375c2569791d50876"><div class="ttname"><a href="class_p_s3_u_s_b.html#a0dad8754ff18d0c375c2569791d50876">PS3USB::PS3Connected</a></div><div class="ttdeci">bool PS3Connected</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00256">PS3USB.h:256</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a70df64e026046bc352983127b7ae2cf0"><div class="ttname"><a href="controller_enums_8h.html#a70df64e026046bc352983127b7ae2cf0">LEDEnum</a></div><div class="ttdeci">LEDEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00027">controllerEnums.h:27</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html"><div class="ttname"><a href="_p_s3_enums_8h.html">PS3Enums.h</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a04b79c271ca14e1e095c6e305c672627"><div class="ttname"><a href="class_p_s3_u_s_b.html#a04b79c271ca14e1e095c6e305c672627">PS3USB::GetAddress</a></div><div class="ttdeci">virtual uint8_t GetAddress()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00093">PS3USB.h:93</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a04b79c271ca14e1e095c6e305c672627"><div class="ttname"><a href="class_p_s3_u_s_b.html#a04b79c271ca14e1e095c6e305c672627">PS3USB::GetAddress</a></div><div class="ttdeci">virtual uint8_t GetAddress()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00084">PS3USB.h:84</a></div></div>
<div class="ttc" id="controller_enums_8h_html_ab195293384292950ebc2166bfe360fd1"><div class="ttname"><a href="controller_enums_8h.html#ab195293384292950ebc2166bfe360fd1">RumbleEnum</a></div><div class="ttdeci">RumbleEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00066">controllerEnums.h:66</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_ad06a172d85adf4ffc54dd8117b0be42e"><div class="ttname"><a href="class_p_s3_u_s_b.html#ad06a172d85adf4ffc54dd8117b0be42e">PS3USB::attachOnInit</a></div><div class="ttdeci">void attachOnInit(void(*funcOnInit)(void))</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00263">PS3USB.h:263</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_ad06a172d85adf4ffc54dd8117b0be42e"><div class="ttname"><a href="class_p_s3_u_s_b.html#ad06a172d85adf4ffc54dd8117b0be42e">PS3USB::attachOnInit</a></div><div class="ttdeci">void attachOnInit(void(*funcOnInit)(void))</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00254">PS3USB.h:254</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a87db50031f7e265baaa82365c14befae"><div class="ttname"><a href="class_p_s3_u_s_b.html#a87db50031f7e265baaa82365c14befae">PS3USB::setLedToggle</a></div><div class="ttdeci">void setLedToggle(LEDEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00458">PS3USB.cpp:458</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_ae9cfdaad3e54dbc271519e22082399c7"><div class="ttname"><a href="class_p_s3_u_s_b.html#ae9cfdaad3e54dbc271519e22082399c7">PS3USB::moveSetBulb</a></div><div class="ttdeci">void moveSetBulb(uint8_t r, uint8_t g, uint8_t b)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00502">PS3USB.cpp:502</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a0083545cb99fb8786e60281fe7a9050d"><div class="ttname"><a href="class_p_s3_u_s_b.html#a0083545cb99fb8786e60281fe7a9050d">PS3USB::Init</a></div><div class="ttdeci">virtual uint8_t Init(uint8_t parent, uint8_t port, bool lowspeed)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00046">PS3USB.cpp:46</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a0083545cb99fb8786e60281fe7a9050d"><div class="ttname"><a href="class_p_s3_u_s_b.html#a0083545cb99fb8786e60281fe7a9050d">PS3USB::Init</a></div><div class="ttdeci">uint8_t Init(uint8_t parent, uint8_t port, bool lowspeed)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00046">PS3USB.cpp:46</a></div></div>
<div class="ttc" id="struct_ep_info_html"><div class="ttname"><a href="struct_ep_info.html">EpInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00032">address.h:32</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a1328a3f017f8d010cd0559c084981021"><div class="ttname"><a href="class_p_s3_u_s_b.html#a1328a3f017f8d010cd0559c084981021">PS3USB::printStatusString</a></div><div class="ttdeci">void printStatusString()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00365">PS3USB.cpp:365</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_ac7adc7365bb45d15c37e22f26f012498"><div class="ttname"><a href="class_p_s3_u_s_b.html#ac7adc7365bb45d15c37e22f26f012498">PS3USB::setAllOff</a></div><div class="ttdeci">void setAllOff()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00404">PS3USB.cpp:404</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fd"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a></div><div class="ttdeci">ButtonEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00072">controllerEnums.h:72</a></div></div>
<div class="ttc" id="_p_s3_u_s_b_8h_html_a0ae276efa5e73a4da658c714e70402c0"><div class="ttname"><a href="_p_s3_u_s_b_8h.html#a0ae276efa5e73a4da658c714e70402c0">PS3_PID</a></div><div class="ttdeci">#define PS3_PID</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00037">PS3USB.h:37</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a2dd246a86a9d8a0453199a09b495e608"><div class="ttname"><a href="class_p_s3_u_s_b.html#a2dd246a86a9d8a0453199a09b495e608">PS3USB::VIDPIDOK</a></div><div class="ttdeci">virtual bool VIDPIDOK(uint16_t vid, uint16_t pid)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00102">PS3USB.h:102</a></div></div>
<div class="ttc" id="_p_s3_u_s_b_8h_html_a0ae276efa5e73a4da658c714e70402c0"><div class="ttname"><a href="_p_s3_u_s_b_8h.html#a0ae276efa5e73a4da658c714e70402c0">PS3_PID</a></div><div class="ttdeci">#define PS3_PID</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00035">PS3USB.h:35</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a0de554815afcb66f57d8ac0045f19f2c"><div class="ttname"><a href="class_p_s3_u_s_b.html#a0de554815afcb66f57d8ac0045f19f2c">PS3USB::getAnalogHat</a></div><div class="ttdeci">uint8_t getAnalogHat(AnalogHatEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00330">PS3USB.cpp:330</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_aa1873f41ae0da7c4568cfb7517560c48"><div class="ttname"><a href="class_p_s3_u_s_b.html#aa1873f41ae0da7c4568cfb7517560c48">PS3USB::pUsb</a></div><div class="ttdeci">USB * pUsb</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00277">PS3USB.h:277</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_aa1873f41ae0da7c4568cfb7517560c48"><div class="ttname"><a href="class_p_s3_u_s_b.html#aa1873f41ae0da7c4568cfb7517560c48">PS3USB::pUsb</a></div><div class="ttdeci">USB * pUsb</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00268">PS3USB.h:268</a></div></div>
<div class="ttc" id="controller_enums_8h_html_aac6fa7b0395b95cc528deaad0ce884a2"><div class="ttname"><a href="controller_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2">ColorsEnum</a></div><div class="ttdeci">ColorsEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00045">controllerEnums.h:45</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a7c7824a10a9ffa8fea85602fcf4d84e6"><div class="ttname"><a href="controller_enums_8h.html#a7c7824a10a9ffa8fea85602fcf4d84e6">AngleEnum</a></div><div class="ttdeci">AngleEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00199">controllerEnums.h:199</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_ae5c5316b4c8dae5927b2a2721a28f6c0"><div class="ttname"><a href="class_p_s3_u_s_b.html#ae5c5316b4c8dae5927b2a2721a28f6c0">PS3USB::getAngle</a></div><div class="ttdeci">double getAngle(AngleEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00338">PS3USB.cpp:338</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a66d542c2cec73cefb3cdda36ff080e1a"><div class="ttname"><a href="class_p_s3_u_s_b.html#a66d542c2cec73cefb3cdda36ff080e1a">PS3USB::moveSetRumble</a></div><div class="ttdeci">void moveSetRumble(uint8_t rumble)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00515">PS3USB.cpp:515</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a9068e2a036012614c0db163830cbcf00"><div class="ttname"><a href="class_p_s3_u_s_b.html#a9068e2a036012614c0db163830cbcf00">PS3USB::Poll</a></div><div class="ttdeci">virtual uint8_t Poll()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00271">PS3USB.cpp:271</a></div></div>
<div class="ttc" id="_p_s3_u_s_b_8h_html_afc242b8a1b867f79c49ad78e3a47b37f"><div class="ttname"><a href="_p_s3_u_s_b_8h.html#afc242b8a1b867f79c49ad78e3a47b37f">PS3MOVE_PID</a></div><div class="ttdeci">#define PS3MOVE_PID</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00039">PS3USB.h:39</a></div></div>
<div class="ttc" id="_p_s3_u_s_b_8h_html_a168ab47b14a95d7cf8066d553a9cb862"><div class="ttname"><a href="_p_s3_u_s_b_8h.html#a168ab47b14a95d7cf8066d553a9cb862">PS3_MAX_ENDPOINTS</a></div><div class="ttdeci">#define PS3_MAX_ENDPOINTS</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00048">PS3USB.h:48</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a394dbb0a59b587210e5958f08dac48f1"><div class="ttname"><a href="class_p_s3_u_s_b.html#a394dbb0a59b587210e5958f08dac48f1">PS3USB::epInfo</a></div><div class="ttdeci">EpInfo epInfo[PS3_MAX_ENDPOINTS]</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00281">PS3USB.h:281</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a9068e2a036012614c0db163830cbcf00"><div class="ttname"><a href="class_p_s3_u_s_b.html#a9068e2a036012614c0db163830cbcf00">PS3USB::Poll</a></div><div class="ttdeci">uint8_t Poll()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00271">PS3USB.cpp:271</a></div></div>
<div class="ttc" id="_p_s3_u_s_b_8h_html_afc242b8a1b867f79c49ad78e3a47b37f"><div class="ttname"><a href="_p_s3_u_s_b_8h.html#afc242b8a1b867f79c49ad78e3a47b37f">PS3MOVE_PID</a></div><div class="ttdeci">#define PS3MOVE_PID</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00037">PS3USB.h:37</a></div></div>
<div class="ttc" id="_p_s3_u_s_b_8h_html_a168ab47b14a95d7cf8066d553a9cb862"><div class="ttname"><a href="_p_s3_u_s_b_8h.html#a168ab47b14a95d7cf8066d553a9cb862">PS3_MAX_ENDPOINTS</a></div><div class="ttdeci">#define PS3_MAX_ENDPOINTS</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00039">PS3USB.h:39</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a394dbb0a59b587210e5958f08dac48f1"><div class="ttname"><a href="class_p_s3_u_s_b.html#a394dbb0a59b587210e5958f08dac48f1">PS3USB::epInfo</a></div><div class="ttdeci">EpInfo epInfo[PS3_MAX_ENDPOINTS]</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00272">PS3USB.h:272</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a77f44b6007cc735c47bdeaf672c7e464"><div class="ttname"><a href="class_p_s3_u_s_b.html#a77f44b6007cc735c47bdeaf672c7e464">PS3USB::setRumbleOn</a></div><div class="ttdeci">void setRumbleOn(RumbleEnum mode)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00420">PS3USB.cpp:420</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_ababb6cbf8297581b27400f9a39d75e5a"><div class="ttname"><a href="class_p_s3_u_s_b.html#ababb6cbf8297581b27400f9a39d75e5a">PS3USB::VIDPIDOK</a></div><div class="ttdeci">virtual boolean VIDPIDOK(uint16_t vid, uint16_t pid)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00111">PS3USB.h:111</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a3ad10dc81cfca1bdeb2f1310ddf4419d"><div class="ttname"><a href="class_p_s3_u_s_b.html#a3ad10dc81cfca1bdeb2f1310ddf4419d">PS3USB::setLedOn</a></div><div class="ttdeci">void setLedOn(LEDEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00449">PS3USB.cpp:449</a></div></div>
<div class="ttc" id="_p_s3_u_s_b_8h_html_a54903b410722a45f8246653cd4d00632"><div class="ttname"><a href="_p_s3_u_s_b_8h.html#a54903b410722a45f8246653cd4d00632">PS3NAVIGATION_PID</a></div><div class="ttdeci">#define PS3NAVIGATION_PID</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00038">PS3USB.h:38</a></div></div>
<div class="ttc" id="_p_s3_u_s_b_8h_html_a5bb06f989db583d290ba79642d37c514"><div class="ttname"><a href="_p_s3_u_s_b_8h.html#a5bb06f989db583d290ba79642d37c514">PS3_VID</a></div><div class="ttdeci">#define PS3_VID</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00036">PS3USB.h:36</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a3f43df159277003acdf7dd107bda27fd"><div class="ttname"><a href="class_p_s3_u_s_b.html#a3f43df159277003acdf7dd107bda27fd">PS3USB::bAddress</a></div><div class="ttdeci">uint8_t bAddress</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00279">PS3USB.h:279</a></div></div>
<div class="ttc" id="_p_s3_u_s_b_8h_html_a54903b410722a45f8246653cd4d00632"><div class="ttname"><a href="_p_s3_u_s_b_8h.html#a54903b410722a45f8246653cd4d00632">PS3NAVIGATION_PID</a></div><div class="ttdeci">#define PS3NAVIGATION_PID</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00036">PS3USB.h:36</a></div></div>
<div class="ttc" id="_p_s3_u_s_b_8h_html_a5bb06f989db583d290ba79642d37c514"><div class="ttname"><a href="_p_s3_u_s_b_8h.html#a5bb06f989db583d290ba79642d37c514">PS3_VID</a></div><div class="ttdeci">#define PS3_VID</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00034">PS3USB.h:34</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a3f43df159277003acdf7dd107bda27fd"><div class="ttname"><a href="class_p_s3_u_s_b.html#a3f43df159277003acdf7dd107bda27fd">PS3USB::bAddress</a></div><div class="ttdeci">uint8_t bAddress</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00270">PS3USB.h:270</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a3fccc7ef5ac5c414ef8ebcd2e2cdfc80"><div class="ttname"><a href="class_p_s3_u_s_b.html#a3fccc7ef5ac5c414ef8ebcd2e2cdfc80">PS3USB::setMoveBdaddr</a></div><div class="ttdeci">void setMoveBdaddr(uint8_t *bdaddr)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00525">PS3USB.cpp:525</a></div></div>
<div class="ttc" id="class_u_s_b_html"><div class="ttname"><a href="class_u_s_b.html">USB</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00190">UsbCore.h:190</a></div></div>
<div class="ttc" id="class_u_s_b_html"><div class="ttname"><a href="class_u_s_b.html">USB</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00197">UsbCore.h:197</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a00d5030559c481763282483889597d51"><div class="ttname"><a href="controller_enums_8h.html#a00d5030559c481763282483889597d51">SensorEnum</a></div><div class="ttdeci">SensorEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00166">controllerEnums.h:166</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_ac919404d4caf4625467756272f8d5502"><div class="ttname"><a href="class_p_s3_u_s_b.html#ac919404d4caf4625467756272f8d5502">PS3USB::PS3USB</a></div><div class="ttdeci">PS3USB(USB *pUsb, uint8_t btadr5=0, uint8_t btadr4=0, uint8_t btadr3=0, uint8_t btadr2=0, uint8_t btadr1=0, uint8_t btadr0=0)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00023">PS3USB.cpp:23</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_ab6e97f59f4a62e52cf54cdd302679cd9"><div class="ttname"><a href="class_p_s3_u_s_b.html#ab6e97f59f4a62e52cf54cdd302679cd9">PS3USB::getMoveCalibration</a></div><div class="ttdeci">void getMoveCalibration(uint8_t *data)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00551">PS3USB.cpp:551</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_ad0887b415c3ba180789781a713d98be8"><div class="ttname"><a href="class_p_s3_u_s_b.html#ad0887b415c3ba180789781a713d98be8">PS3USB::getStatus</a></div><div class="ttdeci">bool getStatus(StatusEnum c)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00361">PS3USB.cpp:361</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a02a5b0244665d5a790d1020e51c94479"><div class="ttname"><a href="class_p_s3_u_s_b.html#a02a5b0244665d5a790d1020e51c94479">PS3USB::isReady</a></div><div class="ttdeci">virtual bool isReady()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00101">PS3USB.h:101</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a02a5b0244665d5a790d1020e51c94479"><div class="ttname"><a href="class_p_s3_u_s_b.html#a02a5b0244665d5a790d1020e51c94479">PS3USB::isReady</a></div><div class="ttdeci">virtual bool isReady()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00092">PS3USB.h:92</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_ac22875ff006c68daad6f688551f5e6d5"><div class="ttname"><a href="class_p_s3_u_s_b.html#ac22875ff006c68daad6f688551f5e6d5">PS3USB::getButtonClick</a></div><div class="ttdeci">bool getButtonClick(ButtonEnum b)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00319">PS3USB.cpp:319</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.7
</a> 1.8.9.1
</small></address>
</body>
</html>

View file

@ -3,15 +3,16 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<meta name="generator" content="Doxygen 1.8.9.1"/>
<title>USB Host Shield 2.0: PS4BT.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="imageStyle.css" rel="stylesheet" type="text/css"/>
@ -31,7 +32,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.7 -->
<!-- Generated by Doxygen 1.8.9.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -70,7 +71,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
@ -98,7 +99,7 @@ Include dependency graph for PS4BT.h:</div>
<div class="dyncontent">
<div class="center"><img src="_p_s4_b_t_8h__incl.png" border="0" usemap="#_p_s4_b_t_8h" alt=""/></div>
<map name="_p_s4_b_t_8h" id="_p_s4_b_t_8h">
<area shape="rect" id="node2" href="_b_t_h_i_d_8h.html" title="BTHID.h" alt="" coords="92,79,164,104"/><area shape="rect" id="node8" href="_p_s4_parser_8h.html" title="PS4Parser.h" alt="" coords="208,79,304,104"/><area shape="rect" id="node3" href="_b_t_d_8h.html" title="BTD.h" alt="" coords="5,225,64,251"/><area shape="rect" id="node5" href="hidboot_8h.html" title="hidboot.h" alt="" coords="90,152,166,177"/><area shape="rect" id="node4" href="_usb_8h.html" title="Usb.h" alt="" coords="96,372,152,397"/><area shape="rect" id="node6" href="hid_8h.html" title="hid.h" alt="" coords="103,225,153,251"/><area shape="rect" id="node7" href="hidusagestr_8h.html" title="hidusagestr.h" alt="" coords="118,299,219,324"/><area shape="rect" id="node9" href="controller_enums_8h.html" title="controllerEnums.h" alt="" coords="293,152,422,177"/></map>
<area shape="rect" id="node2" href="_b_t_h_i_d_8h.html" title="BTHID.h" alt="" coords="91,79,163,104"/><area shape="rect" id="node8" href="_p_s4_parser_8h.html" title="PS4Parser.h" alt="" coords="200,79,296,104"/><area shape="rect" id="node3" href="_b_t_d_8h.html" title="BTD.h" alt="" coords="5,152,64,177"/><area shape="rect" id="node7" href="hidboot_8h.html" title="hidboot.h" alt="" coords="89,152,165,177"/><area shape="rect" id="node4" href="_usb_8h.html" title="Usb.h" alt="" coords="88,372,144,397"/><area shape="rect" id="node5" href="hid_8h.html" title="hid.h" alt="" coords="80,225,131,251"/><area shape="rect" id="node6" href="hidusagestr_8h.html" title="hidusagestr.h" alt="" coords="110,299,211,324"/><area shape="rect" id="node9" href="controller_enums_8h.html" title="controllerEnums.h" alt="" coords="285,152,414,177"/></map>
</div>
</div>
<p><a href="_p_s4_b_t_8h_source.html">Go to the source code of this file.</a></p>
@ -113,7 +114,7 @@ Classes</h2></td></tr>
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.7
</a> 1.8.9.1
</small></address>
</body>
</html>

View file

@ -1,10 +1,10 @@
<map id="PS4BT.h" name="PS4BT.h">
<area shape="rect" id="node2" href="$_b_t_h_i_d_8h.html" title="BTHID.h" alt="" coords="92,79,164,104"/>
<area shape="rect" id="node8" href="$_p_s4_parser_8h.html" title="PS4Parser.h" alt="" coords="208,79,304,104"/>
<area shape="rect" id="node3" href="$_b_t_d_8h.html" title="BTD.h" alt="" coords="5,225,64,251"/>
<area shape="rect" id="node5" href="$hidboot_8h.html" title="hidboot.h" alt="" coords="90,152,166,177"/>
<area shape="rect" id="node4" href="$_usb_8h.html" title="Usb.h" alt="" coords="96,372,152,397"/>
<area shape="rect" id="node6" href="$hid_8h.html" title="hid.h" alt="" coords="103,225,153,251"/>
<area shape="rect" id="node7" href="$hidusagestr_8h.html" title="hidusagestr.h" alt="" coords="118,299,219,324"/>
<area shape="rect" id="node9" href="$controller_enums_8h.html" title="controllerEnums.h" alt="" coords="293,152,422,177"/>
<area shape="rect" id="node2" href="$_b_t_h_i_d_8h.html" title="BTHID.h" alt="" coords="91,79,163,104"/>
<area shape="rect" id="node8" href="$_p_s4_parser_8h.html" title="PS4Parser.h" alt="" coords="200,79,296,104"/>
<area shape="rect" id="node3" href="$_b_t_d_8h.html" title="BTD.h" alt="" coords="5,152,64,177"/>
<area shape="rect" id="node7" href="$hidboot_8h.html" title="hidboot.h" alt="" coords="89,152,165,177"/>
<area shape="rect" id="node4" href="$_usb_8h.html" title="Usb.h" alt="" coords="88,372,144,397"/>
<area shape="rect" id="node5" href="$hid_8h.html" title="hid.h" alt="" coords="80,225,131,251"/>
<area shape="rect" id="node6" href="$hidusagestr_8h.html" title="hidusagestr.h" alt="" coords="110,299,211,324"/>
<area shape="rect" id="node9" href="$controller_enums_8h.html" title="controllerEnums.h" alt="" coords="285,152,414,177"/>
</map>

View file

@ -1 +1 @@
105dd8723b891d12cb3a66169e6fa9c1
ce812a189234822fb9d18733d5d06169

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 29 KiB

View file

@ -3,15 +3,16 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<meta name="generator" content="Doxygen 1.8.9.1"/>
<title>USB Host Shield 2.0: PS4BT.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="imageStyle.css" rel="stylesheet" type="text/css"/>
@ -31,7 +32,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.7 -->
<!-- Generated by Doxygen 1.8.9.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -70,7 +71,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
@ -123,106 +124,100 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_b_t_h_i_d.html#ab3a81823a1d8805383146a6baad6ccc4">BTHID::connected</a>;</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; };</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div>
<div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="class_p_s4_b_t.html#a63c57ecc5c678da13e7787792e385ec9"> 53</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s4_b_t.html#a63c57ecc5c678da13e7787792e385ec9">attachOnInit</a>(<span class="keywordtype">void</span> (*funcOnInit)(<span class="keywordtype">void</span>)) {</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; pFuncOnInit = funcOnInit;</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; };</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="keyword">protected</span>:</div>
<div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="class_p_s4_b_t.html#a0d92689d0c24e62ddc7a1b3c4c658512"> 64</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_p_s4_b_t.html#a0d92689d0c24e62ddc7a1b3c4c658512">ParseBTHIDData</a>(uint8_t len, uint8_t *buf) {</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <a class="code" href="class_p_s4_parser.html#a6498fdeb767364e84ce09ef208980622">PS4Parser::Parse</a>(len, buf);</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; };</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div>
<div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="class_p_s4_b_t.html#a91088a6ed093d3cebb82d8f5e208304b"> 73</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_p_s4_b_t.html#a91088a6ed093d3cebb82d8f5e208304b">OnInitBTHID</a>() {</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <a class="code" href="class_p_s4_parser.html#a24640b2362b0f6f51785fbd3dd4f13f9">PS4Parser::Reset</a>();</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; enable_sixaxis(); <span class="comment">// Make the controller send out the entire output report</span></div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">if</span> (pFuncOnInit)</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; pFuncOnInit(); <span class="comment">// Call the user function</span></div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <a class="code" href="class_p_s4_parser.html#a3f709524b0303086591d81bd238e62e8">setLed</a>(<a class="code" href="controller_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2af5e09dd1da4088464f264b7a3118bff8">Blue</a>);</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; };</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div>
<div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="class_p_s4_b_t.html#a4b1c9e15ccdc7ab24f7fb42fc9b5d827"> 83</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_p_s4_b_t.html#a4b1c9e15ccdc7ab24f7fb42fc9b5d827">ResetBTHID</a>() {</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <a class="code" href="class_p_s4_parser.html#a24640b2362b0f6f51785fbd3dd4f13f9">PS4Parser::Reset</a>();</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; };</div>
<div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="class_p_s4_b_t.html#ad3bb50902905677726bd62d5f394b062"> 89</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_p_s4_b_t.html#ad3bb50902905677726bd62d5f394b062">sendOutputReport</a>(<a class="code" href="struct_p_s4_output.html">PS4Output</a> *output) { <span class="comment">// Source: https://github.com/chrippa/ds4drv</span></div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; uint8_t buf[79];</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; memset(buf, 0, <span class="keyword">sizeof</span>(buf));</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">protected</span>:</div>
<div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="class_p_s4_b_t.html#a0d92689d0c24e62ddc7a1b3c4c658512"> 56</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_p_s4_b_t.html#a0d92689d0c24e62ddc7a1b3c4c658512">ParseBTHIDData</a>(uint8_t len, uint8_t *buf) {</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <a class="code" href="class_p_s4_parser.html#a6498fdeb767364e84ce09ef208980622">PS4Parser::Parse</a>(len, buf);</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; };</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div>
<div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="class_p_s4_b_t.html#a91088a6ed093d3cebb82d8f5e208304b"> 65</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_p_s4_b_t.html#a91088a6ed093d3cebb82d8f5e208304b">OnInitBTHID</a>() {</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <a class="code" href="class_p_s4_parser.html#a24640b2362b0f6f51785fbd3dd4f13f9">PS4Parser::Reset</a>();</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; enable_sixaxis(); <span class="comment">// Make the controller send out the entire output report</span></div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="class_bluetooth_service.html#a321393d44ce59213fa1c7498c247d5ff">pFuncOnInit</a>)</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <a class="code" href="class_bluetooth_service.html#a321393d44ce59213fa1c7498c247d5ff">pFuncOnInit</a>(); <span class="comment">// Call the user function</span></div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <a class="code" href="class_p_s4_parser.html#a3f709524b0303086591d81bd238e62e8">setLed</a>(<a class="code" href="controller_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2af5e09dd1da4088464f264b7a3118bff8">Blue</a>);</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; };</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div>
<div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="class_p_s4_b_t.html#a4b1c9e15ccdc7ab24f7fb42fc9b5d827"> 75</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_p_s4_b_t.html#a4b1c9e15ccdc7ab24f7fb42fc9b5d827">ResetBTHID</a>() {</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <a class="code" href="class_p_s4_parser.html#a24640b2362b0f6f51785fbd3dd4f13f9">PS4Parser::Reset</a>();</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; };</div>
<div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="class_p_s4_b_t.html#ad3bb50902905677726bd62d5f394b062"> 81</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_p_s4_b_t.html#ad3bb50902905677726bd62d5f394b062">sendOutputReport</a>(<a class="code" href="struct_p_s4_output.html">PS4Output</a> *output) { <span class="comment">// Source: https://github.com/chrippa/ds4drv</span></div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; uint8_t buf[79];</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; memset(buf, 0, <span class="keyword">sizeof</span>(buf));</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; buf[0] = 0x52; <span class="comment">// HID BT Set_report (0x50) | Report Type (Output 0x02)</span></div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; buf[1] = 0x11; <span class="comment">// Report ID</span></div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; buf[2] = 0x80;</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; buf[4]= 0xFF;</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; buf[7] = output-&gt;<a class="code" href="struct_p_s4_output.html#a8c6030198733f66a5cb96b8a49e07618">smallRumble</a>; <span class="comment">// Small Rumble</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; buf[8] = output-&gt;<a class="code" href="struct_p_s4_output.html#ac9e9e57cfce3e7b9588abb273bd908ec">bigRumble</a>; <span class="comment">// Big rumble</span></div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; buf[0] = 0x52; <span class="comment">// HID BT Set_report (0x50) | Report Type (Output 0x02)</span></div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; buf[1] = 0x11; <span class="comment">// Report ID</span></div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; buf[2] = 0x80;</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; buf[4]= 0xFF;</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; buf[7] = output-&gt;<a class="code" href="struct_p_s4_output.html#a8c6030198733f66a5cb96b8a49e07618">smallRumble</a>; <span class="comment">// Small Rumble</span></div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; buf[8] = output-&gt;<a class="code" href="struct_p_s4_output.html#ac9e9e57cfce3e7b9588abb273bd908ec">bigRumble</a>; <span class="comment">// Big rumble</span></div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; buf[9] = output-&gt;<a class="code" href="struct_p_s4_output.html#a76a85e749899e2e6cb135a6ec6acabb3">r</a>; <span class="comment">// Red</span></div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; buf[10] = output-&gt;<a class="code" href="struct_p_s4_output.html#afc78d4e2c0aafbf4b0a27db3746ad93c">g</a>; <span class="comment">// Green</span></div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; buf[11] = output-&gt;<a class="code" href="struct_p_s4_output.html#a237a65d5e6deff4a2ef1ca97c7383777">b</a>; <span class="comment">// Blue</span></div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; buf[12] = output-&gt;<a class="code" href="struct_p_s4_output.html#a4abdb9a24e512f7f2bad16df28b2fcab">flashOn</a>; <span class="comment">// Time to flash bright (255 = 2.5 seconds)</span></div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; buf[13] = output-&gt;<a class="code" href="struct_p_s4_output.html#a3f4dcb81acca1475402b93ac851b7be8">flashOff</a>; <span class="comment">// Time to flash dark (255 = 2.5 seconds)</span></div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; output-&gt;<a class="code" href="struct_p_s4_output.html#aff395d1c46c9016ab4ea8ddbf034788b">reportChanged</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="comment">// The PS4 console actually set the four last bytes to a CRC32 checksum, but it seems like it is actually not needed</span></div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; HID_Command(buf, <span class="keyword">sizeof</span>(buf));</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; };</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordtype">void</span> enable_sixaxis() { <span class="comment">// Command used to make the PS4 controller send out the entire output report</span></div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; uint8_t buf[2];</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; buf[0] = 0x43; <span class="comment">// HID BT Get_report (0x40) | Report Type (Feature 0x03)</span></div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; buf[1] = 0x02; <span class="comment">// Report ID</span></div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; HID_Command(buf, 2);</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; };</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordtype">void</span> HID_Command(uint8_t *data, uint8_t nbytes) {</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#aad7d8ef46e60b48ff4aaabefb0b290e7">L2CAP_Command</a>(<a class="code" href="class_b_t_h_i_d.html#a8e4888359cda09bc7123d971bb9d8dcf">hci_handle</a>, data, nbytes, <a class="code" href="class_b_t_h_i_d.html#acf6933a4988ed9f48c6e08cc7c9b906c">control_scid</a>[0], <a class="code" href="class_b_t_h_i_d.html#acf6933a4988ed9f48c6e08cc7c9b906c">control_scid</a>[1]);</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; };</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; void (*pFuncOnInit)(void); <span class="comment">// Pointer to function called in onInit()</span></div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;};</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; buf[9] = output-&gt;<a class="code" href="struct_p_s4_output.html#a76a85e749899e2e6cb135a6ec6acabb3">r</a>; <span class="comment">// Red</span></div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; buf[10] = output-&gt;<a class="code" href="struct_p_s4_output.html#afc78d4e2c0aafbf4b0a27db3746ad93c">g</a>; <span class="comment">// Green</span></div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; buf[11] = output-&gt;<a class="code" href="struct_p_s4_output.html#a237a65d5e6deff4a2ef1ca97c7383777">b</a>; <span class="comment">// Blue</span></div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; buf[12] = output-&gt;<a class="code" href="struct_p_s4_output.html#a4abdb9a24e512f7f2bad16df28b2fcab">flashOn</a>; <span class="comment">// Time to flash bright (255 = 2.5 seconds)</span></div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; buf[13] = output-&gt;<a class="code" href="struct_p_s4_output.html#a3f4dcb81acca1475402b93ac851b7be8">flashOff</a>; <span class="comment">// Time to flash dark (255 = 2.5 seconds)</span></div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; output-&gt;<a class="code" href="struct_p_s4_output.html#aff395d1c46c9016ab4ea8ddbf034788b">reportChanged</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="comment">// The PS4 console actually set the four last bytes to a CRC32 checksum, but it seems like it is actually not needed</span></div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; HID_Command(buf, <span class="keyword">sizeof</span>(buf));</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; };</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordtype">void</span> enable_sixaxis() { <span class="comment">// Command used to make the PS4 controller send out the entire output report</span></div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; uint8_t buf[2];</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; buf[0] = 0x43; <span class="comment">// HID BT Get_report (0x40) | Report Type (Feature 0x03)</span></div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; buf[1] = 0x02; <span class="comment">// Report ID</span></div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; HID_Command(buf, 2);</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; };</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordtype">void</span> HID_Command(uint8_t *data, uint8_t nbytes) {</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <a class="code" href="class_bluetooth_service.html#aa67faf901f78a55a202945a20f6d778a">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#aad7d8ef46e60b48ff4aaabefb0b290e7">L2CAP_Command</a>(<a class="code" href="class_bluetooth_service.html#a67b1db67c05d0bbdcd9c992135455437">hci_handle</a>, data, nbytes, <a class="code" href="class_b_t_h_i_d.html#acf6933a4988ed9f48c6e08cc7c9b906c">control_scid</a>[0], <a class="code" href="class_b_t_h_i_d.html#acf6933a4988ed9f48c6e08cc7c9b906c">control_scid</a>[1]);</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; };</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;};</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="ttc" id="class_p_s4_parser_html_a24640b2362b0f6f51785fbd3dd4f13f9"><div class="ttname"><a href="class_p_s4_parser.html#a24640b2362b0f6f51785fbd3dd4f13f9">PS4Parser::Reset</a></div><div class="ttdeci">void Reset()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00369">PS4Parser.h:369</a></div></div>
<div class="ttc" id="class_b_t_d_html"><div class="ttname"><a href="class_b_t_d.html">BTD</a></div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00230">BTD.h:230</a></div></div>
<div class="ttc" id="class_b_t_d_html"><div class="ttname"><a href="class_b_t_d.html">BTD</a></div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00198">BTD.h:198</a></div></div>
<div class="ttc" id="struct_p_s4_output_html_a237a65d5e6deff4a2ef1ca97c7383777"><div class="ttname"><a href="struct_p_s4_output.html#a237a65d5e6deff4a2ef1ca97c7383777">PS4Output::b</a></div><div class="ttdeci">uint8_t b</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00118">PS4Parser.h:118</a></div></div>
<div class="ttc" id="class_p_s4_parser_html_a3f709524b0303086591d81bd238e62e8"><div class="ttname"><a href="class_p_s4_parser.html#a3f709524b0303086591d81bd238e62e8">PS4Parser::setLed</a></div><div class="ttdeci">void setLed(uint8_t r, uint8_t g, uint8_t b)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00333">PS4Parser.h:333</a></div></div>
<div class="ttc" id="class_p_s4_b_t_html_a08a857b8533e59f6eb872e4c8f727405"><div class="ttname"><a href="class_p_s4_b_t.html#a08a857b8533e59f6eb872e4c8f727405">PS4BT::connected</a></div><div class="ttdeci">bool connected()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00045">PS4BT.h:45</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_ab3a81823a1d8805383146a6baad6ccc4"><div class="ttname"><a href="class_b_t_h_i_d.html#ab3a81823a1d8805383146a6baad6ccc4">BTHID::connected</a></div><div class="ttdeci">bool connected</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00092">BTHID.h:92</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_ab3a81823a1d8805383146a6baad6ccc4"><div class="ttname"><a href="class_b_t_h_i_d.html#ab3a81823a1d8805383146a6baad6ccc4">BTHID::connected</a></div><div class="ttdeci">bool connected</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00083">BTHID.h:83</a></div></div>
<div class="ttc" id="struct_p_s4_output_html_a4abdb9a24e512f7f2bad16df28b2fcab"><div class="ttname"><a href="struct_p_s4_output.html#a4abdb9a24e512f7f2bad16df28b2fcab">PS4Output::flashOn</a></div><div class="ttdeci">uint8_t flashOn</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00119">PS4Parser.h:119</a></div></div>
<div class="ttc" id="struct_p_s4_output_html"><div class="ttname"><a href="struct_p_s4_output.html">PS4Output</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00116">PS4Parser.h:116</a></div></div>
<div class="ttc" id="class_p_s4_b_t_html_a63c57ecc5c678da13e7787792e385ec9"><div class="ttname"><a href="class_p_s4_b_t.html#a63c57ecc5c678da13e7787792e385ec9">PS4BT::attachOnInit</a></div><div class="ttdeci">void attachOnInit(void(*funcOnInit)(void))</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00053">PS4BT.h:53</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_acf6933a4988ed9f48c6e08cc7c9b906c"><div class="ttname"><a href="class_b_t_h_i_d.html#acf6933a4988ed9f48c6e08cc7c9b906c">BTHID::control_scid</a></div><div class="ttdeci">uint8_t control_scid[2]</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00136">BTHID.h:136</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_acf6933a4988ed9f48c6e08cc7c9b906c"><div class="ttname"><a href="class_b_t_h_i_d.html#acf6933a4988ed9f48c6e08cc7c9b906c">BTHID::control_scid</a></div><div class="ttdeci">uint8_t control_scid[2]</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00134">BTHID.h:134</a></div></div>
<div class="ttc" id="struct_p_s4_output_html_afc78d4e2c0aafbf4b0a27db3746ad93c"><div class="ttname"><a href="struct_p_s4_output.html#afc78d4e2c0aafbf4b0a27db3746ad93c">PS4Output::g</a></div><div class="ttdeci">uint8_t g</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00118">PS4Parser.h:118</a></div></div>
<div class="ttc" id="struct_p_s4_output_html_aff395d1c46c9016ab4ea8ddbf034788b"><div class="ttname"><a href="struct_p_s4_output.html#aff395d1c46c9016ab4ea8ddbf034788b">PS4Output::reportChanged</a></div><div class="ttdeci">bool reportChanged</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00120">PS4Parser.h:120</a></div></div>
<div class="ttc" id="class_p_s4_parser_html_a6498fdeb767364e84ce09ef208980622"><div class="ttname"><a href="class_p_s4_parser.html#a6498fdeb767364e84ce09ef208980622">PS4Parser::Parse</a></div><div class="ttdeci">void Parse(uint8_t len, uint8_t *buf)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8cpp_source.html#l00064">PS4Parser.cpp:64</a></div></div>
<div class="ttc" id="_b_t_h_i_d_8h_html"><div class="ttname"><a href="_b_t_h_i_d_8h.html">BTHID.h</a></div></div>
<div class="ttc" id="struct_p_s4_output_html_a76a85e749899e2e6cb135a6ec6acabb3"><div class="ttname"><a href="struct_p_s4_output.html#a76a85e749899e2e6cb135a6ec6acabb3">PS4Output::r</a></div><div class="ttdeci">uint8_t r</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00118">PS4Parser.h:118</a></div></div>
<div class="ttc" id="class_p_s4_b_t_html_a0d92689d0c24e62ddc7a1b3c4c658512"><div class="ttname"><a href="class_p_s4_b_t.html#a0d92689d0c24e62ddc7a1b3c4c658512">PS4BT::ParseBTHIDData</a></div><div class="ttdeci">virtual void ParseBTHIDData(uint8_t len, uint8_t *buf)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00064">PS4BT.h:64</a></div></div>
<div class="ttc" id="class_p_s4_b_t_html_a0d92689d0c24e62ddc7a1b3c4c658512"><div class="ttname"><a href="class_p_s4_b_t.html#a0d92689d0c24e62ddc7a1b3c4c658512">PS4BT::ParseBTHIDData</a></div><div class="ttdeci">virtual void ParseBTHIDData(uint8_t len, uint8_t *buf)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00056">PS4BT.h:56</a></div></div>
<div class="ttc" id="struct_p_s4_output_html_ac9e9e57cfce3e7b9588abb273bd908ec"><div class="ttname"><a href="struct_p_s4_output.html#ac9e9e57cfce3e7b9588abb273bd908ec">PS4Output::bigRumble</a></div><div class="ttdeci">uint8_t bigRumble</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00117">PS4Parser.h:117</a></div></div>
<div class="ttc" id="struct_p_s4_output_html_a3f4dcb81acca1475402b93ac851b7be8"><div class="ttname"><a href="struct_p_s4_output.html#a3f4dcb81acca1475402b93ac851b7be8">PS4Output::flashOff</a></div><div class="ttdeci">uint8_t flashOff</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00119">PS4Parser.h:119</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_a02c37811a4a401618caf188e744e8e3d"><div class="ttname"><a href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">BTHID::pBtd</a></div><div class="ttdeci">BTD * pBtd</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00129">BTHID.h:129</a></div></div>
<div class="ttc" id="class_bluetooth_service_html_a321393d44ce59213fa1c7498c247d5ff"><div class="ttname"><a href="class_bluetooth_service.html#a321393d44ce59213fa1c7498c247d5ff">BluetoothService::pFuncOnInit</a></div><div class="ttdeci">void(* pFuncOnInit)(void)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00603">BTD.h:603</a></div></div>
<div class="ttc" id="struct_p_s4_output_html_a8c6030198733f66a5cb96b8a49e07618"><div class="ttname"><a href="struct_p_s4_output.html#a8c6030198733f66a5cb96b8a49e07618">PS4Output::smallRumble</a></div><div class="ttdeci">uint8_t smallRumble</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00117">PS4Parser.h:117</a></div></div>
<div class="ttc" id="_p_s4_parser_8h_html"><div class="ttname"><a href="_p_s4_parser_8h.html">PS4Parser.h</a></div></div>
<div class="ttc" id="class_p_s4_parser_html"><div class="ttname"><a href="class_p_s4_parser.html">PS4Parser</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00136">PS4Parser.h:136</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_a8e4888359cda09bc7123d971bb9d8dcf"><div class="ttname"><a href="class_b_t_h_i_d.html#a8e4888359cda09bc7123d971bb9d8dcf">BTHID::hci_handle</a></div><div class="ttdeci">uint16_t hci_handle</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00132">BTHID.h:132</a></div></div>
<div class="ttc" id="class_p_s4_b_t_html_ad3bb50902905677726bd62d5f394b062"><div class="ttname"><a href="class_p_s4_b_t.html#ad3bb50902905677726bd62d5f394b062">PS4BT::sendOutputReport</a></div><div class="ttdeci">virtual void sendOutputReport(PS4Output *output)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00089">PS4BT.h:89</a></div></div>
<div class="ttc" id="class_p_s4_b_t_html_a4b1c9e15ccdc7ab24f7fb42fc9b5d827"><div class="ttname"><a href="class_p_s4_b_t.html#a4b1c9e15ccdc7ab24f7fb42fc9b5d827">PS4BT::ResetBTHID</a></div><div class="ttdeci">virtual void ResetBTHID()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00083">PS4BT.h:83</a></div></div>
<div class="ttc" id="class_p_s4_b_t_html_ad3bb50902905677726bd62d5f394b062"><div class="ttname"><a href="class_p_s4_b_t.html#ad3bb50902905677726bd62d5f394b062">PS4BT::sendOutputReport</a></div><div class="ttdeci">virtual void sendOutputReport(PS4Output *output)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00081">PS4BT.h:81</a></div></div>
<div class="ttc" id="class_bluetooth_service_html_aa67faf901f78a55a202945a20f6d778a"><div class="ttname"><a href="class_bluetooth_service.html#aa67faf901f78a55a202945a20f6d778a">BluetoothService::pBtd</a></div><div class="ttdeci">BTD * pBtd</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00606">BTD.h:606</a></div></div>
<div class="ttc" id="class_p_s4_b_t_html_a4b1c9e15ccdc7ab24f7fb42fc9b5d827"><div class="ttname"><a href="class_p_s4_b_t.html#a4b1c9e15ccdc7ab24f7fb42fc9b5d827">PS4BT::ResetBTHID</a></div><div class="ttdeci">virtual void ResetBTHID()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00075">PS4BT.h:75</a></div></div>
<div class="ttc" id="controller_enums_8h_html_aac6fa7b0395b95cc528deaad0ce884a2af5e09dd1da4088464f264b7a3118bff8"><div class="ttname"><a href="controller_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2af5e09dd1da4088464f264b7a3118bff8">Blue</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00051">controllerEnums.h:51</a></div></div>
<div class="ttc" id="class_p_s4_b_t_html_a616d5167f795b14c5955910807b5024b"><div class="ttname"><a href="class_p_s4_b_t.html#a616d5167f795b14c5955910807b5024b">PS4BT::PS4BT</a></div><div class="ttdeci">PS4BT(BTD *p, bool pair=false, const char *pin=&quot;0000&quot;)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00036">PS4BT.h:36</a></div></div>
<div class="ttc" id="class_p_s4_b_t_html_a91088a6ed093d3cebb82d8f5e208304b"><div class="ttname"><a href="class_p_s4_b_t.html#a91088a6ed093d3cebb82d8f5e208304b">PS4BT::OnInitBTHID</a></div><div class="ttdeci">virtual void OnInitBTHID()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00073">PS4BT.h:73</a></div></div>
<div class="ttc" id="class_b_t_d_html_aad7d8ef46e60b48ff4aaabefb0b290e7"><div class="ttname"><a href="class_b_t_d.html#aad7d8ef46e60b48ff4aaabefb0b290e7">BTD::L2CAP_Command</a></div><div class="ttdeci">void L2CAP_Command(uint16_t handle, uint8_t *data, uint8_t nbytes, uint8_t channelLow=0x01, uint8_t channelHigh=0x00)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01190">BTD.cpp:1190</a></div></div>
<div class="ttc" id="class_bluetooth_service_html_a67b1db67c05d0bbdcd9c992135455437"><div class="ttname"><a href="class_bluetooth_service.html#a67b1db67c05d0bbdcd9c992135455437">BluetoothService::hci_handle</a></div><div class="ttdeci">uint16_t hci_handle</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00609">BTD.h:609</a></div></div>
<div class="ttc" id="class_p_s4_b_t_html_a91088a6ed093d3cebb82d8f5e208304b"><div class="ttname"><a href="class_p_s4_b_t.html#a91088a6ed093d3cebb82d8f5e208304b">PS4BT::OnInitBTHID</a></div><div class="ttdeci">virtual void OnInitBTHID()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00065">PS4BT.h:65</a></div></div>
<div class="ttc" id="class_b_t_d_html_aad7d8ef46e60b48ff4aaabefb0b290e7"><div class="ttname"><a href="class_b_t_d.html#aad7d8ef46e60b48ff4aaabefb0b290e7">BTD::L2CAP_Command</a></div><div class="ttdeci">void L2CAP_Command(uint16_t handle, uint8_t *data, uint8_t nbytes, uint8_t channelLow=0x01, uint8_t channelHigh=0x00)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01198">BTD.cpp:1198</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html"><div class="ttname"><a href="class_b_t_h_i_d.html">BTHID</a></div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00029">BTHID.h:29</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_afb19720b65cda69d910416c7a689dd45"><div class="ttname"><a href="class_b_t_h_i_d.html#afb19720b65cda69d910416c7a689dd45">BTHID::pair</a></div><div class="ttdeci">void pair(void)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00095">BTHID.h:95</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_afb19720b65cda69d910416c7a689dd45"><div class="ttname"><a href="class_b_t_h_i_d.html#afb19720b65cda69d910416c7a689dd45">BTHID::pair</a></div><div class="ttdeci">void pair(void)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00086">BTHID.h:86</a></div></div>
<div class="ttc" id="class_p_s4_b_t_html"><div class="ttname"><a href="class_p_s4_b_t.html">PS4BT</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00028">PS4BT.h:28</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.7
</a> 1.8.9.1
</small></address>
</body>
</html>

View file

@ -3,15 +3,16 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<meta name="generator" content="Doxygen 1.8.9.1"/>
<title>USB Host Shield 2.0: PS4Parser.cpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="imageStyle.css" rel="stylesheet" type="text/css"/>
@ -31,7 +32,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.7 -->
<!-- Generated by Doxygen 1.8.9.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -70,7 +71,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
@ -104,7 +105,7 @@ Include dependency graph for PS4Parser.cpp:</div>
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.7
</a> 1.8.9.1
</small></address>
</body>
</html>

View file

@ -1 +1 @@
7b7a6c8921078ff071fc05959848bb21
03082f2d3fd4c67e7d5789f05b2dd70a

View file

@ -3,15 +3,16 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<meta name="generator" content="Doxygen 1.8.9.1"/>
<title>USB Host Shield 2.0: PS4Parser.cpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="imageStyle.css" rel="stylesheet" type="text/css"/>
@ -31,7 +32,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.7 -->
<!-- Generated by Doxygen 1.8.9.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -70,7 +71,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
@ -130,11 +131,11 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keywordflow">if</span> (b &lt;= <a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fdadb45120aafd37a973140edee24708065">LEFT</a>) <span class="comment">// Dpad</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordflow">return</span> checkDpad(b);</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordflow">return</span> ps4Data.<a class="code" href="struct_p_s4_data.html#a60c0217c1879e1b16ae5d19a8c8695a3">btn</a>.<a class="code" href="union_p_s4_buttons.html#aa381b471d6e5f1e36fa87048b0f8ddc9">val</a> &amp; (1UL &lt;&lt; pgm_read_byte(&amp;<a class="code" href="_p_s4_parser_8h.html#a7e95303156f31f965a09cc2d3877b524">PS4_BUTTONS</a>[(uint8_t)b]));</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordflow">return</span> ps4Data.<a class="code" href="struct_p_s4_data.html#a60c0217c1879e1b16ae5d19a8c8695a3">btn</a>.<a class="code" href="union_p_s4_buttons.html#aa381b471d6e5f1e36fa87048b0f8ddc9">val</a> &amp; (1UL &lt;&lt; <a class="code" href="version__helper_8h.html#a48c60b057902adf805797f183286728d">pgm_read_byte</a>(&amp;<a class="code" href="_p_s4_parser_8h.html#a7e95303156f31f965a09cc2d3877b524">PS4_BUTTONS</a>[(uint8_t)b]));</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;}</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div>
<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="class_p_s4_parser.html#a92a4ea3d328426b9f86be05cabaad91c"> 45</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_p_s4_parser.html#a92a4ea3d328426b9f86be05cabaad91c">PS4Parser::getButtonClick</a>(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a> b) {</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; uint32_t mask = 1UL &lt;&lt; pgm_read_byte(&amp;<a class="code" href="_p_s4_parser_8h.html#a7e95303156f31f965a09cc2d3877b524">PS4_BUTTONS</a>[(uint8_t)b]);</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; uint32_t mask = 1UL &lt;&lt; <a class="code" href="version__helper_8h.html#a48c60b057902adf805797f183286728d">pgm_read_byte</a>(&amp;<a class="code" href="_p_s4_parser_8h.html#a7e95303156f31f965a09cc2d3877b524">PS4_BUTTONS</a>[(uint8_t)b]);</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordtype">bool</span> click = buttonClickState.<a class="code" href="union_p_s4_buttons.html#aa381b471d6e5f1e36fa87048b0f8ddc9">val</a> &amp; mask;</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; buttonClickState.<a class="code" href="union_p_s4_buttons.html#aa381b471d6e5f1e36fa87048b0f8ddc9">val</a> &amp;= ~mask; <span class="comment">// Clear &quot;click&quot; event</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">return</span> click;</div>
@ -155,10 +156,10 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="class_p_s4_parser.html#a6498fdeb767364e84ce09ef208980622"> 64</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_p_s4_parser.html#a6498fdeb767364e84ce09ef208980622">PS4Parser::Parse</a>(uint8_t len, uint8_t *buf) {</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordflow">if</span> (len &gt; 0 &amp;&amp; buf) {</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor">#ifdef PRINTREPORT</span></div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\n&quot;</span>), 0x80);</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(<a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot;\r\n&quot;</span>), 0x80);</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">for</span> (uint8_t i = 0; i &lt; len; i++) {</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; D_PrintHex&lt;uint8_t &gt; (buf[i], 0x80);</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(<a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; }</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div>
@ -168,7 +169,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; memcpy(&amp;ps4Data, buf + 3, min(len - 3, <span class="keyword">sizeof</span>(ps4Data)));</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nUnknown report id: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(<a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot;\r\nUnknown report id: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; D_PrintHex&lt;uint8_t &gt; (buf[0], 0x80);</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordflow">return</span>;</div>
@ -205,6 +206,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="ttc" id="class_p_s4_parser_html_ad352f30e4ab772246574bbf654248906"><div class="ttname"><a href="class_p_s4_parser.html#ad352f30e4ab772246574bbf654248906">PS4Parser::getButtonPress</a></div><div class="ttdeci">bool getButtonPress(ButtonEnum b)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8cpp_source.html#l00038">PS4Parser.cpp:38</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a34dad8f0a0927471137c403216597093"><div class="ttname"><a href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093">AnalogHatEnum</a></div><div class="ttdeci">AnalogHatEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00151">controllerEnums.h:151</a></div></div>
<div class="ttc" id="_p_s4_parser_8h_html_a3eca256e8b59574c290177d7df302a62ab5e7d62ac3dfe6a925d1d6be3c756faa"><div class="ttname"><a href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62ab5e7d62ac3dfe6a925d1d6be3c756faa">DPAD_DOWN</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00128">PS4Parser.h:128</a></div></div>
<div class="ttc" id="version__helper_8h_html_a48c60b057902adf805797f183286728d"><div class="ttname"><a href="version__helper_8h.html#a48c60b057902adf805797f183286728d">pgm_read_byte</a></div><div class="ttdeci">#define pgm_read_byte(addr)</div><div class="ttdef"><b>Definition:</b> <a href="version__helper_8h_source.html#l00182">version_helper.h:182</a></div></div>
<div class="ttc" id="_p_s4_parser_8h_html_a3eca256e8b59574c290177d7df302a62abc09f2a57c77693c05e8d52917d2bac0"><div class="ttname"><a href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62abc09f2a57c77693c05e8d52917d2bac0">DPAD_UP_RIGHT</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00125">PS4Parser.h:125</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fdaba595d8bca8bc5e67c37c0a9d89becfa"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fdaba595d8bca8bc5e67c37c0a9d89becfa">UP</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00075">controllerEnums.h:75</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fdaec8379af7490bb9eaaf579cf17876f38"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fdaec8379af7490bb9eaaf579cf17876f38">RIGHT</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00076">controllerEnums.h:76</a></div></div>
@ -219,6 +221,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="ttc" id="class_p_s4_parser_html_a8788530b0c213dedfcf56b78e8ca4879"><div class="ttname"><a href="class_p_s4_parser.html#a8788530b0c213dedfcf56b78e8ca4879">PS4Parser::sendOutputReport</a></div><div class="ttdeci">virtual void sendOutputReport(PS4Output *output)=0</div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fda0adffb24dae0c41be5b803f4d444f066"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fda0adffb24dae0c41be5b803f4d444f066">L2</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00109">controllerEnums.h:109</a></div></div>
<div class="ttc" id="_p_s4_parser_8h_html"><div class="ttname"><a href="_p_s4_parser_8h.html">PS4Parser.h</a></div></div>
<div class="ttc" id="version__helper_8h_html_a73809107539df84eaf01f6a4dea4fbff"><div class="ttname"><a href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a></div><div class="ttdeci">#define PSTR(str)</div><div class="ttdef"><b>Definition:</b> <a href="version__helper_8h_source.html#l00047">version_helper.h:47</a></div></div>
<div class="ttc" id="union_p_s4_buttons_html_a99e2971b4e511a8d1bb718408f559a92"><div class="ttname"><a href="union_p_s4_buttons.html#a99e2971b4e511a8d1bb718408f559a92">PS4Buttons::dpad</a></div><div class="ttdeci">uint8_t dpad</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00052">PS4Parser.h:52</a></div></div>
<div class="ttc" id="_p_s4_parser_8h_html_a3eca256e8b59574c290177d7df302a62aafb58dc961545afb332266b117e4a332"><div class="ttname"><a href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62aafb58dc961545afb332266b117e4a332">DPAD_UP</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00124">PS4Parser.h:124</a></div></div>
<div class="ttc" id="_p_s4_parser_8h_html_a3eca256e8b59574c290177d7df302a62ac6b9de0c407333a7161ca1efe6e30743"><div class="ttname"><a href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62ac6b9de0c407333a7161ca1efe6e30743">DPAD_LEFT_UP</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00131">PS4Parser.h:131</a></div></div>
@ -234,7 +237,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.7
</a> 1.8.9.1
</small></address>
</body>
</html>

View file

@ -3,15 +3,16 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<meta name="generator" content="Doxygen 1.8.9.1"/>
<title>USB Host Shield 2.0: PS4Parser.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="imageStyle.css" rel="stylesheet" type="text/css"/>
@ -31,7 +32,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.7 -->
<!-- Generated by Doxygen 1.8.9.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -70,7 +71,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
@ -234,7 +235,7 @@ Variables</h2></td></tr>
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.7
</a> 1.8.9.1
</small></address>
</body>
</html>

View file

@ -1 +1 @@
5e56bd64aa04badca5d0648201af05fb
4d5a405a295dec480becbdb408726c5e

View file

@ -1 +1 @@
559da26f56bdca12a84aceb0d7a5a74b
29a4989044a63001a938d41ea83d3491

View file

@ -3,15 +3,16 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<meta name="generator" content="Doxygen 1.8.9.1"/>
<title>USB Host Shield 2.0: PS4Parser.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="imageStyle.css" rel="stylesheet" type="text/css"/>
@ -31,7 +32,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.7 -->
<!-- Generated by Doxygen 1.8.9.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -70,7 +71,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
@ -168,7 +169,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="structtouchpad_x_y.html#a2c078e99c3b96303e6b6a60e2f36acc5"> 78</a></span>&#160; uint8_t <a class="code" href="structtouchpad_x_y.html#a2c078e99c3b96303e6b6a60e2f36acc5">touching</a> : 1; <span class="comment">// The top bit is cleared if the finger is touching the touchpad</span></div>
<div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="structtouchpad_x_y.html#a1c38a3e4161b1495b4d8ce37124c72a5"> 79</a></span>&#160; uint16_t <a class="code" href="structtouchpad_x_y.html#a1c38a3e4161b1495b4d8ce37124c72a5">x</a> : 12;</div>
<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="structtouchpad_x_y.html#ac4ceb26c0ebba1c5a2691a1ecdb7dbae"> 80</a></span>&#160; uint16_t <a class="code" href="structtouchpad_x_y.html#ac4ceb26c0ebba1c5a2691a1ecdb7dbae">y</a> : 12;</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; } __attribute__((packed)) <a class="code" href="structtouchpad_x_y.html#a7bd35afa140be3103c8d4819914a3b4c">finger</a>[2]; <span class="comment">// 0 = first finger, 1 = second finger</span></div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; } __attribute__((packed)) <a class="code" href="structtouchpad_x_y.html#a9f0f865221d85610df91cf8c3a2f7d41">finger</a>[2]; <span class="comment">// 0 = first finger, 1 = second finger</span></div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;} __attribute__((packed));</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div>
<div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="struct_p_s4_status.html"> 84</a></span>&#160;struct <a class="code" href="struct_p_s4_status.html">PS4Status</a> {</div>
@ -186,7 +187,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="struct_p_s4_data.html#aad2133de0113cee402cda4a8c7e8b6a5"> 96</a></span>&#160; uint8_t trigger[2];</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="comment">/* Gyro and accelerometer values */</span></div>
<div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="struct_p_s4_data.html#aef57cffc87f423db996d817ea75fe5f9"> 99</a></span>&#160; uint8_t <a class="code" href="structtouchpad_x_y.html#aad3a6094ac41933907969856dfb93e15">dummy</a>[3]; <span class="comment">// First two looks random, while the third one might be some kind of status - it increments once in a while</span></div>
<div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="struct_p_s4_data.html#aef57cffc87f423db996d817ea75fe5f9"> 99</a></span>&#160; uint8_t dummy[3]; <span class="comment">// First two looks random, while the third one might be some kind of status - it increments once in a while</span></div>
<div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="struct_p_s4_data.html#ace15cafba1570d56951e7db7947ba94c"> 100</a></span>&#160; int16_t gyroY, <a class="code" href="struct_p_s4_data.html#ace15cafba1570d56951e7db7947ba94c">gyroZ</a>, gyroX;</div>
<div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="struct_p_s4_data.html#a635a4a50b43400707baa74c8e87944ca"> 101</a></span>&#160; int16_t accX, <a class="code" href="struct_p_s4_data.html#a635a4a50b43400707baa74c8e87944ca">accZ</a>, accY;</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div>
@ -234,20 +235,20 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; uint8_t getAnalogHat(<a class="code" href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093">AnalogHatEnum</a> a);</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div>
<div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="class_p_s4_parser.html#aa149326d97c6231087f81d954a994493"> 183</a></span>&#160; uint16_t <a class="code" href="class_p_s4_parser.html#aa149326d97c6231087f81d954a994493">getX</a>(uint8_t <a class="code" href="structtouchpad_x_y.html#a7bd35afa140be3103c8d4819914a3b4c">finger</a> = 0, uint8_t xyId = 0) {</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">return</span> ps4Data.xy[xyId].finger[<a class="code" href="structtouchpad_x_y.html#a7bd35afa140be3103c8d4819914a3b4c">finger</a>].x;</div>
<div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="class_p_s4_parser.html#aa149326d97c6231087f81d954a994493"> 183</a></span>&#160; uint16_t <a class="code" href="class_p_s4_parser.html#aa149326d97c6231087f81d954a994493">getX</a>(uint8_t <a class="code" href="structtouchpad_x_y.html#a9f0f865221d85610df91cf8c3a2f7d41">finger</a> = 0, uint8_t xyId = 0) {</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">return</span> ps4Data.xy[xyId].finger[<a class="code" href="structtouchpad_x_y.html#a9f0f865221d85610df91cf8c3a2f7d41">finger</a>].x;</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; };</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div>
<div class="line"><a name="l00195"></a><span class="lineno"><a class="line" href="class_p_s4_parser.html#a9972eeb87f2ed4a96dcdccf2dabbbc5a"> 195</a></span>&#160; uint16_t <a class="code" href="class_p_s4_parser.html#a9972eeb87f2ed4a96dcdccf2dabbbc5a">getY</a>(uint8_t <a class="code" href="structtouchpad_x_y.html#a7bd35afa140be3103c8d4819914a3b4c">finger</a> = 0, uint8_t xyId = 0) {</div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">return</span> ps4Data.xy[xyId].finger[<a class="code" href="structtouchpad_x_y.html#a7bd35afa140be3103c8d4819914a3b4c">finger</a>].y;</div>
<div class="line"><a name="l00195"></a><span class="lineno"><a class="line" href="class_p_s4_parser.html#a9972eeb87f2ed4a96dcdccf2dabbbc5a"> 195</a></span>&#160; uint16_t <a class="code" href="class_p_s4_parser.html#a9972eeb87f2ed4a96dcdccf2dabbbc5a">getY</a>(uint8_t <a class="code" href="structtouchpad_x_y.html#a9f0f865221d85610df91cf8c3a2f7d41">finger</a> = 0, uint8_t xyId = 0) {</div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">return</span> ps4Data.xy[xyId].finger[<a class="code" href="structtouchpad_x_y.html#a9f0f865221d85610df91cf8c3a2f7d41">finger</a>].y;</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; };</div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;</div>
<div class="line"><a name="l00207"></a><span class="lineno"><a class="line" href="class_p_s4_parser.html#a6770a72c17062c2e00fb3602435fcade"> 207</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_p_s4_parser.html#a6770a72c17062c2e00fb3602435fcade">isTouching</a>(uint8_t <a class="code" href="structtouchpad_x_y.html#a7bd35afa140be3103c8d4819914a3b4c">finger</a> = 0, uint8_t xyId = 0) {</div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">return</span> !(ps4Data.xy[xyId].finger[<a class="code" href="structtouchpad_x_y.html#a7bd35afa140be3103c8d4819914a3b4c">finger</a>].touching); <span class="comment">// The bit is cleared when a finger is touching the touchpad</span></div>
<div class="line"><a name="l00207"></a><span class="lineno"><a class="line" href="class_p_s4_parser.html#a6770a72c17062c2e00fb3602435fcade"> 207</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_p_s4_parser.html#a6770a72c17062c2e00fb3602435fcade">isTouching</a>(uint8_t <a class="code" href="structtouchpad_x_y.html#a9f0f865221d85610df91cf8c3a2f7d41">finger</a> = 0, uint8_t xyId = 0) {</div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">return</span> !(ps4Data.xy[xyId].finger[<a class="code" href="structtouchpad_x_y.html#a9f0f865221d85610df91cf8c3a2f7d41">finger</a>].touching); <span class="comment">// The bit is cleared when a finger is touching the touchpad</span></div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; };</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;</div>
<div class="line"><a name="l00219"></a><span class="lineno"><a class="line" href="class_p_s4_parser.html#a0b3de008ae8aaa057c571081b1b64e88"> 219</a></span>&#160; uint8_t <a class="code" href="class_p_s4_parser.html#a0b3de008ae8aaa057c571081b1b64e88">getTouchCounter</a>(uint8_t <a class="code" href="structtouchpad_x_y.html#a7bd35afa140be3103c8d4819914a3b4c">finger</a> = 0, uint8_t xyId = 0) {</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">return</span> ps4Data.xy[xyId].finger[<a class="code" href="structtouchpad_x_y.html#a7bd35afa140be3103c8d4819914a3b4c">finger</a>].counter;</div>
<div class="line"><a name="l00219"></a><span class="lineno"><a class="line" href="class_p_s4_parser.html#a0b3de008ae8aaa057c571081b1b64e88"> 219</a></span>&#160; uint8_t <a class="code" href="class_p_s4_parser.html#a0b3de008ae8aaa057c571081b1b64e88">getTouchCounter</a>(uint8_t <a class="code" href="structtouchpad_x_y.html#a9f0f865221d85610df91cf8c3a2f7d41">finger</a> = 0, uint8_t xyId = 0) {</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">return</span> ps4Data.xy[xyId].finger[<a class="code" href="structtouchpad_x_y.html#a9f0f865221d85610df91cf8c3a2f7d41">finger</a>].counter;</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; };</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;</div>
<div class="line"><a name="l00228"></a><span class="lineno"><a class="line" href="class_p_s4_parser.html#ac4b7e6c29af23a88d41a83e82c87c888"> 228</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="class_p_s4_parser.html#ac4b7e6c29af23a88d41a83e82c87c888">getAngle</a>(<a class="code" href="controller_enums_8h.html#a7c7824a10a9ffa8fea85602fcf4d84e6">AngleEnum</a> a) {</div>
@ -397,6 +398,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="ttc" id="class_p_s4_parser_html_a2b06200adee0c8ed616c4d18c23a584a"><div class="ttname"><a href="class_p_s4_parser.html#a2b06200adee0c8ed616c4d18c23a584a">PS4Parser::getSensor</a></div><div class="ttdeci">int16_t getSensor(SensorEnum s)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00240">PS4Parser.h:240</a></div></div>
<div class="ttc" id="struct_p_s4_output_html_a4abdb9a24e512f7f2bad16df28b2fcab"><div class="ttname"><a href="struct_p_s4_output.html#a4abdb9a24e512f7f2bad16df28b2fcab">PS4Output::flashOn</a></div><div class="ttdeci">uint8_t flashOn</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00119">PS4Parser.h:119</a></div></div>
<div class="ttc" id="struct_p_s4_output_html"><div class="ttname"><a href="struct_p_s4_output.html">PS4Output</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00116">PS4Parser.h:116</a></div></div>
<div class="ttc" id="structtouchpad_x_y_html_a9f0f865221d85610df91cf8c3a2f7d41"><div class="ttname"><a href="structtouchpad_x_y.html#a9f0f865221d85610df91cf8c3a2f7d41">touchpadXY::finger</a></div><div class="ttdeci">struct touchpadXY::@28 finger[2]</div></div>
<div class="ttc" id="_p_s4_parser_8h_html_a3eca256e8b59574c290177d7df302a62abc09f2a57c77693c05e8d52917d2bac0"><div class="ttname"><a href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62abc09f2a57c77693c05e8d52917d2bac0">DPAD_UP_RIGHT</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00125">PS4Parser.h:125</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a00d5030559c481763282483889597d51aba377ea700e0cdf1c61034ef60b259bd"><div class="ttname"><a href="controller_enums_8h.html#a00d5030559c481763282483889597d51aba377ea700e0cdf1c61034ef60b259bd">aY</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00168">controllerEnums.h:168</a></div></div>
<div class="ttc" id="union_p_s4_buttons_html_adf2ff3e6e4050070a68e90a83be81e92"><div class="ttname"><a href="union_p_s4_buttons.html#adf2ff3e6e4050070a68e90a83be81e92">PS4Buttons::share</a></div><div class="ttdeci">uint8_t share</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00062">PS4Parser.h:62</a></div></div>
@ -416,9 +418,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="ttc" id="structtouchpad_x_y_html_ae52c34f2e6e66933e06b2f3448badcf0"><div class="ttname"><a href="structtouchpad_x_y.html#ae52c34f2e6e66933e06b2f3448badcf0">touchpadXY::counter</a></div><div class="ttdeci">uint8_t counter</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00077">PS4Parser.h:77</a></div></div>
<div class="ttc" id="structtouchpad_x_y_html_ac4ceb26c0ebba1c5a2691a1ecdb7dbae"><div class="ttname"><a href="structtouchpad_x_y.html#ac4ceb26c0ebba1c5a2691a1ecdb7dbae">touchpadXY::y</a></div><div class="ttdeci">uint16_t y</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00080">PS4Parser.h:80</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fda9b0b4a95b99523966e0e34ffdadac9da"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fda9b0b4a95b99523966e0e34ffdadac9da">DOWN</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00077">controllerEnums.h:77</a></div></div>
<div class="ttc" id="structtouchpad_x_y_html_a7bd35afa140be3103c8d4819914a3b4c"><div class="ttname"><a href="structtouchpad_x_y.html#a7bd35afa140be3103c8d4819914a3b4c">touchpadXY::finger</a></div><div class="ttdeci">struct touchpadXY::@24 finger[2]</div></div>
<div class="ttc" id="_p_s4_parser_8h_html_a3eca256e8b59574c290177d7df302a62a1b679be7217f73f03393bb379b218d66"><div class="ttname"><a href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62a1b679be7217f73f03393bb379b218d66">DPAD_DOWN_LEFT</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00129">PS4Parser.h:129</a></div></div>
<div class="ttc" id="cdcprolific_8h_html_a6003f43ffe2391c0c31ea48f6b772627a5b9f6d065e6e98483b3d3ed01f4f6cbe"><div class="ttname"><a href="cdcprolific_8h.html#a6003f43ffe2391c0c31ea48f6b772627a5b9f6d065e6e98483b3d3ed01f4f6cbe">unknown</a></div><div class="ttdef"><b>Definition:</b> <a href="cdcprolific_8h_source.html#l00108">cdcprolific.h:108</a></div></div>
<div class="ttc" id="cdcprolific_8h_html_a6003f43ffe2391c0c31ea48f6b772627a5b9f6d065e6e98483b3d3ed01f4f6cbe"><div class="ttname"><a href="cdcprolific_8h.html#a6003f43ffe2391c0c31ea48f6b772627a5b9f6d065e6e98483b3d3ed01f4f6cbe">unknown</a></div><div class="ttdef"><b>Definition:</b> <a href="cdcprolific_8h_source.html#l00111">cdcprolific.h:111</a></div></div>
<div class="ttc" id="_p_s4_parser_8h_html_a7e95303156f31f965a09cc2d3877b524"><div class="ttname"><a href="_p_s4_parser_8h.html#a7e95303156f31f965a09cc2d3877b524">PS4_BUTTONS</a></div><div class="ttdeci">const uint8_t PS4_BUTTONS[]</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00025">PS4Parser.h:25</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a7c7824a10a9ffa8fea85602fcf4d84e6ae3a34b760fa4a6854f28852e91d8bb47"><div class="ttname"><a href="controller_enums_8h.html#a7c7824a10a9ffa8fea85602fcf4d84e6ae3a34b760fa4a6854f28852e91d8bb47">Pitch</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00200">controllerEnums.h:200</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fd"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a></div><div class="ttdeci">ButtonEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00072">controllerEnums.h:72</a></div></div>
@ -466,7 +467,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.7
</a> 1.8.9.1
</small></address>
</body>
</html>

View file

@ -3,15 +3,16 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<meta name="generator" content="Doxygen 1.8.9.1"/>
<title>USB Host Shield 2.0: PS4USB.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="imageStyle.css" rel="stylesheet" type="text/css"/>
@ -31,7 +32,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.7 -->
<!-- Generated by Doxygen 1.8.9.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -70,7 +71,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
@ -150,7 +151,7 @@ Macros</h2></td></tr>
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.7
</a> 1.8.9.1
</small></address>
</body>
</html>

View file

@ -1 +1 @@
c126bc79f3d87f6f416ad192609a96de
6f7decca24cb5b3cb9ff8a80c692ad10

View file

@ -3,15 +3,16 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<meta name="generator" content="Doxygen 1.8.9.1"/>
<title>USB Host Shield 2.0: PS4USB.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="imageStyle.css" rel="stylesheet" type="text/css"/>
@ -31,7 +32,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.7 -->
<!-- Generated by Doxygen 1.8.9.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -70,7 +71,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
@ -169,11 +170,15 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <a class="code" href="class_h_i_d.html#a1583e665c2b930e8683c10dc271f013f">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#affbc018973a588995457d535b0ac7ee7">outTransfer</a>(<a class="code" href="class_h_i_d.html#a525edb36c2cd8470eae703d3b236e4a7">bAddress</a>, <a class="code" href="class_h_i_d_universal.html#ad26d2e63130abac2059154bf5afbf152">epInfo</a>[ <a class="code" href="class_h_i_d_universal.html#a542ee234ff63c01eb3dff607fb3b0def">hidInterfaces</a>[0].epIndex[<a class="code" href="class_h_i_d.html#aeb7fc07fe6dbc98d518967fdbc441ab3">epInterruptOutIndex</a>] ].epAddr, <span class="keyword">sizeof</span>(buf), buf);</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; };</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; void (*pFuncOnInit)(void); <span class="comment">// Pointer to function called in onInit()</span></div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;};</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="class_p_s4_u_s_b.html#a991ca2571cbd072749dd754df26faa5a"> 122</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_p_s4_u_s_b.html#a991ca2571cbd072749dd754df26faa5a">VIDPIDOK</a>(uint16_t vid, uint16_t pid) {</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">return</span> (vid == <a class="code" href="_p_s4_u_s_b_8h.html#ac878fc36cc22549eb8a7ab6371197877">PS4_VID</a> &amp;&amp; pid == <a class="code" href="_p_s4_u_s_b_8h.html#a776f4d4694166dbe732e585ebb8c816e">PS4_PID</a>);</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; };</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; void (*pFuncOnInit)(void); <span class="comment">// Pointer to function called in onInit()</span></div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;};</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="ttc" id="class_h_i_d_universal_html_abc609e49d66fa6260e7cdcd2c4ff0a5a"><div class="ttname"><a href="class_h_i_d_universal.html#abc609e49d66fa6260e7cdcd2c4ff0a5a">HIDUniversal::PID</a></div><div class="ttdeci">uint16_t PID</div><div class="ttdef"><b>Definition:</b> <a href="hiduniversal_8h_source.html#l00069">hiduniversal.h:69</a></div></div>
<div class="ttc" id="class_p_s4_u_s_b_html_a991ca2571cbd072749dd754df26faa5a"><div class="ttname"><a href="class_p_s4_u_s_b.html#a991ca2571cbd072749dd754df26faa5a">PS4USB::VIDPIDOK</a></div><div class="ttdeci">virtual bool VIDPIDOK(uint16_t vid, uint16_t pid)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_u_s_b_8h_source.html#l00122">PS4USB.h:122</a></div></div>
<div class="ttc" id="class_p_s4_parser_html_a24640b2362b0f6f51785fbd3dd4f13f9"><div class="ttname"><a href="class_p_s4_parser.html#a24640b2362b0f6f51785fbd3dd4f13f9">PS4Parser::Reset</a></div><div class="ttdeci">void Reset()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00369">PS4Parser.h:369</a></div></div>
<div class="ttc" id="class_p_s4_u_s_b_html_abe78ea9b765b11c08b060f923ae9d8cd"><div class="ttname"><a href="class_p_s4_u_s_b.html#abe78ea9b765b11c08b060f923ae9d8cd">PS4USB::attachOnInit</a></div><div class="ttdeci">void attachOnInit(void(*funcOnInit)(void))</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_u_s_b_8h_source.html#l00054">PS4USB.h:54</a></div></div>
<div class="ttc" id="class_h_i_d_universal_html_aa4be95e8f5164393ea4766f68c5b0ea8"><div class="ttname"><a href="class_h_i_d_universal.html#aa4be95e8f5164393ea4766f68c5b0ea8">HIDUniversal::isReady</a></div><div class="ttdeci">virtual bool isReady()</div><div class="ttdef"><b>Definition:</b> <a href="hiduniversal_8h_source.html#l00097">hiduniversal.h:97</a></div></div>
@ -207,7 +212,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="ttc" id="class_h_i_d_html_a1583e665c2b930e8683c10dc271f013f"><div class="ttname"><a href="class_h_i_d.html#a1583e665c2b930e8683c10dc271f013f">HID::pUsb</a></div><div class="ttdeci">USB * pUsb</div><div class="ttdef"><b>Definition:</b> <a href="hid_8h_source.html#l00145">hid.h:145</a></div></div>
<div class="ttc" id="class_p_s4_u_s_b_html_a75dc09d15f149e1a1b96b8d2ccbbff89"><div class="ttname"><a href="class_p_s4_u_s_b.html#a75dc09d15f149e1a1b96b8d2ccbbff89">PS4USB::sendOutputReport</a></div><div class="ttdeci">virtual void sendOutputReport(PS4Output *output)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_u_s_b_8h_source.html#l00090">PS4USB.h:90</a></div></div>
<div class="ttc" id="class_p_s4_u_s_b_html_a1ace884e418a0b8fe0f37bba7ea240e7"><div class="ttname"><a href="class_p_s4_u_s_b.html#a1ace884e418a0b8fe0f37bba7ea240e7">PS4USB::PS4USB</a></div><div class="ttdeci">PS4USB(USB *p)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_u_s_b_8h_source.html#l00037">PS4USB.h:37</a></div></div>
<div class="ttc" id="class_u_s_b_html"><div class="ttname"><a href="class_u_s_b.html">USB</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00190">UsbCore.h:190</a></div></div>
<div class="ttc" id="class_u_s_b_html"><div class="ttname"><a href="class_u_s_b.html">USB</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00197">UsbCore.h:197</a></div></div>
<div class="ttc" id="class_h_i_d_universal_html_ad26d2e63130abac2059154bf5afbf152"><div class="ttname"><a href="class_h_i_d_universal.html#ad26d2e63130abac2059154bf5afbf152">HIDUniversal::epInfo</a></div><div class="ttdeci">EpInfo epInfo[totalEndpoints]</div><div class="ttdef"><b>Definition:</b> <a href="hiduniversal_8h_source.html#l00064">hiduniversal.h:64</a></div></div>
<div class="ttc" id="class_h_i_d_universal_html"><div class="ttname"><a href="class_h_i_d_universal.html">HIDUniversal</a></div><div class="ttdef"><b>Definition:</b> <a href="hiduniversal_8h_source.html#l00024">hiduniversal.h:24</a></div></div>
</div><!-- fragment --></div><!-- contents -->
@ -215,7 +220,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.7
</a> 1.8.9.1
</small></address>
</body>
</html>

View file

@ -3,15 +3,16 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<meta name="generator" content="Doxygen 1.8.9.1"/>
<title>USB Host Shield 2.0: PSBuzz.cpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="imageStyle.css" rel="stylesheet" type="text/css"/>
@ -31,7 +32,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.7 -->
<!-- Generated by Doxygen 1.8.9.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -70,7 +71,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
@ -104,7 +105,7 @@ Include dependency graph for PSBuzz.cpp:</div>
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.7
</a> 1.8.9.1
</small></address>
</body>
</html>

View file

@ -1 +1 @@
548c6cb3bb73f0de55b17214908e97c2
ccb27c87a7828cc31b6f06794277dee5

View file

@ -3,15 +3,16 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<meta name="generator" content="Doxygen 1.8.9.1"/>
<title>USB Host Shield 2.0: PSBuzz.cpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="imageStyle.css" rel="stylesheet" type="text/css"/>
@ -31,7 +32,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.7 -->
<!-- Generated by Doxygen 1.8.9.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -70,7 +71,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
@ -114,10 +115,10 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00023"></a><span class="lineno"><a class="line" href="class_p_s_buzz.html#a69e6f9478a2fb40d4bc606ad0128daf7"> 23</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_p_s_buzz.html#a69e6f9478a2fb40d4bc606ad0128daf7">PSBuzz::ParseHIDData</a>(<a class="code" href="class_h_i_d.html">HID</a> *hid, <span class="keywordtype">bool</span> is_rpt_id, uint8_t len, uint8_t *buf) {</div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="class_h_i_d_universal.html#a7f2123d1f20327600bb9e49a1ef5b0c7">HIDUniversal::VID</a> == <a class="code" href="_p_s_buzz_8h.html#aa550e9c001056b0ee39428704cde0e5d">PSBUZZ_VID</a> &amp;&amp; <a class="code" href="class_h_i_d_universal.html#abc609e49d66fa6260e7cdcd2c4ff0a5a">HIDUniversal::PID</a> == <a class="code" href="_p_s_buzz_8h.html#a0dd7a843e3d17c9404bdfa2723b3e1d5">PSBUZZ_PID</a> &amp;&amp; len &gt; 0 &amp;&amp; buf) {</div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#ifdef PRINTREPORT</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\n&quot;</span>), 0x80);</div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(<a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot;\r\n&quot;</span>), 0x80);</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keywordflow">for</span> (uint8_t i = 0; i &lt; len; i++) {</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; D_PrintHex&lt;uint8_t &gt; (buf[i], 0x80);</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(<a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; }</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; memcpy(&amp;psbuzzButtons, buf + 2, min(len - 2, <span class="keyword">sizeof</span>(psbuzzButtons)));</div>
@ -169,27 +170,28 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="keywordtype">void</span> PSBuzz::PSBuzz_Command(uint8_t *data, uint16_t nbytes) {</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="comment">// bmRequest = Host to device (0x00) | Class (0x20) | Interface (0x01) = 0x21, bRequest = Set Report (0x09), Report ID (0x00), Report Type (Output 0x02), interface (0x00), datalength, datalength, data)</span></div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <a class="code" href="class_h_i_d.html#a1583e665c2b930e8683c10dc271f013f">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(<a class="code" href="class_h_i_d.html#a525edb36c2cd8470eae703d3b236e4a7">bAddress</a>, <a class="code" href="class_h_i_d_universal.html#ad26d2e63130abac2059154bf5afbf152">epInfo</a>[0].epAddr, <a class="code" href="hid_8h.html#a264e2a54e5ef95976daa14a8ba9f2f93">bmREQ_HIDOUT</a>, <a class="code" href="_b_t_d_8h.html#aee05d40a014750b24a7e9967f6f389f4">HID_REQUEST_SET_REPORT</a>, 0x00, 0x02, 0x00, nbytes, nbytes, data, NULL);</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <a class="code" href="class_h_i_d.html#a1583e665c2b930e8683c10dc271f013f">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(<a class="code" href="class_h_i_d.html#a525edb36c2cd8470eae703d3b236e4a7">bAddress</a>, <a class="code" href="class_h_i_d_universal.html#ad26d2e63130abac2059154bf5afbf152">epInfo</a>[0].epAddr, <a class="code" href="hid_8h.html#a5bd4ea095da29635414952894bd527f5">bmREQ_HID_OUT</a>, <a class="code" href="hid_8h.html#aee05d40a014750b24a7e9967f6f389f4">HID_REQUEST_SET_REPORT</a>, 0x00, 0x02, 0x00, nbytes, nbytes, data, NULL);</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;};</div>
<div class="ttc" id="class_h_i_d_universal_html_abc609e49d66fa6260e7cdcd2c4ff0a5a"><div class="ttname"><a href="class_h_i_d_universal.html#abc609e49d66fa6260e7cdcd2c4ff0a5a">HIDUniversal::PID</a></div><div class="ttdeci">uint16_t PID</div><div class="ttdef"><b>Definition:</b> <a href="hiduniversal_8h_source.html#l00069">hiduniversal.h:69</a></div></div>
<div class="ttc" id="class_p_s_buzz_html_a5bb4f2ee80ca9d10d87031b57bd09268"><div class="ttname"><a href="class_p_s_buzz.html#a5bb4f2ee80ca9d10d87031b57bd09268">PSBuzz::Reset</a></div><div class="ttdeci">void Reset()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s_buzz_8h_source.html#l00157">PSBuzz.h:157</a></div></div>
<div class="ttc" id="hid_8h_html_a264e2a54e5ef95976daa14a8ba9f2f93"><div class="ttname"><a href="hid_8h.html#a264e2a54e5ef95976daa14a8ba9f2f93">bmREQ_HIDOUT</a></div><div class="ttdeci">#define bmREQ_HIDOUT</div><div class="ttdef"><b>Definition:</b> <a href="hid_8h_source.html#l00063">hid.h:63</a></div></div>
<div class="ttc" id="hid_8h_html_aee05d40a014750b24a7e9967f6f389f4"><div class="ttname"><a href="hid_8h.html#aee05d40a014750b24a7e9967f6f389f4">HID_REQUEST_SET_REPORT</a></div><div class="ttdeci">#define HID_REQUEST_SET_REPORT</div><div class="ttdef"><b>Definition:</b> <a href="hid_8h_source.html#l00072">hid.h:72</a></div></div>
<div class="ttc" id="class_p_s_buzz_html_ab8c77db1fb29395bda463fb558e7e651"><div class="ttname"><a href="class_p_s_buzz.html#ab8c77db1fb29395bda463fb558e7e651">PSBuzz::getButtonClick</a></div><div class="ttdeci">bool getButtonClick(ButtonEnum b, uint8_t controller=0)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s_buzz_8cpp_source.html#l00056">PSBuzz.cpp:56</a></div></div>
<div class="ttc" id="hid_8h_html_a5bd4ea095da29635414952894bd527f5"><div class="ttname"><a href="hid_8h.html#a5bd4ea095da29635414952894bd527f5">bmREQ_HID_OUT</a></div><div class="ttdeci">#define bmREQ_HID_OUT</div><div class="ttdef"><b>Definition:</b> <a href="hid_8h_source.html#l00063">hid.h:63</a></div></div>
<div class="ttc" id="class_h_i_d_html_a525edb36c2cd8470eae703d3b236e4a7"><div class="ttname"><a href="class_h_i_d.html#a525edb36c2cd8470eae703d3b236e4a7">HID::bAddress</a></div><div class="ttdeci">uint8_t bAddress</div><div class="ttdef"><b>Definition:</b> <a href="hid_8h_source.html#l00146">hid.h:146</a></div></div>
<div class="ttc" id="class_h_i_d_universal_html_a7f2123d1f20327600bb9e49a1ef5b0c7"><div class="ttname"><a href="class_h_i_d_universal.html#a7f2123d1f20327600bb9e49a1ef5b0c7">HIDUniversal::VID</a></div><div class="ttdeci">uint16_t VID</div><div class="ttdef"><b>Definition:</b> <a href="hiduniversal_8h_source.html#l00069">hiduniversal.h:69</a></div></div>
<div class="ttc" id="class_u_s_b_html_a636695a5c3d35cd6b9e31c54edfacd7c"><div class="ttname"><a href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">USB::ctrlReq</a></div><div class="ttdeci">uint8_t ctrlReq(uint8_t addr, uint8_t ep, uint8_t bmReqType, uint8_t bRequest, uint8_t wValLo, uint8_t wValHi, uint16_t wInd, uint16_t total, uint16_t nbytes, uint8_t *dataptr, USBReadParser *p)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00126">Usb.cpp:126</a></div></div>
<div class="ttc" id="message_8h_html_a27117e124c5d66d5512fe8d494fe6338"><div class="ttname"><a href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a></div><div class="ttdeci">#define Notify(...)</div><div class="ttdef"><b>Definition:</b> <a href="message_8h_source.html#l00044">message.h:44</a></div></div>
<div class="ttc" id="_p_s_buzz_8h_html"><div class="ttname"><a href="_p_s_buzz_8h.html">PSBuzz.h</a></div></div>
<div class="ttc" id="class_p_s_buzz_html_a521ac2cada2aded05417033c6ae9c8ea"><div class="ttname"><a href="class_p_s_buzz.html#a521ac2cada2aded05417033c6ae9c8ea">PSBuzz::getButtonPress</a></div><div class="ttdeci">bool getButtonPress(ButtonEnum b, uint8_t controller=0)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s_buzz_8cpp_source.html#l00052">PSBuzz.cpp:52</a></div></div>
<div class="ttc" id="class_p_s_buzz_html_a69e6f9478a2fb40d4bc606ad0128daf7"><div class="ttname"><a href="class_p_s_buzz.html#a69e6f9478a2fb40d4bc606ad0128daf7">PSBuzz::ParseHIDData</a></div><div class="ttdeci">virtual void ParseHIDData(HID *hid, bool is_rpt_id, uint8_t len, uint8_t *buf)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s_buzz_8cpp_source.html#l00023">PSBuzz.cpp:23</a></div></div>
<div class="ttc" id="class_p_s_buzz_html_a69e6f9478a2fb40d4bc606ad0128daf7"><div class="ttname"><a href="class_p_s_buzz.html#a69e6f9478a2fb40d4bc606ad0128daf7">PSBuzz::ParseHIDData</a></div><div class="ttdeci">void ParseHIDData(HID *hid, bool is_rpt_id, uint8_t len, uint8_t *buf)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s_buzz_8cpp_source.html#l00023">PSBuzz.cpp:23</a></div></div>
<div class="ttc" id="_p_s_buzz_8h_html_aa550e9c001056b0ee39428704cde0e5d"><div class="ttname"><a href="_p_s_buzz_8h.html#aa550e9c001056b0ee39428704cde0e5d">PSBUZZ_VID</a></div><div class="ttdeci">#define PSBUZZ_VID</div><div class="ttdef"><b>Definition:</b> <a href="_p_s_buzz_8h_source.html#l00024">PSBuzz.h:24</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fd"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a></div><div class="ttdeci">ButtonEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00072">controllerEnums.h:72</a></div></div>
<div class="ttc" id="_p_s_buzz_8h_html_a0dd7a843e3d17c9404bdfa2723b3e1d5"><div class="ttname"><a href="_p_s_buzz_8h.html#a0dd7a843e3d17c9404bdfa2723b3e1d5">PSBUZZ_PID</a></div><div class="ttdeci">#define PSBUZZ_PID</div><div class="ttdef"><b>Definition:</b> <a href="_p_s_buzz_8h_source.html#l00025">PSBuzz.h:25</a></div></div>
<div class="ttc" id="class_h_i_d_html"><div class="ttname"><a href="class_h_i_d.html">HID</a></div><div class="ttdef"><b>Definition:</b> <a href="hid_8h_source.html#l00143">hid.h:143</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_aee05d40a014750b24a7e9967f6f389f4"><div class="ttname"><a href="_b_t_d_8h.html#aee05d40a014750b24a7e9967f6f389f4">HID_REQUEST_SET_REPORT</a></div><div class="ttdeci">#define HID_REQUEST_SET_REPORT</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00039">BTD.h:39</a></div></div>
<div class="ttc" id="class_p_s_buzz_html_aef2921259c5df33128d2a19bba87838b"><div class="ttname"><a href="class_p_s_buzz.html#aef2921259c5df33128d2a19bba87838b">PSBuzz::setLedRaw</a></div><div class="ttdeci">void setLedRaw(bool value, uint8_t controller=0)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s_buzz_8cpp_source.html#l00064">PSBuzz.cpp:64</a></div></div>
<div class="ttc" id="version__helper_8h_html_a73809107539df84eaf01f6a4dea4fbff"><div class="ttname"><a href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a></div><div class="ttdeci">#define PSTR(str)</div><div class="ttdef"><b>Definition:</b> <a href="version__helper_8h_source.html#l00047">version_helper.h:47</a></div></div>
<div class="ttc" id="class_h_i_d_html_a1583e665c2b930e8683c10dc271f013f"><div class="ttname"><a href="class_h_i_d.html#a1583e665c2b930e8683c10dc271f013f">HID::pUsb</a></div><div class="ttdeci">USB * pUsb</div><div class="ttdef"><b>Definition:</b> <a href="hid_8h_source.html#l00145">hid.h:145</a></div></div>
<div class="ttc" id="class_p_s_buzz_html_abcd889f795e4ffaf8d5981432ddcb01b"><div class="ttname"><a href="class_p_s_buzz.html#abcd889f795e4ffaf8d5981432ddcb01b">PSBuzz::OnInitSuccessful</a></div><div class="ttdeci">virtual uint8_t OnInitSuccessful()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s_buzz_8cpp_source.html#l00041">PSBuzz.cpp:41</a></div></div>
<div class="ttc" id="class_p_s_buzz_html_abcd889f795e4ffaf8d5981432ddcb01b"><div class="ttname"><a href="class_p_s_buzz.html#abcd889f795e4ffaf8d5981432ddcb01b">PSBuzz::OnInitSuccessful</a></div><div class="ttdeci">uint8_t OnInitSuccessful()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s_buzz_8cpp_source.html#l00041">PSBuzz.cpp:41</a></div></div>
<div class="ttc" id="class_p_s_buzz_html_aa21ebc0620730ae2d96a31f405368d31"><div class="ttname"><a href="class_p_s_buzz.html#aa21ebc0620730ae2d96a31f405368d31">PSBuzz::setLedOnAll</a></div><div class="ttdeci">void setLedOnAll()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s_buzz_8h_source.html#l00114">PSBuzz.h:114</a></div></div>
<div class="ttc" id="union_p_s_b_u_z_z_buttons_html_aff7e8cc5b9c87d4662dbe687741b78f2"><div class="ttname"><a href="union_p_s_b_u_z_z_buttons.html#aff7e8cc5b9c87d4662dbe687741b78f2">PSBUZZButtons::val</a></div><div class="ttdeci">uint32_t val</div><div class="ttdef"><b>Definition:</b> <a href="_p_s_buzz_8h_source.html#l00036">PSBuzz.h:36</a></div></div>
<div class="ttc" id="class_h_i_d_universal_html_ad26d2e63130abac2059154bf5afbf152"><div class="ttname"><a href="class_h_i_d_universal.html#ad26d2e63130abac2059154bf5afbf152">HIDUniversal::epInfo</a></div><div class="ttdeci">EpInfo epInfo[totalEndpoints]</div><div class="ttdef"><b>Definition:</b> <a href="hiduniversal_8h_source.html#l00064">hiduniversal.h:64</a></div></div>
@ -198,7 +200,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.7
</a> 1.8.9.1
</small></address>
</body>
</html>

View file

@ -3,15 +3,16 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<meta name="generator" content="Doxygen 1.8.9.1"/>
<title>USB Host Shield 2.0: PSBuzz.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="imageStyle.css" rel="stylesheet" type="text/css"/>
@ -31,7 +32,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.7 -->
<!-- Generated by Doxygen 1.8.9.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -70,7 +71,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
@ -159,7 +160,7 @@ Macros</h2></td></tr>
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.7
</a> 1.8.9.1
</small></address>
</body>
</html>

View file

@ -1 +1 @@
b1edc92eb077ae74eaa6c13520327464
88928a152c2f379aa7b4a52bc6f3da10

View file

@ -1 +1 @@
1a6703ad2b9e33f56caa9fc30e3e4491
63019066017967cce826893baf0f58e6

View file

@ -3,15 +3,16 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<meta name="generator" content="Doxygen 1.8.9.1"/>
<title>USB Host Shield 2.0: PSBuzz.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="imageStyle.css" rel="stylesheet" type="text/css"/>
@ -31,7 +32,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.7 -->
<!-- Generated by Doxygen 1.8.9.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -70,7 +71,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
@ -122,7 +123,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="union_p_s_b_u_z_z_buttons.html#a904a64983806580f74480bf06597adca"> 32</a></span>&#160; uint8_t <a class="code" href="union_p_s_b_u_z_z_buttons.html#a904a64983806580f74480bf06597adca">green</a> : 1;</div>
<div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="union_p_s_b_u_z_z_buttons.html#a6acaf988a2a5433c539e09dd722398ab"> 33</a></span>&#160; uint8_t <a class="code" href="union_p_s_b_u_z_z_buttons.html#a6acaf988a2a5433c539e09dd722398ab">orange</a> : 1;</div>
<div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="union_p_s_b_u_z_z_buttons.html#a28d1237b28db689be4b0e79348c2f993"> 34</a></span>&#160; uint8_t <a class="code" href="union_p_s_b_u_z_z_buttons.html#a28d1237b28db689be4b0e79348c2f993">blue</a> : 1;</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; } __attribute__((packed)) <a class="code" href="union_p_s_b_u_z_z_buttons.html#adc227bdd6f33d09bdfc6abd0571a26a9">btn</a>[4];</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; } __attribute__((packed)) <a class="code" href="union_p_s_b_u_z_z_buttons.html#a4db9ea2056e1aa46420ddc6a86f8e443">btn</a>[4];</div>
<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="union_p_s_b_u_z_z_buttons.html#aff7e8cc5b9c87d4662dbe687741b78f2"> 36</a></span>&#160; uint32_t <a class="code" href="union_p_s_b_u_z_z_buttons.html#aff7e8cc5b9c87d4662dbe687741b78f2">val</a> : 20;</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;} __attribute__((packed));</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div>
@ -170,9 +171,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; setLedRaw(!ledState[controller], controller);</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; };</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;<span class="keyword">protected</span>:</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> ParseHIDData(<a class="code" href="class_h_i_d.html">HID</a> *hid, <span class="keywordtype">bool</span> is_rpt_id, uint8_t len, uint8_t *buf);</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordtype">void</span> ParseHIDData(<a class="code" href="class_h_i_d.html">HID</a> *hid, <span class="keywordtype">bool</span> is_rpt_id, uint8_t len, uint8_t *buf);</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keyword">virtual</span> uint8_t OnInitSuccessful();</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; uint8_t OnInitSuccessful();</div>
<div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="class_p_s_buzz.html#a5bb4f2ee80ca9d10d87031b57bd09268"> 157</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s_buzz.html#a5bb4f2ee80ca9d10d87031b57bd09268">Reset</a>() {</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; psbuzzButtons.val = 0;</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; oldButtonState.val = 0;</div>
@ -181,7 +182,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; ledState[i] = 0;</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; };</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div>
<div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="class_p_s_buzz.html#abf411853bb83ea4e805eeb77e55b2d2f"> 172</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">boolean</span> <a class="code" href="class_p_s_buzz.html#abf411853bb83ea4e805eeb77e55b2d2f">VIDPIDOK</a>(uint16_t vid, uint16_t pid) {</div>
<div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="class_p_s_buzz.html#ae94840ce88d873664d1f1d8e46928acb"> 172</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_p_s_buzz.html#ae94840ce88d873664d1f1d8e46928acb">VIDPIDOK</a>(uint16_t vid, uint16_t pid) {</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">return</span> (vid == <a class="code" href="_p_s_buzz_8h.html#aa550e9c001056b0ee39428704cde0e5d">PSBUZZ_VID</a> &amp;&amp; pid == <a class="code" href="_p_s_buzz_8h.html#a0dd7a843e3d17c9404bdfa2723b3e1d5">PSBUZZ_PID</a>);</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; };</div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;<span class="keyword">private</span>:</div>
@ -195,6 +196,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="ttc" id="class_h_i_d_universal_html_abc609e49d66fa6260e7cdcd2c4ff0a5a"><div class="ttname"><a href="class_h_i_d_universal.html#abc609e49d66fa6260e7cdcd2c4ff0a5a">HIDUniversal::PID</a></div><div class="ttdeci">uint16_t PID</div><div class="ttdef"><b>Definition:</b> <a href="hiduniversal_8h_source.html#l00069">hiduniversal.h:69</a></div></div>
<div class="ttc" id="union_p_s_b_u_z_z_buttons_html_a7bc184a6500e943f8b8f13a003e9a929"><div class="ttname"><a href="union_p_s_b_u_z_z_buttons.html#a7bc184a6500e943f8b8f13a003e9a929">PSBUZZButtons::red</a></div><div class="ttdeci">uint8_t red</div><div class="ttdef"><b>Definition:</b> <a href="_p_s_buzz_8h_source.html#l00030">PSBuzz.h:30</a></div></div>
<div class="ttc" id="union_p_s_b_u_z_z_buttons_html_a4db9ea2056e1aa46420ddc6a86f8e443"><div class="ttname"><a href="union_p_s_b_u_z_z_buttons.html#a4db9ea2056e1aa46420ddc6a86f8e443">PSBUZZButtons::btn</a></div><div class="ttdeci">struct PSBUZZButtons::@29 btn[4]</div></div>
<div class="ttc" id="class_p_s_buzz_html_a8ae0c597286749247d7c24c5143e45c7"><div class="ttname"><a href="class_p_s_buzz.html#a8ae0c597286749247d7c24c5143e45c7">PSBuzz::setLedToggle</a></div><div class="ttdeci">void setLedToggle(uint8_t controller=0)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s_buzz_8h_source.html#l00132">PSBuzz.h:132</a></div></div>
<div class="ttc" id="class_p_s_buzz_html_a0d4c401b742605d251a840646bd58112"><div class="ttname"><a href="class_p_s_buzz.html#a0d4c401b742605d251a840646bd58112">PSBuzz::attachOnInit</a></div><div class="ttdeci">void attachOnInit(void(*funcOnInit)(void))</div><div class="ttdef"><b>Definition:</b> <a href="_p_s_buzz_8h_source.html#l00066">PSBuzz.h:66</a></div></div>
<div class="ttc" id="class_h_i_d_universal_html_aa4be95e8f5164393ea4766f68c5b0ea8"><div class="ttname"><a href="class_h_i_d_universal.html#aa4be95e8f5164393ea4766f68c5b0ea8">HIDUniversal::isReady</a></div><div class="ttdeci">virtual bool isReady()</div><div class="ttdef"><b>Definition:</b> <a href="hiduniversal_8h_source.html#l00097">hiduniversal.h:97</a></div></div>
@ -211,15 +213,14 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="ttc" id="_p_s_buzz_8h_html_a0dd7a843e3d17c9404bdfa2723b3e1d5"><div class="ttname"><a href="_p_s_buzz_8h.html#a0dd7a843e3d17c9404bdfa2723b3e1d5">PSBUZZ_PID</a></div><div class="ttdeci">#define PSBUZZ_PID</div><div class="ttdef"><b>Definition:</b> <a href="_p_s_buzz_8h_source.html#l00025">PSBuzz.h:25</a></div></div>
<div class="ttc" id="union_p_s_b_u_z_z_buttons_html_a57f1a1aee6fd182d91c562140777f396"><div class="ttname"><a href="union_p_s_b_u_z_z_buttons.html#a57f1a1aee6fd182d91c562140777f396">PSBUZZButtons::yellow</a></div><div class="ttdeci">uint8_t yellow</div><div class="ttdef"><b>Definition:</b> <a href="_p_s_buzz_8h_source.html#l00031">PSBuzz.h:31</a></div></div>
<div class="ttc" id="class_h_i_d_html"><div class="ttname"><a href="class_h_i_d.html">HID</a></div><div class="ttdef"><b>Definition:</b> <a href="hid_8h_source.html#l00143">hid.h:143</a></div></div>
<div class="ttc" id="class_p_s_buzz_html_ae94840ce88d873664d1f1d8e46928acb"><div class="ttname"><a href="class_p_s_buzz.html#ae94840ce88d873664d1f1d8e46928acb">PSBuzz::VIDPIDOK</a></div><div class="ttdeci">virtual bool VIDPIDOK(uint16_t vid, uint16_t pid)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s_buzz_8h_source.html#l00172">PSBuzz.h:172</a></div></div>
<div class="ttc" id="class_p_s_buzz_html_a0ac254a17e3a3dca070df3428ece6ed3"><div class="ttname"><a href="class_p_s_buzz.html#a0ac254a17e3a3dca070df3428ece6ed3">PSBuzz::setLedOff</a></div><div class="ttdeci">void setLedOff(uint8_t controller=0)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s_buzz_8h_source.html#l00108">PSBuzz.h:108</a></div></div>
<div class="ttc" id="hiduniversal_8h_html"><div class="ttname"><a href="hiduniversal_8h.html">hiduniversal.h</a></div></div>
<div class="ttc" id="class_p_s_buzz_html_a0b70e832e6a9cfdc3a906719aa54147c"><div class="ttname"><a href="class_p_s_buzz.html#a0b70e832e6a9cfdc3a906719aa54147c">PSBuzz::PSBuzz</a></div><div class="ttdeci">PSBuzz(USB *p)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s_buzz_8h_source.html#l00049">PSBuzz.h:49</a></div></div>
<div class="ttc" id="class_p_s_buzz_html_aa21ebc0620730ae2d96a31f405368d31"><div class="ttname"><a href="class_p_s_buzz.html#aa21ebc0620730ae2d96a31f405368d31">PSBuzz::setLedOnAll</a></div><div class="ttdeci">void setLedOnAll()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s_buzz_8h_source.html#l00114">PSBuzz.h:114</a></div></div>
<div class="ttc" id="class_u_s_b_html"><div class="ttname"><a href="class_u_s_b.html">USB</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00190">UsbCore.h:190</a></div></div>
<div class="ttc" id="class_u_s_b_html"><div class="ttname"><a href="class_u_s_b.html">USB</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00197">UsbCore.h:197</a></div></div>
<div class="ttc" id="class_p_s_buzz_html_a689d8e384a770a2dd13cd436a514a6dc"><div class="ttname"><a href="class_p_s_buzz.html#a689d8e384a770a2dd13cd436a514a6dc">PSBuzz::setLedOn</a></div><div class="ttdeci">void setLedOn(uint8_t controller=0)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s_buzz_8h_source.html#l00124">PSBuzz.h:124</a></div></div>
<div class="ttc" id="union_p_s_b_u_z_z_buttons_html_aff7e8cc5b9c87d4662dbe687741b78f2"><div class="ttname"><a href="union_p_s_b_u_z_z_buttons.html#aff7e8cc5b9c87d4662dbe687741b78f2">PSBUZZButtons::val</a></div><div class="ttdeci">uint32_t val</div><div class="ttdef"><b>Definition:</b> <a href="_p_s_buzz_8h_source.html#l00036">PSBuzz.h:36</a></div></div>
<div class="ttc" id="class_p_s_buzz_html_abf411853bb83ea4e805eeb77e55b2d2f"><div class="ttname"><a href="class_p_s_buzz.html#abf411853bb83ea4e805eeb77e55b2d2f">PSBuzz::VIDPIDOK</a></div><div class="ttdeci">virtual boolean VIDPIDOK(uint16_t vid, uint16_t pid)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s_buzz_8h_source.html#l00172">PSBuzz.h:172</a></div></div>
<div class="ttc" id="union_p_s_b_u_z_z_buttons_html_adc227bdd6f33d09bdfc6abd0571a26a9"><div class="ttname"><a href="union_p_s_b_u_z_z_buttons.html#adc227bdd6f33d09bdfc6abd0571a26a9">PSBUZZButtons::btn</a></div><div class="ttdeci">struct PSBUZZButtons::@25 btn[4]</div></div>
<div class="ttc" id="union_p_s_b_u_z_z_buttons_html_a6acaf988a2a5433c539e09dd722398ab"><div class="ttname"><a href="union_p_s_b_u_z_z_buttons.html#a6acaf988a2a5433c539e09dd722398ab">PSBUZZButtons::orange</a></div><div class="ttdeci">uint8_t orange</div><div class="ttdef"><b>Definition:</b> <a href="_p_s_buzz_8h_source.html#l00033">PSBuzz.h:33</a></div></div>
<div class="ttc" id="class_p_s_buzz_html_a3fd9d3e984c024959139deea92769ec4"><div class="ttname"><a href="class_p_s_buzz.html#a3fd9d3e984c024959139deea92769ec4">PSBuzz::setLedOffAll</a></div><div class="ttdeci">void setLedOffAll()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s_buzz_8h_source.html#l00098">PSBuzz.h:98</a></div></div>
<div class="ttc" id="class_h_i_d_universal_html"><div class="ttname"><a href="class_h_i_d_universal.html">HIDUniversal</a></div><div class="ttdef"><b>Definition:</b> <a href="hiduniversal_8h_source.html#l00024">hiduniversal.h:24</a></div></div>
@ -228,7 +229,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.7
</a> 1.8.9.1
</small></address>
</body>
</html>

View file

@ -3,15 +3,16 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<meta name="generator" content="Doxygen 1.8.9.1"/>
<title>USB Host Shield 2.0: README.md File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="imageStyle.css" rel="stylesheet" type="text/css"/>
@ -31,7 +32,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.7 -->
<!-- Generated by Doxygen 1.8.9.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -70,7 +71,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
@ -92,7 +93,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.7
</a> 1.8.9.1
</small></address>
</body>
</html>

View file

@ -3,15 +3,16 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<meta name="generator" content="Doxygen 1.8.9.1"/>
<title>USB Host Shield 2.0: README.md Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="imageStyle.css" rel="stylesheet" type="text/css"/>
@ -31,7 +32,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.7 -->
<!-- Generated by Doxygen 1.8.9.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -71,7 +72,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
@ -85,275 +86,351 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="title">README.md</div> </div>
</div><!--header-->
<div class="contents">
<a href="_r_e_a_d_m_e_8md.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor"># USB Host Library Rev.2.0</span></div>
<a href="_r_e_a_d_m_e_8md.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;# USB Host Library Rev.2.0</div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;</div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;The code is released under the GNU General Public License.</div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;__________</div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor"># Summary</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;This is Revision 2.0 of <a class="code" href="class_m_a_x3421e.html">MAX3421E</a>-based <a class="code" href="class_u_s_b.html">USB</a> Host Shield Library <span class="keywordflow">for</span> AVR<span class="stringliteral">&#39;s.</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="stringliteral">Project main web site is: &lt;http://www.circuitsathome.com&gt;.</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="stringliteral">Some information can also be found at: &lt;http://blog.tkjelectronics.dk/&gt;.</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="stringliteral">The shield can be purchased at the main site: &lt;http://www.circuitsathome.com/products-page/arduino-shields&gt; or from [TKJ Electronics](http://tkjelectronics.com/): &lt;http://shop.tkjelectronics.dk/product_info.php?products_id=43&gt;.</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="stringliteral">![USB Host Shield](http://www.circuitsathome.com/wp/wp-content/uploads/2012/02/UHS_20_main-288x216.jpg)</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="stringliteral">For more information about the hardware see the [Hardware Manual](http://www.circuitsathome.com/usb-host-shield-hardware-manual).</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="stringliteral"># Developed By</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="stringliteral">* __Oleg Mazurov, Circuits\@Home__ - &lt;mazurov@circuitsathome.com&gt;</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="stringliteral">* __Alexei Glushchenko, Circuits\@Home__ - &lt;alex-gl@mail.ru&gt;</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="stringliteral"> * Developers of the USB Core, HID, FTDI, ADK, ACM, and PL2303 libraries</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="stringliteral">* __Kristian Lauszus, TKJ Electronics__ - &lt;kristianl@tkjelectronics.com&gt;</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="stringliteral"> * Developer of the [BTD](#bluetooth-libraries), [BTHID](#bthid-library), [SPP](#spp-library), [PS4](#ps4-library), [PS3](#ps3-library), [Wii](#wii-library), [Xbox](#xbox-library), and [PSBuzz](#ps-buzz-library) libraries</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="stringliteral">* __Andrew Kroll__ - &lt;xxxajk@gmail.com&gt;</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="stringliteral"> * Major contributor to mass storage code</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="stringliteral"># How to include the library</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="stringliteral">First download the library by clicking on the following link: &lt;https://github.com/felis/USB_Host_Shield_2.0/archive/master.zip&gt;.</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="stringliteral">Then uncompress the zip folder and rename the directory to &quot;USB\_Host\_Shield\_20&quot;, as any special characters are not supported by the Arduino IDE.</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="stringliteral">Now open up the Arduino IDE and open &quot;File&gt;Preferences&quot;. There you will see the location of your sketchbook. Open that directory and create a directory called &quot;libraries&quot; inside that directory.</span></div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="stringliteral">Now move the &quot;USB\_Host\_Shield\_20&quot; directory to the &quot;libraries&quot; directory.</span></div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="stringliteral">The final structure should look like this:</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="stringliteral">* Arduino/</span></div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="stringliteral"> * libraries/</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="stringliteral"> * USB\_Host\_Shield\_20/</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="stringliteral">Now quit the Arduino IDE and reopen it.</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="stringliteral">Now you should be able to go open all the examples codes by navigating to &quot;File&gt;Examples&gt;USB\_Host\_Shield\_20&quot; and then select the example you will like to open.</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="stringliteral">For more information visit the following site: &lt;http://arduino.cc/en/Guide/Libraries&gt;.</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="stringliteral"># How to use the library</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="stringliteral">### Documentation</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="stringliteral">Documentation for the library can be found at the following link: &lt;http://felis.github.com/USB_Host_Shield_2.0/&gt;.</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="stringliteral">### Enable debugging</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="stringliteral">By default serial debugging is disabled. To turn it on simply change ```ENABLE_UHS_DEBUGGING``` to 1 in [settings.h](settings.h) like so:</span></div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="stringliteral">```C++</span></div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="stringliteral">#define ENABLE_UHS_DEBUGGING 1</span></div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="stringliteral">```</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="stringliteral">### Boards</span></div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="stringliteral">Currently the following boards are supported by the library:</span></div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="stringliteral">* All official Arduino AVR boards (Uno, Duemilanove, Mega, Mega 2560, Mega ADK, Leonardo etc.)</span></div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="stringliteral">* Arduino Due</span></div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="stringliteral"> * If you are using the Arduino Due, then you must include the Arduino SPI library like so: ```#include &lt;SPI.h&gt;``` in your .ino file.</span></div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="stringliteral">* Teensy (Teensy++ 1.0, Teensy 2.0, Teensy++ 2.0, and Teensy 3.x)</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="stringliteral"> * Note if you are using the Teensy 3.x you should download this SPI library as well: &lt;https://github.com/xxxajk/spi4teensy3&gt;. You should then add ```#include &lt;spi4teensy3.h&gt;``` to your .ino file.</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="stringliteral">* Balanduino</span></div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="stringliteral">* Sanguino</span></div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="stringliteral">* Black Widdow</span></div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="stringliteral">The following boards need to be activated manually in [settings.h](settings.h):</span></div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="stringliteral">* Arduino Mega ADK</span></div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="stringliteral"> * If you are using Arduino 1.5.5 or newer there is no need to activate the Arduino Mega ADK manually</span></div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="stringliteral">* Black Widdow</span></div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="stringliteral">Simply set the corresponding value to 1 instead of 0.</span></div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="stringliteral">### [Bluetooth libraries](BTD.cpp)</span></div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="stringliteral">The [BTD library](BTD.cpp) is a general purpose library for an ordinary Bluetooth dongle.</span></div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="stringliteral">This library make it easy to add support for different Bluetooth services like a PS3 or a Wii controller or SPP which is a virtual serial port via Bluetooth.</span></div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="stringliteral">Some different examples can be found in the [example directory](examples/Bluetooth).</span></div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="stringliteral">The BTD library also makes it possible to use multiple services at once, the following example sketch is an example of this:</span></div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="stringliteral">[PS3SPP.ino](examples/Bluetooth/PS3SPP/PS3SPP.ino).</span></div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="stringliteral">### [BTHID library](BTHID.cpp)</span></div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="stringliteral">The [Bluetooth HID library](BTHID.cpp) allows you to connect HID devices via Bluetooth to the USB Host Shield.</span></div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="stringliteral">Currently HID mice and keyboards are supported.</span></div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="stringliteral">It uses the standard Boot protocol by default, but it is also able to use the Report protocol as well. You would simply have to call ```setProtocolMode()``` and then parse ```HID_RPT_PROTOCOL``` as an argument. You will then have to modify the parser for your device. See the example: [BTHID.ino](examples/Bluetooth/BTHID/BTHID.ino) for more information.</span></div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="stringliteral">The [PS4 library](#ps4-library) also uses this class to handle all Bluetooth communication.</span></div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="stringliteral">For information see the following blog post: &lt;http://blog.tkjelectronics.dk/2013/12/bluetooth-hid-devices-now-supported-by-the-usb-host-library/&gt;.</span></div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="stringliteral">### [SPP library](SPP.cpp)</span></div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="stringliteral">SPP stands for &quot;Serial Port Profile&quot; and is a Bluetooth protocol that implements a virtual comport which allows you to send data back and forth from your computer/phone to your Arduino via Bluetooth.</span></div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="stringliteral">It has been tested successfully on Windows, Mac OS X, Linux, and Android.</span></div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="stringliteral">Take a look at the [SPP.ino](examples/Bluetooth/SPP/SPP.ino) example for more information.</span></div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="stringliteral">More information can be found at these blog posts:</span></div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="stringliteral">* &lt;http://www.circuitsathome.com/mcu/bluetooth-rfcommspp-service-support-for-usb-host-2-0-library-released&gt;</span></div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="stringliteral">* &lt;http://blog.tkjelectronics.dk/2012/07/rfcommspp-library-for-arduino/&gt;</span></div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="stringliteral">To implement the SPP protocol I used a Bluetooth sniffing tool called [PacketLogger](http://www.tkjelectronics.com/uploads/PacketLogger.zip) developed by Apple.</span></div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="stringliteral">It enables me to see the Bluetooth communication between my Mac and any device.</span></div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="stringliteral">### PS4 Library</span></div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="stringliteral">The PS4BT library is split up into the [PS4BT](PS4BT.h) and the [PS4USB](PS4USB.h) library. These allow you to use the Sony PS4 controller via Bluetooth and USB.</span></div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="stringliteral">The [PS4BT.ino](examples/Bluetooth/PS4BT/PS4BT.ino) and [PS4USB.ino](examples/PS4USB/PS4USB.ino) examples shows how to easily read the buttons, joysticks, touchpad and IMU on the controller via Bluetooth and USB respectively. It is also possible to control the rumble and light on the controller and get the battery level.</span></div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="stringliteral">Before you can use the PS4 controller via Bluetooth you will need to pair with it.</span></div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="stringliteral">Simply create the PS4BT instance like so: ```PS4BT PS4(&amp;Btd, PAIR);``` and then hold down the Share button and then hold down the PS without releasing the Share button. The PS4 controller will then start to blink rapidly indicating that it is in paring mode.</span></div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="stringliteral">It should then automatically pair the dongle with your controller. This only have to be done once.</span></div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="stringliteral">For information see the following blog post: &lt;http://blog.tkjelectronics.dk/2014/01/ps4-controller-now-supported-by-the-usb-host-library/&gt;.</span></div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="stringliteral">Also check out this excellent Wiki by Frank Zhao about the PS4 controller: &lt;http://eleccelerator.com/wiki/index.php?title=DualShock_4&gt; and this Linux driver: &lt;https://github.com/chrippa/ds4drv&gt;.</span></div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;<span class="stringliteral">### PS3 Library</span></div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="stringliteral">These libraries consist of the [PS3BT](PS3BT.cpp) and [PS3USB](PS3USB.cpp). These libraries allows you to use a Dualshock 3, Navigation or a Motion controller with the USB Host Shield both via Bluetooth and USB.</span></div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="stringliteral">In order to use your Playstation controller via Bluetooth you have to set the Bluetooth address of the dongle internally to your PS3 Controller. This can be achieved by first plugging in the Bluetooth dongle and wait a few seconds. Now plug in the controller via USB and wait until the LEDs start to flash. The library has now written the Bluetooth address of the dongle to the PS3 controller.</span></div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="stringliteral">Finally simply plug in the Bluetooth dongle again and press PS on the PS3 controller. After a few seconds it should be connected to the dongle and ready to use.</span></div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;<span class="stringliteral">__Note:__ You will have to plug in the Bluetooth dongle before connecting the controller, as the library needs to read the address of the dongle. Alternatively you could set it in code like so: [PS3BT.ino#L20](examples/Bluetooth/PS3BT/PS3BT.ino#L20).</span></div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="stringliteral">For more information about the PS3 protocol see the official wiki: &lt;https://github.com/felis/USB_Host_Shield_2.0/wiki/PS3-Information&gt;.</span></div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<span class="stringliteral">Also take a look at the blog posts:</span></div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="stringliteral">* &lt;http://blog.tkjelectronics.dk/2012/01/ps3-controller-bt-library-for-arduino/&gt;</span></div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="stringliteral">* &lt;http://www.circuitsathome.com/mcu/sony-ps3-controller-support-added-to-usb-host-library&gt;</span></div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="stringliteral">* &lt;http://www.circuitsathome.com/mcu/arduino/interfacing-ps3-controllers-via-usb&gt;</span></div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<span class="stringliteral">A special thanks go to the following people:</span></div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;<span class="stringliteral">1. _Richard Ibbotson_ who made this excellent guide: &lt;http://www.circuitsathome.com/mcu/ps3-and-wiimote-game-controllers-on-the-arduino-host-shield-part&gt;</span></div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="stringliteral">2. _Tomoyuki Tanaka_ for releasing his code for the Arduino USB Host shield connected to the wiimote: &lt;http://www.circuitsathome.com/mcu/rc-car-controlled-by-wii-remote-on-arduino&gt;</span></div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<span class="stringliteral">Also a big thanks all the people behind these sites about the Motion controller:</span></div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="stringliteral">* &lt;http://thp.io/2010/psmove/&gt;</span></div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;<span class="stringliteral">* &lt;http://www.copenhagengamecollective.org/unimove/&gt;</span></div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;<span class="stringliteral">* &lt;https://github.com/thp/psmoveapi&gt;</span></div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="stringliteral">* &lt;http://code.google.com/p/moveonpc/&gt;</span></div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;<span class="stringliteral">### Xbox Libraries</span></div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;<span class="stringliteral">The library supports both the original Xbox controller via USB and the Xbox 360 controller both via USB and wirelessly.</span></div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;<span class="stringliteral">#### Xbox library</span></div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;<span class="stringliteral">The [XBOXOLD](XBOXOLD.cpp) class implements support for the original Xbox controller via USB.</span></div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<span class="stringliteral">All the information are from the following sites:</span></div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;<span class="stringliteral">* &lt;https://github.com/torvalds/linux/blob/master/Documentation/input/xpad.txt&gt;</span></div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;<span class="stringliteral">* &lt;https://github.com/torvalds/linux/blob/master/drivers/input/joystick/xpad.c&gt;</span></div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="stringliteral">* &lt;http://euc.jp/periphs/xbox-controller.ja.html&gt;</span></div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;<span class="stringliteral">* &lt;https://github.com/Grumbel/xboxdrv/blob/master/PROTOCOL#L15&gt;</span></div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="stringliteral">#### Xbox 360 Library</span></div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="stringliteral">The library support one Xbox 360 via USB or up to four Xbox 360 controllers wirelessly by using a [Xbox 360 wireless receiver](http://blog.tkjelectronics.dk/wp-content/uploads/xbox360-wireless-receiver.jpg).</span></div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="stringliteral">To use it via USB use the [XBOXUSB](XBOXUSB.cpp) library or to use it wirelessly use the [XBOXRECV](XBOXRECV.cpp) library.</span></div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;<span class="stringliteral">__Note that a Wireless controller can NOT be used via USB!__</span></div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;<span class="stringliteral">Examples code can be found in the [examples directory](examples/Xbox).</span></div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;<span class="stringliteral">Also see the following blog posts:</span></div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<span class="stringliteral">* &lt;http://www.circuitsathome.com/mcu/xbox360-controller-support-added-to-usb-host-shield-2-0-library&gt;</span></div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="stringliteral">* &lt;http://blog.tkjelectronics.dk/2012/07/xbox-360-controller-support-added-to-the-usb-host-library/&gt;</span></div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;<span class="stringliteral">* &lt;http://blog.tkjelectronics.dk/2012/12/xbox-360-receiver-added-to-the-usb-host-library/&gt;</span></div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="stringliteral">All the information regarding the Xbox 360 controller protocol are form these sites:</span></div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="stringliteral">* &lt;http://tattiebogle.net/index.php/ProjectRoot/Xbox360Controller/UsbInfo&gt;</span></div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;<span class="stringliteral">* &lt;http://tattiebogle.net/index.php/ProjectRoot/Xbox360Controller/WirelessUsbInfo&gt;</span></div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;<span class="stringliteral">* &lt;https://github.com/Grumbel/xboxdrv/blob/master/PROTOCOL&gt;</span></div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;<span class="stringliteral">### [Wii library](Wii.cpp)</span></div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;<span class="stringliteral">The [Wii](Wii.cpp) library support the Wiimote, but also the Nunchuch and Motion Plus extensions via Bluetooth. The Wii U Pro Controller is also supported via Bluetooth.</span></div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;<span class="stringliteral">First you have to pair with the controller, this is done automatically by the library if you create the instance like so:</span></div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="stringliteral">```C++</span></div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<span class="stringliteral">WII Wii(&amp;Btd, PAIR);</span></div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;<span class="stringliteral">```</span></div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;<span class="stringliteral">And then press 1 &amp; 2 at once on the Wiimote or press sync if you are using a Wii U Pro Controller.</span></div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;<span class="stringliteral">After that you can simply create the instance like so:</span></div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;<span class="stringliteral">```C++</span></div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;<span class="stringliteral">WII Wii(&amp;Btd);</span></div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;<span class="stringliteral">```</span></div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;<span class="stringliteral">Then just press any button on the Wiimote and it will then connect to the dongle.</span></div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;<span class="stringliteral">Take a look at the example for more information: [Wii.ino](examples/Bluetooth/Wii/Wii.ino).</span></div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;<span class="stringliteral">Also take a look at the blog post:</span></div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;<span class="stringliteral">* &lt;http://blog.tkjelectronics.dk/2012/08/wiimote-added-to-usb-host-library/&gt;</span></div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;<span class="stringliteral">The Wii IR camera can also be used, but you will have to activate the code for it manually as it is quite large. Simply set ```ENABLE_WII_IR_CAMERA``` to 1 in [settings.h](settings.h).</span></div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;<span class="stringliteral">The [WiiIRCamera.ino](examples/Bluetooth/WiiIRCamera/WiiIRCamera.ino) example shows how it can be used.</span></div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;<span class="stringliteral">All the information about the Wii controllers are from these sites:</span></div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;<span class="stringliteral">* &lt;http://wiibrew.org/wiki/Wiimote&gt;</span></div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;<span class="stringliteral">* &lt;http://wiibrew.org/wiki/Wiimote/Extension_Controllers&gt;</span></div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;<span class="stringliteral">* &lt;http://wiibrew.org/wiki/Wiimote/Extension_Controllers/Nunchuck&gt;</span></div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;<span class="stringliteral">* &lt;http://wiibrew.org/wiki/Wiimote/Extension_Controllers/Wii_Motion_Plus&gt;</span></div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;<span class="stringliteral">* The old library created by _Tomoyuki Tanaka_: &lt;https://github.com/moyuchin/WiiRemote_on_Arduino&gt; also helped a lot.</span></div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;<span class="stringliteral">### [PS Buzz Library](PSBuzz.cpp)</span></div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;<span class="stringliteral">This library implements support for the Playstation Buzz controllers via USB.</span></div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;<span class="stringliteral">It is essentially just a wrapper around the [HIDUniversal](hiduniversal.cpp) which takes care of the initializing and reading of the controllers. The [PSBuzz](PSBuzz.cpp) class simply inherits this and parses the data, so it is easy for users to read the buttons and turn the big red button on the controllers on and off.</span></div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;<span class="stringliteral">The example [PSBuzz.ino](examples/PSBuzz/PSBuzz.ino) shows how one can do this with just a few lines of code.</span></div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;<span class="stringliteral">More information about the controller can be found at the following sites:</span></div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;<span class="stringliteral">* http://www.developerfusion.com/article/84338/making-usb-c-friendly/</span></div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<span class="stringliteral">* https://github.com/torvalds/linux/blob/master/drivers/hid/hid-sony.c</span></div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;<span class="stringliteral"># FAQ</span></div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;<span class="stringliteral">&gt; When I plug my device into the USB connector nothing happens?</span></div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;<span class="stringliteral">* Try to connect a external power supply to the Arduino - this solves the problem in most cases.</span></div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;<span class="stringliteral">* You can also use a powered hub between the device and the USB Host Shield. You should then include the USB hub library: ```#include &lt;usbhub.h&gt;``` and create the instance like so: ```USBHub Hub1(&amp;Usb);```.</span></div>
<div class="ttc" id="class_m_a_x3421e_html"><div class="ttname"><a href="class_m_a_x3421e.html">MAX3421e</a></div><div class="ttdef"><b>Definition:</b> <a href="usbhost_8h_source.html#l00086">usbhost.h:86</a></div></div>
<div class="ttc" id="class_u_s_b_html"><div class="ttname"><a href="class_u_s_b.html">USB</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00190">UsbCore.h:190</a></div></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;# Summary</div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;This is Revision 2.0 of MAX3421E-based USB Host Shield Library for AVR&#39;s.</div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;</div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;Project main web site is: &lt;http://www.circuitsathome.com&gt;.</div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;</div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;Some information can also be found at: &lt;http://blog.tkjelectronics.dk/&gt;.</div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;The shield can be purchased at the main site: &lt;http://www.circuitsathome.com/products-page/arduino-shields&gt; or from [TKJ Electronics](http://tkjelectronics.com/): &lt;http://shop.tkjelectronics.dk/product_info.php?products_id=43&gt;.</div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;![USB Host Shield](http://shop.tkjelectronics.dk/images/USB_Host_Shield1.jpg)</div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;For more information about the hardware see the [Hardware Manual](http://www.circuitsathome.com/usb-host-shield-hardware-manual).</div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;# Developed By</div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;* __Oleg Mazurov, Circuits\@Home__ - &lt;mazurov@circuitsathome.com&gt;</div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;* __Alexei Glushchenko, Circuits\@Home__ - &lt;alex-gl@mail.ru&gt;</div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; * Developers of the USB Core, HID, FTDI, ADK, ACM, and PL2303 libraries</div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;* __Kristian Lauszus, TKJ Electronics__ - &lt;kristianl@tkjelectronics.com&gt;</div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; * Developer of the [BTD](#bluetooth-libraries), [BTHID](#bthid-library), [SPP](#spp-library), [PS4](#ps4-library), [PS3](#ps3-library), [Wii](#wii-library), [Xbox](#xbox-library), and [PSBuzz](#ps-buzz-library) libraries</div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;* __Andrew Kroll__ - &lt;xxxajk@gmail.com&gt;</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; * Major contributor to mass storage code</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;* __guruthree__</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; * [Xbox ONE](#xbox-one-library) controller support</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;# Donate</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;Help yourself by helping us support you! Many thousands of hours have been spent developing the USB Host Shield library. Since you find it useful, please consider donating via the button below. Donations will allow us to support you by ensuring hardware that you have can be acquired in order to add support for your microcontroller board.</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;&lt;a href=&quot;https://www.paypal.com/cgi-bin/webscr?cmd=_donations&amp;amp;business=donate@circuitsathome.com&amp;amp;lc=US&amp;amp;item_name=Donate%20to%20the%20USB%20Host%20Library%20project&amp;amp;no_note=0&amp;amp;currency_code=USD&amp;amp;bn=PP%2dDonationsBF%3abtn_donate_LG%2egif%3aNonHostedGuest&quot;&gt;&lt;img src=&quot;https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif&quot; alt=&quot;PayPal - The safer, easier way to pay online!&quot; /&gt;&lt;/a&gt;</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;# Table of Contents</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;* [How to include the library](#how-to-include-the-library)</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;* [How to use the library](#how-to-use-the-library)</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; * [Documentation](#documentation)</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; * [Enable debugging](#enable-debugging)</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; * [Boards](#boards)</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; * [Bluetooth libraries](#bluetooth-libraries)</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; * [BTHID library](#bthid-library)</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; * [SPP library](#spp-library)</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; * [PS4 Library](#ps4-library)</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; * [PS3 Library](#ps3-library)</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; * [Xbox Libraries](#xbox-libraries)</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; * [Xbox library](#xbox-library)</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; * [Xbox 360 Library](#xbox-360-library)</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; * [Xbox ONE Library](#xbox-one-library)</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; * [Wii library](#wii-library)</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; * [PS Buzz Library](#ps-buzz-library)</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;* [Interface modifications](#interface-modifications)</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;* [FAQ](#faq)</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;# How to include the library</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;First download the library by clicking on the following link: &lt;https://github.com/felis/USB_Host_Shield_2.0/archive/master.zip&gt;.</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;Then uncompress the zip folder and rename the directory to &quot;USB\_Host\_Shield\_20&quot;, as any special characters are not supported by the Arduino IDE.</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;Now open up the Arduino IDE and open &quot;File&gt;Preferences&quot;. There you will see the location of your sketchbook. Open that directory and create a directory called &quot;libraries&quot; inside that directory.</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;Now move the &quot;USB\_Host\_Shield\_20&quot; directory to the &quot;libraries&quot; directory.</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;The final structure should look like this:</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;* Arduino/</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; * libraries/</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; * USB\_Host\_Shield\_20/</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;Now quit the Arduino IDE and reopen it.</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;Now you should be able to go open all the examples codes by navigating to &quot;File&gt;Examples&gt;USB\_Host\_Shield\_20&quot; and then select the example you will like to open.</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;For more information visit the following sites: &lt;http://arduino.cc/en/Guide/Libraries&gt; and &lt;https://learn.adafruit.com/adafruit-all-about-arduino-libraries-install-use&gt;.</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;# How to use the library</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;### Documentation</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;Documentation for the library can be found at the following link: &lt;http://felis.github.com/USB_Host_Shield_2.0/&gt;.</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;### Enable debugging</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;By default serial debugging is disabled. To turn it on simply change ```ENABLE_UHS_DEBUGGING``` to 1 in [settings.h](settings.h) like so:</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;```C++</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;#define ENABLE_UHS_DEBUGGING 1</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;```</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;### Boards</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;Currently the following boards are supported by the library:</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;* All official Arduino AVR boards (Uno, Duemilanove, Mega, Mega 2560, Mega ADK, Leonardo etc.)</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;* Arduino Due, Intel Galileo, Intel Galileo 2, and Intel Edison</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; * If you are using the Arduino Due, Intel Galileo or Intel Galileo 2, then you must include the Arduino SPI library like so: ```#include &lt;SPI.h&gt;``` in your .ino file.</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; * Note that the Intel Galileo uses pin 2 and 3 as INT and SS pin respectively by default, so some modifications to the shield are needed. See the &quot;Interface modifications&quot; section in the [hardware manual](https://www.circuitsathome.com/usb-host-shield-hardware-manual) for more information.</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;* Teensy (Teensy++ 1.0, Teensy 2.0, Teensy++ 2.0, and Teensy 3.x)</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; * Note if you are using the Teensy 3.x you should download this SPI library as well: &lt;https://github.com/xxxajk/spi4teensy3&gt;. You should then add ```#include &lt;spi4teensy3.h&gt;``` to your .ino file.</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;* Balanduino</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;* Sanguino</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;* Black Widdow</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;* RedBearLab nRF51822</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; * If you are using the RedBearLab nRF51822, then you must include the RedBearLab SPI library like so: ```#include &lt;SPI.h&gt;``` in your .ino file.</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;* Digilent chipKIT</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; * Please see: &lt;http://www.circuitsathome.com/mcu/usb/running-usb-host-code-on-digilent-chipkit-board&gt;.</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;The following boards need to be activated manually in [settings.h](settings.h):</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;* Arduino Mega ADK</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; * If you are using Arduino 1.5.5 or newer there is no need to activate the Arduino Mega ADK manually</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;* Black Widdow</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;Simply set the corresponding value to 1 instead of 0.</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;### [Bluetooth libraries](BTD.cpp)</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;The [BTD library](BTD.cpp) is a general purpose library for an ordinary Bluetooth dongle.</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;This library make it easy to add support for different Bluetooth services like a PS3 or a Wii controller or SPP which is a virtual serial port via Bluetooth.</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;Some different examples can be found in the [example directory](examples/Bluetooth).</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;The BTD library also makes it possible to use multiple services at once, the following example sketch is an example of this:</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;[PS3SPP.ino](examples/Bluetooth/PS3SPP/PS3SPP.ino).</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;### [BTHID library](BTHID.cpp)</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;The [Bluetooth HID library](BTHID.cpp) allows you to connect HID devices via Bluetooth to the USB Host Shield.</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;Currently HID mice and keyboards are supported.</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;It uses the standard Boot protocol by default, but it is also able to use the Report protocol as well. You would simply have to call ```setProtocolMode()``` and then parse ```HID_RPT_PROTOCOL``` as an argument. You will then have to modify the parser for your device. See the example: [BTHID.ino](examples/Bluetooth/BTHID/BTHID.ino) for more information.</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;The [PS4 library](#ps4-library) also uses this class to handle all Bluetooth communication.</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;For information see the following blog post: &lt;http://blog.tkjelectronics.dk/2013/12/bluetooth-hid-devices-now-supported-by-the-usb-host-library/&gt;.</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;### [SPP library](SPP.cpp)</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;SPP stands for &quot;Serial Port Profile&quot; and is a Bluetooth protocol that implements a virtual comport which allows you to send data back and forth from your computer/phone to your Arduino via Bluetooth.</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;It has been tested successfully on Windows, Mac OS X, Linux, and Android.</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;Take a look at the [SPP.ino](examples/Bluetooth/SPP/SPP.ino) example for more information.</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;More information can be found at these blog posts:</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;* &lt;http://www.circuitsathome.com/mcu/bluetooth-rfcommspp-service-support-for-usb-host-2-0-library-released&gt;</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;* &lt;http://blog.tkjelectronics.dk/2012/07/rfcommspp-library-for-arduino/&gt;</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;To implement the SPP protocol I used a Bluetooth sniffing tool called [PacketLogger](http://www.tkjelectronics.com/uploads/PacketLogger.zip) developed by Apple.</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;It enables me to see the Bluetooth communication between my Mac and any device.</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;### PS4 Library</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;The PS4BT library is split up into the [PS4BT](PS4BT.h) and the [PS4USB](PS4USB.h) library. These allow you to use the Sony PS4 controller via Bluetooth and USB.</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;The [PS4BT.ino](examples/Bluetooth/PS4BT/PS4BT.ino) and [PS4USB.ino](examples/PS4USB/PS4USB.ino) examples shows how to easily read the buttons, joysticks, touchpad and IMU on the controller via Bluetooth and USB respectively. It is also possible to control the rumble and light on the controller and get the battery level.</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;Before you can use the PS4 controller via Bluetooth you will need to pair with it.</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;Simply create the PS4BT instance like so: ```PS4BT PS4(&amp;Btd, PAIR);``` and then hold down the Share button and then hold down the PS without releasing the Share button. The PS4 controller will then start to blink rapidly indicating that it is in paring mode.</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;It should then automatically pair the dongle with your controller. This only have to be done once.</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;For information see the following blog post: &lt;http://blog.tkjelectronics.dk/2014/01/ps4-controller-now-supported-by-the-usb-host-library/&gt;.</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;Also check out this excellent Wiki by Frank Zhao about the PS4 controller: &lt;http://eleccelerator.com/wiki/index.php?title=DualShock_4&gt; and this Linux driver: &lt;https://github.com/chrippa/ds4drv&gt;.</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;### PS3 Library</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;These libraries consist of the [PS3BT](PS3BT.cpp) and [PS3USB](PS3USB.cpp). These libraries allows you to use a Dualshock 3, Navigation or a Motion controller with the USB Host Shield both via Bluetooth and USB.</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;In order to use your Playstation controller via Bluetooth you have to set the Bluetooth address of the dongle internally to your PS3 Controller. This can be achieved by first plugging in the Bluetooth dongle and wait a few seconds. Now plug in the controller via USB and wait until the LEDs start to flash. The library has now written the Bluetooth address of the dongle to the PS3 controller.</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;</div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;Finally simply plug in the Bluetooth dongle again and press PS on the PS3 controller. After a few seconds it should be connected to the dongle and ready to use.</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;__Note:__ You will have to plug in the Bluetooth dongle before connecting the controller, as the library needs to read the address of the dongle. Alternatively you could set it in code like so: [PS3BT.ino#L20](examples/Bluetooth/PS3BT/PS3BT.ino#L20).</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;For more information about the PS3 protocol see the official wiki: &lt;https://github.com/felis/USB_Host_Shield_2.0/wiki/PS3-Information&gt;.</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;Also take a look at the blog posts:</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;* &lt;http://blog.tkjelectronics.dk/2012/01/ps3-controller-bt-library-for-arduino/&gt;</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;* &lt;http://www.circuitsathome.com/mcu/sony-ps3-controller-support-added-to-usb-host-library&gt;</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;* &lt;http://www.circuitsathome.com/mcu/arduino/interfacing-ps3-controllers-via-usb&gt;</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;A special thanks go to the following people:</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;1. _Richard Ibbotson_ who made this excellent guide: &lt;http://www.circuitsathome.com/mcu/ps3-and-wiimote-game-controllers-on-the-arduino-host-shield-part&gt;</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;2. _Tomoyuki Tanaka_ for releasing his code for the Arduino USB Host shield connected to the wiimote: &lt;http://www.circuitsathome.com/mcu/rc-car-controlled-by-wii-remote-on-arduino&gt;</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;</div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;Also a big thanks all the people behind these sites about the Motion controller:</div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;* &lt;http://thp.io/2010/psmove/&gt;</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;* &lt;http://www.copenhagengamecollective.org/unimove/&gt;</div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;* &lt;https://github.com/thp/psmoveapi&gt;</div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;* &lt;http://code.google.com/p/moveonpc/&gt;</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;### Xbox Libraries</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;The library supports both the original Xbox controller via USB and the Xbox 360 controller both via USB and wirelessly.</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;#### Xbox library</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;</div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;The [XBOXOLD](XBOXOLD.cpp) class implements support for the original Xbox controller via USB.</div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;All the information are from the following sites:</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;</div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;* &lt;https://github.com/torvalds/linux/blob/master/Documentation/input/xpad.txt&gt;</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;* &lt;https://github.com/torvalds/linux/blob/master/drivers/input/joystick/xpad.c&gt;</div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;* &lt;http://euc.jp/periphs/xbox-controller.ja.html&gt;</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;* &lt;https://github.com/Grumbel/xboxdrv/blob/master/PROTOCOL#L15&gt;</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;#### Xbox 360 Library</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;</div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;The library support one Xbox 360 via USB or up to four Xbox 360 controllers wirelessly by using a [Xbox 360 wireless receiver](http://blog.tkjelectronics.dk/wp-content/uploads/xbox360-wireless-receiver.jpg).</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;To use it via USB use the [XBOXUSB](XBOXUSB.cpp) library or to use it wirelessly use the [XBOXRECV](XBOXRECV.cpp) library.</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;__Note that a Wireless controller can NOT be used via USB!__</div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;Examples code can be found in the [examples directory](examples/Xbox).</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;Also see the following blog posts:</div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;</div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;* &lt;http://www.circuitsathome.com/mcu/xbox360-controller-support-added-to-usb-host-shield-2-0-library&gt;</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;* &lt;http://blog.tkjelectronics.dk/2012/07/xbox-360-controller-support-added-to-the-usb-host-library/&gt;</div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;* &lt;http://blog.tkjelectronics.dk/2012/12/xbox-360-receiver-added-to-the-usb-host-library/&gt;</div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;</div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;All the information regarding the Xbox 360 controller protocol are form these sites:</div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;</div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;* &lt;http://tattiebogle.net/index.php/ProjectRoot/Xbox360Controller/UsbInfo&gt;</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;* &lt;http://tattiebogle.net/index.php/ProjectRoot/Xbox360Controller/WirelessUsbInfo&gt;</div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;* &lt;https://github.com/Grumbel/xboxdrv/blob/master/PROTOCOL&gt;</div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;</div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;#### Xbox ONE Library</div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;</div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;An Xbox ONE controller is supported via USB in the [XBOXONE](XBOXONE.cpp) class. It is heavily based on the 360 library above. In addition to cross referencing the above, information on the protocol was found at:</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;</div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;* &lt;https://github.com/quantus/xbox-one-controller-protocol&gt;</div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;* &lt;https://github.com/torvalds/linux/blob/master/drivers/input/joystick/xpad.c&gt;</div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;* &lt;https://github.com/kylelemons/xbox/blob/master/xbox.go&gt;</div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;</div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;### [Wii library](Wii.cpp)</div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;</div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;The [Wii](Wii.cpp) library support the Wiimote, but also the Nunchuch and Motion Plus extensions via Bluetooth. The Wii U Pro Controller is also supported via Bluetooth.</div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;</div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;First you have to pair with the controller, this is done automatically by the library if you create the instance like so:</div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;```C++</div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;WII Wii(&amp;Btd, PAIR);</div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;```</div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;</div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;And then press 1 &amp; 2 at once on the Wiimote or press sync if you are using a Wii U Pro Controller.</div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;</div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;After that you can simply create the instance like so:</div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;</div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;```C++</div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;WII Wii(&amp;Btd);</div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;```</div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;</div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;Then just press any button on the Wiimote and it will then connect to the dongle.</div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;</div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;Take a look at the example for more information: [Wii.ino](examples/Bluetooth/Wii/Wii.ino).</div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;</div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;Also take a look at the blog post:</div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;</div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;* &lt;http://blog.tkjelectronics.dk/2012/08/wiimote-added-to-usb-host-library/&gt;</div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;</div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;The Wii IR camera can also be used, but you will have to activate the code for it manually as it is quite large. Simply set ```ENABLE_WII_IR_CAMERA``` to 1 in [settings.h](settings.h).</div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;</div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;The [WiiIRCamera.ino](examples/Bluetooth/WiiIRCamera/WiiIRCamera.ino) example shows how it can be used.</div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;</div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;</div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;All the information about the Wii controllers are from these sites:</div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;</div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;* &lt;http://wiibrew.org/wiki/Wiimote&gt;</div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;* &lt;http://wiibrew.org/wiki/Wiimote/Extension_Controllers&gt;</div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;* &lt;http://wiibrew.org/wiki/Wiimote/Extension_Controllers/Nunchuck&gt;</div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;* &lt;http://wiibrew.org/wiki/Wiimote/Extension_Controllers/Wii_Motion_Plus&gt;</div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;* The old library created by _Tomoyuki Tanaka_: &lt;https://github.com/moyuchin/WiiRemote_on_Arduino&gt; also helped a lot.</div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;</div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;### [PS Buzz Library](PSBuzz.cpp)</div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;</div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;This library implements support for the Playstation Buzz controllers via USB.</div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;</div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;It is essentially just a wrapper around the [HIDUniversal](hiduniversal.cpp) which takes care of the initializing and reading of the controllers. The [PSBuzz](PSBuzz.cpp) class simply inherits this and parses the data, so it is easy for users to read the buttons and turn the big red button on the controllers on and off.</div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;</div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;The example [PSBuzz.ino](examples/PSBuzz/PSBuzz.ino) shows how one can do this with just a few lines of code.</div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;</div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;More information about the controller can be found at the following sites:</div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;</div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;* http://www.developerfusion.com/article/84338/making-usb-c-friendly/</div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;* https://github.com/torvalds/linux/blob/master/drivers/hid/hid-sony.c</div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;</div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;# Interface modifications</div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;</div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;The shield is using SPI for communicating with the MAX3421E USB host controller. It uses the SCK, MISO and MOSI pins via the ICSP on your board.</div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;</div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;Note this means that it uses pin 13, 12, 11 on an Arduino Uno, so these pins can not be used for anything else than SPI communication!</div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;</div>
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;Furthermore it uses one pin as SS and one INT pin. These are by default located on pin 10 and 9 respectively. They can easily be reconfigured in case you need to use them for something else by cutting the jumper on the shield and then solder a wire from the pad to the new pin.</div>
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;</div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;After that you need modify the following entry in [UsbCore.h](UsbCore.h):</div>
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;</div>
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;```C++</div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;typedef MAX3421e&lt;P10, P9&gt; MAX3421E;</div>
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;```</div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;</div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;For instance if you have rerouted SS to pin 7 it should read:</div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;</div>
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;```C++</div>
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;typedef MAX3421e&lt;P7, P9&gt; MAX3421E;</div>
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;```</div>
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;</div>
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;See the &quot;Interface modifications&quot; section in the [hardware manual](https://www.circuitsathome.com/usb-host-shield-hardware-manual) for more information.</div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;</div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;# FAQ</div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;</div>
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;&gt; When I plug my device into the USB connector nothing happens?</div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;</div>
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;* Try to connect a external power supply to the Arduino - this solves the problem in most cases.</div>
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;* You can also use a powered hub between the device and the USB Host Shield. You should then include the USB hub library: ```#include &lt;usbhub.h&gt;``` and create the instance like so: ```USBHub Hub1(&amp;Usb);```.</div>
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;</div>
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;&gt; When I connecting my PS3 controller I get a output like this:</div>
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;</div>
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;```</div>
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;Dualshock 3 Controller Enabled</div>
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;</div>
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;LeftHatX: 0 LeftHatY: 0 RightHatX: 0 RightHatY: 0</div>
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;LeftHatX: 0 LeftHatY: 0 RightHatX: 0 RightHatY: 0</div>
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;LeftHatX: 0 LeftHatY: 0 RightHatX: 0 RightHatY: 0</div>
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;LeftHatX: 0 LeftHatY: 0 RightHatX: 0 RightHatY: 0</div>
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;LeftHatX: 0 LeftHatY: 0 RightHatX: 0 RightHatY: 0</div>
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;```</div>
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;</div>
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;* This means that your dongle does not support 2.0+EDR, so you will need another dongle. Please see the following [list](https://github.com/felis/USB_Host_Shield_2.0/wiki/Bluetooth-dongles) for tested working dongles.</div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.7
</a> 1.8.9.1
</small></address>
</body>
</html>

View file

@ -3,15 +3,16 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<meta name="generator" content="Doxygen 1.8.9.1"/>
<title>USB Host Shield 2.0: SPP.cpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="imageStyle.css" rel="stylesheet" type="text/css"/>
@ -31,7 +32,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.7 -->
<!-- Generated by Doxygen 1.8.9.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -70,7 +71,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
@ -97,7 +98,7 @@ Include dependency graph for SPP.cpp:</div>
<div class="dyncontent">
<div class="center"><img src="_s_p_p_8cpp__incl.png" border="0" usemap="#_s_p_p_8cpp" alt=""/></div>
<map name="_s_p_p_8cpp" id="_s_p_p_8cpp">
<area shape="rect" id="node2" href="_s_p_p_8h.html" title="SPP.h" alt="" coords="12,79,70,104"/><area shape="rect" id="node3" href="_b_t_d_8h.html" title="BTD.h" alt="" coords="12,152,71,177"/><area shape="rect" id="node4" href="_usb_8h.html" title="Usb.h" alt="" coords="13,225,69,251"/></map>
<area shape="rect" id="node2" href="_s_p_p_8h.html" title="SPP.h" alt="" coords="12,79,70,104"/><area shape="rect" id="node3" href="_b_t_d_8h.html" title="BTD.h" alt="" coords="12,152,71,177"/><area shape="rect" id="node4" href="_usb_8h.html" title="Usb.h" alt="" coords="33,372,89,397"/><area shape="rect" id="node5" href="hid_8h.html" title="hid.h" alt="" coords="48,225,98,251"/><area shape="rect" id="node6" href="hidusagestr_8h.html" title="hidusagestr.h" alt="" coords="99,299,199,324"/></map>
</div>
</div>
<p><a href="_s_p_p_8cpp_source.html">Go to the source code of this file.</a></p>
@ -145,7 +146,7 @@ Variables</h2></td></tr>
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.7
</a> 1.8.9.1
</small></address>
</body>
</html>

View file

@ -1,5 +1,7 @@
<map id="SPP.cpp" name="SPP.cpp">
<area shape="rect" id="node2" href="$_s_p_p_8h.html" title="SPP.h" alt="" coords="12,79,70,104"/>
<area shape="rect" id="node3" href="$_b_t_d_8h.html" title="BTD.h" alt="" coords="12,152,71,177"/>
<area shape="rect" id="node4" href="$_usb_8h.html" title="Usb.h" alt="" coords="13,225,69,251"/>
<area shape="rect" id="node4" href="$_usb_8h.html" title="Usb.h" alt="" coords="33,372,89,397"/>
<area shape="rect" id="node5" href="$hid_8h.html" title="hid.h" alt="" coords="48,225,98,251"/>
<area shape="rect" id="node6" href="$hidusagestr_8h.html" title="hidusagestr.h" alt="" coords="99,299,199,324"/>
</map>

View file

@ -1 +1 @@
7fcbcf3b461f8f3c5d0972f005f8a4e5
449619037175ca779e6e0127bdc68f55

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 KiB

After

Width:  |  Height:  |  Size: 15 KiB

File diff suppressed because it is too large Load diff

View file

@ -3,15 +3,16 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<meta name="generator" content="Doxygen 1.8.9.1"/>
<title>USB Host Shield 2.0: SPP.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="imageStyle.css" rel="stylesheet" type="text/css"/>
@ -31,7 +32,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.7 -->
<!-- Generated by Doxygen 1.8.9.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -70,7 +71,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
@ -98,7 +99,7 @@ Include dependency graph for SPP.h:</div>
<div class="dyncontent">
<div class="center"><img src="_s_p_p_8h__incl.png" border="0" usemap="#_s_p_p_8h" alt=""/></div>
<map name="_s_p_p_8h" id="_s_p_p_8h">
<area shape="rect" id="node2" href="_b_t_d_8h.html" title="BTD.h" alt="" coords="5,79,64,104"/><area shape="rect" id="node3" href="_usb_8h.html" title="Usb.h" alt="" coords="7,152,63,177"/></map>
<area shape="rect" id="node2" href="_b_t_d_8h.html" title="BTD.h" alt="" coords="5,79,64,104"/><area shape="rect" id="node3" href="_usb_8h.html" title="Usb.h" alt="" coords="27,299,83,324"/><area shape="rect" id="node4" href="hid_8h.html" title="hid.h" alt="" coords="42,152,92,177"/><area shape="rect" id="node5" href="hidusagestr_8h.html" title="hidusagestr.h" alt="" coords="93,225,193,251"/></map>
</div>
</div><div class="textblock"><div class="dynheader">
This graph shows which files directly or indirectly include this file:</div>
@ -364,7 +365,7 @@ Macros</h2></td></tr>
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.7
</a> 1.8.9.1
</small></address>
</body>
</html>

View file

@ -1 +1 @@
1f51bc8d7e57994b0706c73aa078945c
8fa503e9bcede23521cf22418b0e794e

View file

@ -1,4 +1,6 @@
<map id="SPP.h" name="SPP.h">
<area shape="rect" id="node2" href="$_b_t_d_8h.html" title="BTD.h" alt="" coords="5,79,64,104"/>
<area shape="rect" id="node3" href="$_usb_8h.html" title="Usb.h" alt="" coords="7,152,63,177"/>
<area shape="rect" id="node3" href="$_usb_8h.html" title="Usb.h" alt="" coords="27,299,83,324"/>
<area shape="rect" id="node4" href="$hid_8h.html" title="hid.h" alt="" coords="42,152,92,177"/>
<area shape="rect" id="node5" href="$hidusagestr_8h.html" title="hidusagestr.h" alt="" coords="93,225,193,251"/>
</map>

View file

@ -1 +1 @@
7a2283c4aaf9966c1076db5bf1388f90
8b33a921295a8bf80a577af260fae137

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 13 KiB

View file

@ -3,15 +3,16 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<meta name="generator" content="Doxygen 1.8.9.1"/>
<title>USB Host Shield 2.0: SPP.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="imageStyle.css" rel="stylesheet" type="text/css"/>
@ -31,7 +32,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.7 -->
<!-- Generated by Doxygen 1.8.9.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -70,7 +71,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
@ -149,126 +150,122 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <a class="code" href="class_s_p_p.html#a6842e2b7f66024eecc151e3bdbfc7e94">SPP</a>(<a class="code" href="class_b_t_d.html">BTD</a> *p, <span class="keyword">const</span> <span class="keywordtype">char</span> *name = <span class="stringliteral">&quot;Arduino&quot;</span>, <span class="keyword">const</span> <span class="keywordtype">char</span> *pin = <span class="stringliteral">&quot;0000&quot;</span>);</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div>
<div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="class_s_p_p.html#ac90f0765c478bd624cee3b8d493d8432"> 75</a></span>&#160; <span class="keyword">operator</span> bool() {</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_s_p_p.html#ade5d4f0ab50ddcad14f75fce4450a028">connected</a>;</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; }</div>
<div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="class_s_p_p.html#ade5d4f0ab50ddcad14f75fce4450a028"> 79</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_s_p_p.html#ade5d4f0ab50ddcad14f75fce4450a028">connected</a>;</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_s_p_p.html#abdfe9453fb82781bec53a191c2e9fb1d">ACLData</a>(uint8_t* <a class="code" href="class_s_p_p.html#abdfe9453fb82781bec53a191c2e9fb1d">ACLData</a>);</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_s_p_p.html#a2de67ee7ad1be9d2f3daf7dc08dc5f90">Run</a>();</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_s_p_p.html#ae2c661bd46cd2d74bd29c4c771cd2ef0">Reset</a>();</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_s_p_p.html#a2b4b1f85f553c6a2fdd523e50c75c7b0">disconnect</a>();</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="class_s_p_p.html#a731eb43856854b6a406e9cfa3f9e57a4">available</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div>
<div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="class_s_p_p.html#a81c4ed9671652c96df96444a61f64194"> 103</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_s_p_p.html#a81c4ed9671652c96df96444a61f64194">flush</a>(<span class="keywordtype">void</span>) {</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <a class="code" href="class_s_p_p.html#ab6c20e303965056403ae5aef1d228858">send</a>();</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; };</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="class_s_p_p.html#a3149d75ba4646ba5b5428c465e983144">peek</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="class_s_p_p.html#aae8dc037e845480f582afea57b858b95">read</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="preprocessor">#if defined(ARDUINO) &amp;&amp; ARDUINO &gt;=100</span></div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code" href="class_s_p_p.html#a6fb231316ca9b1028322d2d2188b27b0">write</a>(uint8_t data);</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code" href="class_s_p_p.html#a6fb231316ca9b1028322d2d2188b27b0">write</a>(<span class="keyword">const</span> uint8_t* data, <span class="keywordtype">size_t</span> size);</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keyword">using</span> Print::write;</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_s_p_p.html#a6fb231316ca9b1028322d2d2188b27b0">write</a>(uint8_t data);</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_s_p_p.html#a6fb231316ca9b1028322d2d2188b27b0">write</a>(<span class="keyword">const</span> uint8_t* data, <span class="keywordtype">size_t</span> size);</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_s_p_p.html#a4ca8c34757efb43a449cf8b3c7672e23">discard</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_s_p_p.html#ab6c20e303965056403ae5aef1d228858">send</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="comment">/* Bluetooth dongle library pointer */</span></div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <a class="code" href="class_b_t_d.html">BTD</a> *pBtd;</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="comment">/* Set true when a channel is created */</span></div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordtype">bool</span> SDPConnected;</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordtype">bool</span> RFCOMMConnected;</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; uint16_t hci_handle; <span class="comment">// The HCI Handle for the connection</span></div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="comment">/* Variables used by L2CAP state machines */</span></div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; uint8_t l2cap_sdp_state;</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; uint8_t l2cap_rfcomm_state;</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; uint32_t l2cap_event_flag; <span class="comment">// l2cap flags of received Bluetooth events</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_s_p_p.html#a2b4b1f85f553c6a2fdd523e50c75c7b0">disconnect</a>();</div>
<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="class_s_p_p.html#ac90f0765c478bd624cee3b8d493d8432"> 80</a></span>&#160; <span class="keyword">operator</span> bool() {</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_s_p_p.html#ade5d4f0ab50ddcad14f75fce4450a028">connected</a>;</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; }</div>
<div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="class_s_p_p.html#ade5d4f0ab50ddcad14f75fce4450a028"> 84</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_s_p_p.html#ade5d4f0ab50ddcad14f75fce4450a028">connected</a>;</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordtype">int</span> <a class="code" href="class_s_p_p.html#a731eb43856854b6a406e9cfa3f9e57a4">available</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div>
<div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="class_s_p_p.html#a235d75f40a32a5905fd8fedcc37aa350"> 94</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_s_p_p.html#a235d75f40a32a5905fd8fedcc37aa350">flush</a>(<span class="keywordtype">void</span>) {</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <a class="code" href="class_s_p_p.html#ab6c20e303965056403ae5aef1d228858">send</a>();</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; };</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordtype">int</span> <a class="code" href="class_s_p_p.html#a3149d75ba4646ba5b5428c465e983144">peek</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordtype">int</span> <a class="code" href="class_s_p_p.html#aae8dc037e845480f582afea57b858b95">read</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="preprocessor">#if defined(ARDUINO) &amp;&amp; ARDUINO &gt;=100</span></div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="class_s_p_p.html#a6fb231316ca9b1028322d2d2188b27b0">write</a>(uint8_t data);</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="class_s_p_p.html#a6fb231316ca9b1028322d2d2188b27b0">write</a>(<span class="keyword">const</span> uint8_t* data, <span class="keywordtype">size_t</span> size);</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keyword">using</span> Print::write;</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_s_p_p.html#a6fb231316ca9b1028322d2d2188b27b0">write</a>(uint8_t data);</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_s_p_p.html#a6fb231316ca9b1028322d2d2188b27b0">write</a>(<span class="keyword">const</span> uint8_t* data, <span class="keywordtype">size_t</span> size);</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_s_p_p.html#a4ca8c34757efb43a449cf8b3c7672e23">discard</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_s_p_p.html#ab6c20e303965056403ae5aef1d228858">send</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;<span class="keyword">protected</span>:</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_s_p_p.html#abdfe9453fb82781bec53a191c2e9fb1d">ACLData</a>(uint8_t* <a class="code" href="class_s_p_p.html#abdfe9453fb82781bec53a191c2e9fb1d">ACLData</a>);</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_s_p_p.html#a2de67ee7ad1be9d2f3daf7dc08dc5f90">Run</a>();</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_s_p_p.html#ae2c661bd46cd2d74bd29c4c771cd2ef0">Reset</a>();</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_s_p_p.html#af8355e2e1423e4986536e65c375bcb1e">onInit</a>();</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="comment">/* Set true when a channel is created */</span></div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordtype">bool</span> SDPConnected;</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keywordtype">bool</span> RFCOMMConnected;</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; uint8_t l2capoutbuf[<a class="code" href="_b_t_d_8h.html#a32d591ef5742a99963130616ef146787">BULK_MAXPKTSIZE</a>]; <span class="comment">// General purpose buffer for l2cap out data</span></div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; uint8_t rfcommbuf[10]; <span class="comment">// Buffer for RFCOMM Commands</span></div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="comment">/* L2CAP Channels */</span></div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; uint8_t sdp_scid[2]; <span class="comment">// L2CAP source CID for SDP</span></div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; uint8_t sdp_dcid[2]; <span class="comment">// 0x0050</span></div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; uint8_t rfcomm_scid[2]; <span class="comment">// L2CAP source CID for RFCOMM</span></div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; uint8_t rfcomm_dcid[2]; <span class="comment">// 0x0051</span></div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; uint8_t identifier; <span class="comment">// Identifier for command</span></div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="comment">/* RFCOMM Variables */</span></div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; uint8_t rfcommChannel;</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; uint8_t rfcommChannelConnection; <span class="comment">// This is the channel the SPP channel will be running at</span></div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; uint8_t rfcommDirection;</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; uint8_t rfcommCommandResponse;</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; uint8_t rfcommChannelType;</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; uint8_t rfcommPfBit;</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> timer;</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordtype">bool</span> waitForLastCommand;</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordtype">bool</span> creditSent;</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;</div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; uint8_t rfcommDataBuffer[100]; <span class="comment">// Create a 100 sized buffer for incoming data</span></div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; uint8_t sppOutputBuffer[100]; <span class="comment">// Create a 100 sized buffer for outgoing SPP data</span></div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; uint8_t sppIndex;</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; uint8_t rfcommAvailable;</div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;</div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordtype">bool</span> firstMessage; <span class="comment">// Used to see if it&#39;s the first SDP request received</span></div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; uint8_t bytesRead; <span class="comment">// Counter to see when it&#39;s time to send more credit</span></div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="comment">/* Variables used by L2CAP state machines */</span></div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; uint8_t l2cap_sdp_state;</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; uint8_t l2cap_rfcomm_state;</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; uint8_t l2capoutbuf[<a class="code" href="_b_t_d_8h.html#a32d591ef5742a99963130616ef146787">BULK_MAXPKTSIZE</a>]; <span class="comment">// General purpose buffer for l2cap out data</span></div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; uint8_t rfcommbuf[10]; <span class="comment">// Buffer for RFCOMM Commands</span></div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="comment">/* L2CAP Channels */</span></div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; uint8_t sdp_scid[2]; <span class="comment">// L2CAP source CID for SDP</span></div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; uint8_t sdp_dcid[2]; <span class="comment">// 0x0050</span></div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; uint8_t rfcomm_scid[2]; <span class="comment">// L2CAP source CID for RFCOMM</span></div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; uint8_t rfcomm_dcid[2]; <span class="comment">// 0x0051</span></div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="comment">/* RFCOMM Variables */</span></div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; uint8_t rfcommChannel;</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; uint8_t rfcommChannelConnection; <span class="comment">// This is the channel the SPP channel will be running at</span></div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; uint8_t rfcommDirection;</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; uint8_t rfcommCommandResponse;</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; uint8_t rfcommChannelType;</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; uint8_t rfcommPfBit;</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; uint32_t timer;</div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keywordtype">bool</span> waitForLastCommand;</div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordtype">bool</span> creditSent;</div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; uint8_t rfcommDataBuffer[100]; <span class="comment">// Create a 100 sized buffer for incoming data</span></div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; uint8_t sppOutputBuffer[100]; <span class="comment">// Create a 100 sized buffer for outgoing SPP data</span></div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; uint8_t sppIndex;</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; uint8_t rfcommAvailable;</div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="comment">/* State machines */</span></div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordtype">void</span> SDP_task(); <span class="comment">// SDP state machine</span></div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordtype">void</span> RFCOMM_task(); <span class="comment">// RFCOMM state machine</span></div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="comment">/* SDP Commands */</span></div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordtype">void</span> SDP_Command(uint8_t *data, uint8_t nbytes);</div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordtype">void</span> serviceNotSupported(uint8_t transactionIDHigh, uint8_t transactionIDLow);</div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordtype">void</span> serialPortResponse1(uint8_t transactionIDHigh, uint8_t transactionIDLow);</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keywordtype">void</span> serialPortResponse2(uint8_t transactionIDHigh, uint8_t transactionIDLow);</div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordtype">void</span> l2capResponse1(uint8_t transactionIDHigh, uint8_t transactionIDLow);</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordtype">void</span> l2capResponse2(uint8_t transactionIDHigh, uint8_t transactionIDLow);</div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="comment">/* RFCOMM Commands */</span></div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordtype">void</span> RFCOMM_Command(uint8_t *data, uint8_t nbytes);</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordtype">void</span> sendRfcomm(uint8_t channel, uint8_t direction, uint8_t CR, uint8_t channelType, uint8_t pfBit, uint8_t *data, uint8_t length);</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordtype">void</span> sendRfcommCredit(uint8_t channel, uint8_t direction, uint8_t CR, uint8_t channelType, uint8_t pfBit, uint8_t credit);</div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; uint8_t calcFcs(uint8_t *data);</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordtype">bool</span> checkFcs(uint8_t *data, uint8_t fcs);</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; uint8_t crc(uint8_t *data);</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;};</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="ttc" id="class_s_p_p_html_a6fb231316ca9b1028322d2d2188b27b0"><div class="ttname"><a href="class_s_p_p.html#a6fb231316ca9b1028322d2d2188b27b0">SPP::write</a></div><div class="ttdeci">virtual size_t write(uint8_t data)</div><div class="ttdef"><b>Definition:</b> <a href="_s_p_p_8cpp_source.html#l00728">SPP.cpp:728</a></div></div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordtype">bool</span> firstMessage; <span class="comment">// Used to see if it&#39;s the first SDP request received</span></div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; uint8_t bytesRead; <span class="comment">// Counter to see when it&#39;s time to send more credit</span></div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="comment">/* State machines */</span></div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordtype">void</span> SDP_task(); <span class="comment">// SDP state machine</span></div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordtype">void</span> RFCOMM_task(); <span class="comment">// RFCOMM state machine</span></div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="comment">/* SDP Commands */</span></div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keywordtype">void</span> SDP_Command(uint8_t *data, uint8_t nbytes);</div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordtype">void</span> serviceNotSupported(uint8_t transactionIDHigh, uint8_t transactionIDLow);</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordtype">void</span> serialPortResponse1(uint8_t transactionIDHigh, uint8_t transactionIDLow);</div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordtype">void</span> serialPortResponse2(uint8_t transactionIDHigh, uint8_t transactionIDLow);</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordtype">void</span> l2capResponse1(uint8_t transactionIDHigh, uint8_t transactionIDLow);</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordtype">void</span> l2capResponse2(uint8_t transactionIDHigh, uint8_t transactionIDLow);</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="comment">/* RFCOMM Commands */</span></div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keywordtype">void</span> RFCOMM_Command(uint8_t *data, uint8_t nbytes);</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordtype">void</span> sendRfcomm(uint8_t channel, uint8_t direction, uint8_t CR, uint8_t channelType, uint8_t pfBit, uint8_t *data, uint8_t length);</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordtype">void</span> sendRfcommCredit(uint8_t channel, uint8_t direction, uint8_t CR, uint8_t channelType, uint8_t pfBit, uint8_t credit);</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; uint8_t calcFcs(uint8_t *data);</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordtype">bool</span> checkFcs(uint8_t *data, uint8_t fcs);</div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; uint8_t crc(uint8_t *data);</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;};</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="ttc" id="class_s_p_p_html_a6fb231316ca9b1028322d2d2188b27b0"><div class="ttname"><a href="class_s_p_p.html#a6fb231316ca9b1028322d2d2188b27b0">SPP::write</a></div><div class="ttdeci">size_t write(uint8_t data)</div><div class="ttdef"><b>Definition:</b> <a href="_s_p_p_8cpp_source.html#l00742">SPP.cpp:742</a></div></div>
<div class="ttc" id="class_s_p_p_html_af8355e2e1423e4986536e65c375bcb1e"><div class="ttname"><a href="class_s_p_p.html#af8355e2e1423e4986536e65c375bcb1e">SPP::onInit</a></div><div class="ttdeci">void onInit()</div><div class="ttdef"><b>Definition:</b> <a href="_s_p_p_8cpp_source.html#l00433">SPP.cpp:433</a></div></div>
<div class="ttc" id="class_s_p_p_html_a6842e2b7f66024eecc151e3bdbfc7e94"><div class="ttname"><a href="class_s_p_p.html#a6842e2b7f66024eecc151e3bdbfc7e94">SPP::SPP</a></div><div class="ttdeci">SPP(BTD *p, const char *name=&quot;Arduino&quot;, const char *pin=&quot;0000&quot;)</div><div class="ttdef"><b>Definition:</b> <a href="_s_p_p_8cpp_source.html#l00045">SPP.cpp:45</a></div></div>
<div class="ttc" id="class_b_t_d_html"><div class="ttname"><a href="class_b_t_d.html">BTD</a></div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00230">BTD.h:230</a></div></div>
<div class="ttc" id="class_s_p_p_html_ade5d4f0ab50ddcad14f75fce4450a028"><div class="ttname"><a href="class_s_p_p.html#ade5d4f0ab50ddcad14f75fce4450a028">SPP::connected</a></div><div class="ttdeci">bool connected</div><div class="ttdef"><b>Definition:</b> <a href="_s_p_p_8h_source.html#l00079">SPP.h:79</a></div></div>
<div class="ttc" id="class_s_p_p_html_aae8dc037e845480f582afea57b858b95"><div class="ttname"><a href="class_s_p_p.html#aae8dc037e845480f582afea57b858b95">SPP::read</a></div><div class="ttdeci">virtual int read(void)</div><div class="ttdef"><b>Definition:</b> <a href="_s_p_p_8cpp_source.html#l00797">SPP.cpp:797</a></div></div>
<div class="ttc" id="class_s_p_p_html_a2de67ee7ad1be9d2f3daf7dc08dc5f90"><div class="ttname"><a href="class_s_p_p.html#a2de67ee7ad1be9d2f3daf7dc08dc5f90">SPP::Run</a></div><div class="ttdeci">virtual void Run()</div><div class="ttdef"><b>Definition:</b> <a href="_s_p_p_8cpp_source.html#l00428">SPP.cpp:428</a></div></div>
<div class="ttc" id="class_bluetooth_service_html"><div class="ttname"><a href="class_bluetooth_service.html">BluetoothService</a></div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00211">BTD.h:211</a></div></div>
<div class="ttc" id="class_s_p_p_html_ae2c661bd46cd2d74bd29c4c771cd2ef0"><div class="ttname"><a href="class_s_p_p.html#ae2c661bd46cd2d74bd29c4c771cd2ef0">SPP::Reset</a></div><div class="ttdeci">virtual void Reset()</div><div class="ttdef"><b>Definition:</b> <a href="_s_p_p_8cpp_source.html#l00063">SPP.cpp:63</a></div></div>
<div class="ttc" id="class_s_p_p_html_a81c4ed9671652c96df96444a61f64194"><div class="ttname"><a href="class_s_p_p.html#a81c4ed9671652c96df96444a61f64194">SPP::flush</a></div><div class="ttdeci">virtual void flush(void)</div><div class="ttdef"><b>Definition:</b> <a href="_s_p_p_8h_source.html#l00103">SPP.h:103</a></div></div>
<div class="ttc" id="class_s_p_p_html_a731eb43856854b6a406e9cfa3f9e57a4"><div class="ttname"><a href="class_s_p_p.html#a731eb43856854b6a406e9cfa3f9e57a4">SPP::available</a></div><div class="ttdeci">virtual int available(void)</div><div class="ttdef"><b>Definition:</b> <a href="_s_p_p_8cpp_source.html#l00783">SPP.cpp:783</a></div></div>
<div class="ttc" id="class_s_p_p_html_a4ca8c34757efb43a449cf8b3c7672e23"><div class="ttname"><a href="class_s_p_p.html#a4ca8c34757efb43a449cf8b3c7672e23">SPP::discard</a></div><div class="ttdeci">void discard(void)</div><div class="ttdef"><b>Definition:</b> <a href="_s_p_p_8cpp_source.html#l00787">SPP.cpp:787</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a32d591ef5742a99963130616ef146787"><div class="ttname"><a href="_b_t_d_8h.html#a32d591ef5742a99963130616ef146787">BULK_MAXPKTSIZE</a></div><div class="ttdeci">#define BULK_MAXPKTSIZE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00033">BTD.h:33</a></div></div>
<div class="ttc" id="class_s_p_p_html_a2b4b1f85f553c6a2fdd523e50c75c7b0"><div class="ttname"><a href="class_s_p_p.html#a2b4b1f85f553c6a2fdd523e50c75c7b0">SPP::disconnect</a></div><div class="ttdeci">virtual void disconnect()</div><div class="ttdef"><b>Definition:</b> <a href="_s_p_p_8cpp_source.html#l00074">SPP.cpp:74</a></div></div>
<div class="ttc" id="class_b_t_d_html"><div class="ttname"><a href="class_b_t_d.html">BTD</a></div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00198">BTD.h:198</a></div></div>
<div class="ttc" id="class_s_p_p_html_a235d75f40a32a5905fd8fedcc37aa350"><div class="ttname"><a href="class_s_p_p.html#a235d75f40a32a5905fd8fedcc37aa350">SPP::flush</a></div><div class="ttdeci">void flush(void)</div><div class="ttdef"><b>Definition:</b> <a href="_s_p_p_8h_source.html#l00094">SPP.h:94</a></div></div>
<div class="ttc" id="class_s_p_p_html_ade5d4f0ab50ddcad14f75fce4450a028"><div class="ttname"><a href="class_s_p_p.html#ade5d4f0ab50ddcad14f75fce4450a028">SPP::connected</a></div><div class="ttdeci">bool connected</div><div class="ttdef"><b>Definition:</b> <a href="_s_p_p_8h_source.html#l00084">SPP.h:84</a></div></div>
<div class="ttc" id="class_s_p_p_html_aae8dc037e845480f582afea57b858b95"><div class="ttname"><a href="class_s_p_p.html#aae8dc037e845480f582afea57b858b95">SPP::read</a></div><div class="ttdeci">int read(void)</div><div class="ttdef"><b>Definition:</b> <a href="_s_p_p_8cpp_source.html#l00811">SPP.cpp:811</a></div></div>
<div class="ttc" id="class_s_p_p_html_a2de67ee7ad1be9d2f3daf7dc08dc5f90"><div class="ttname"><a href="class_s_p_p.html#a2de67ee7ad1be9d2f3daf7dc08dc5f90">SPP::Run</a></div><div class="ttdeci">void Run()</div><div class="ttdef"><b>Definition:</b> <a href="_s_p_p_8cpp_source.html#l00423">SPP.cpp:423</a></div></div>
<div class="ttc" id="class_bluetooth_service_html"><div class="ttname"><a href="class_bluetooth_service.html">BluetoothService</a></div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00563">BTD.h:563</a></div></div>
<div class="ttc" id="class_s_p_p_html_ae2c661bd46cd2d74bd29c4c771cd2ef0"><div class="ttname"><a href="class_s_p_p.html#ae2c661bd46cd2d74bd29c4c771cd2ef0">SPP::Reset</a></div><div class="ttdeci">void Reset()</div><div class="ttdef"><b>Definition:</b> <a href="_s_p_p_8cpp_source.html#l00060">SPP.cpp:60</a></div></div>
<div class="ttc" id="class_s_p_p_html_a731eb43856854b6a406e9cfa3f9e57a4"><div class="ttname"><a href="class_s_p_p.html#a731eb43856854b6a406e9cfa3f9e57a4">SPP::available</a></div><div class="ttdeci">int available(void)</div><div class="ttdef"><b>Definition:</b> <a href="_s_p_p_8cpp_source.html#l00797">SPP.cpp:797</a></div></div>
<div class="ttc" id="class_s_p_p_html_a4ca8c34757efb43a449cf8b3c7672e23"><div class="ttname"><a href="class_s_p_p.html#a4ca8c34757efb43a449cf8b3c7672e23">SPP::discard</a></div><div class="ttdeci">void discard(void)</div><div class="ttdef"><b>Definition:</b> <a href="_s_p_p_8cpp_source.html#l00801">SPP.cpp:801</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a32d591ef5742a99963130616ef146787"><div class="ttname"><a href="_b_t_d_8h.html#a32d591ef5742a99963130616ef146787">BULK_MAXPKTSIZE</a></div><div class="ttdeci">#define BULK_MAXPKTSIZE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00034">BTD.h:34</a></div></div>
<div class="ttc" id="class_s_p_p_html_a2b4b1f85f553c6a2fdd523e50c75c7b0"><div class="ttname"><a href="class_s_p_p.html#a2b4b1f85f553c6a2fdd523e50c75c7b0">SPP::disconnect</a></div><div class="ttdeci">void disconnect()</div><div class="ttdef"><b>Definition:</b> <a href="_s_p_p_8cpp_source.html#l00072">SPP.cpp:72</a></div></div>
<div class="ttc" id="class_s_p_p_html"><div class="ttname"><a href="class_s_p_p.html">SPP</a></div><div class="ttdef"><b>Definition:</b> <a href="_s_p_p_8h_source.html#l00061">SPP.h:61</a></div></div>
<div class="ttc" id="class_s_p_p_html_ab6c20e303965056403ae5aef1d228858"><div class="ttname"><a href="class_s_p_p.html#ab6c20e303965056403ae5aef1d228858">SPP::send</a></div><div class="ttdeci">void send(void)</div><div class="ttdef"><b>Definition:</b> <a href="_s_p_p_8cpp_source.html#l00755">SPP.cpp:755</a></div></div>
<div class="ttc" id="class_s_p_p_html_ab6c20e303965056403ae5aef1d228858"><div class="ttname"><a href="class_s_p_p.html#ab6c20e303965056403ae5aef1d228858">SPP::send</a></div><div class="ttdeci">void send(void)</div><div class="ttdef"><b>Definition:</b> <a href="_s_p_p_8cpp_source.html#l00769">SPP.cpp:769</a></div></div>
<div class="ttc" id="_b_t_d_8h_html"><div class="ttname"><a href="_b_t_d_8h.html">BTD.h</a></div></div>
<div class="ttc" id="class_s_p_p_html_abdfe9453fb82781bec53a191c2e9fb1d"><div class="ttname"><a href="class_s_p_p.html#abdfe9453fb82781bec53a191c2e9fb1d">SPP::ACLData</a></div><div class="ttdeci">virtual void ACLData(uint8_t *ACLData)</div><div class="ttdef"><b>Definition:</b> <a href="_s_p_p_8cpp_source.html#l00086">SPP.cpp:86</a></div></div>
<div class="ttc" id="class_s_p_p_html_a3149d75ba4646ba5b5428c465e983144"><div class="ttname"><a href="class_s_p_p.html#a3149d75ba4646ba5b5428c465e983144">SPP::peek</a></div><div class="ttdeci">virtual int peek(void)</div><div class="ttdef"><b>Definition:</b> <a href="_s_p_p_8cpp_source.html#l00791">SPP.cpp:791</a></div></div>
<div class="ttc" id="class_s_p_p_html_abdfe9453fb82781bec53a191c2e9fb1d"><div class="ttname"><a href="class_s_p_p.html#abdfe9453fb82781bec53a191c2e9fb1d">SPP::ACLData</a></div><div class="ttdeci">void ACLData(uint8_t *ACLData)</div><div class="ttdef"><b>Definition:</b> <a href="_s_p_p_8cpp_source.html#l00084">SPP.cpp:84</a></div></div>
<div class="ttc" id="class_s_p_p_html_a3149d75ba4646ba5b5428c465e983144"><div class="ttname"><a href="class_s_p_p.html#a3149d75ba4646ba5b5428c465e983144">SPP::peek</a></div><div class="ttdeci">int peek(void)</div><div class="ttdef"><b>Definition:</b> <a href="_s_p_p_8cpp_source.html#l00805">SPP.cpp:805</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.7
</a> 1.8.9.1
</small></address>
</body>
</html>

View file

@ -3,15 +3,16 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<meta name="generator" content="Doxygen 1.8.9.1"/>
<title>USB Host Shield 2.0: Usb.cpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="imageStyle.css" rel="stylesheet" type="text/css"/>
@ -31,7 +32,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.7 -->
<!-- Generated by Doxygen 1.8.9.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -70,7 +71,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
@ -104,7 +105,7 @@ Include dependency graph for Usb.cpp:</div>
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.7
</a> 1.8.9.1
</small></address>
</body>
</html>

View file

@ -1 +1 @@
86d6ea84d3f0ddc03b2836246a892476
983a9d4c5eeb9a3736dcb2d9192937eb

View file

@ -3,15 +3,16 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<meta name="generator" content="Doxygen 1.8.9.1"/>
<title>USB Host Shield 2.0: Usb.cpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="imageStyle.css" rel="stylesheet" type="text/css"/>
@ -31,7 +32,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.7 -->
<!-- Generated by Doxygen 1.8.9.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -70,7 +71,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
@ -168,7 +169,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;}</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;uint8_t USB::SetAddress(uint8_t addr, uint8_t ep, <a class="code" href="struct_ep_info.html">EpInfo</a> **ppep, uint16_t &amp;nak_limit) {</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;uint8_t USB::SetAddress(uint8_t addr, uint8_t ep, <a class="code" href="struct_ep_info.html">EpInfo</a> **ppep, uint16_t *nak_limit) {</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <a class="code" href="struct_usb_device.html">UsbDevice</a> *p = addrPool.<a class="code" href="class_address_pool_impl.html#aa3e12dda249ef6acbb27592fc8fe1cba">GetUsbDevicePtr</a>(addr);</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordflow">if</span>(!p)</div>
@ -182,8 +183,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordflow">if</span>(!*ppep)</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#ad55f0079a95df5e4a9bb22e88a7395f5">USB_ERROR_EP_NOT_FOUND_IN_TBL</a>;</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; nak_limit = (0x0001UL &lt;&lt; (((*ppep)-&gt;bmNakPower &gt; <a class="code" href="address_8h.html#a517dfa014946e2d087d197312234a1de">USB_NAK_MAX_POWER</a>) ? <a class="code" href="address_8h.html#a517dfa014946e2d087d197312234a1de">USB_NAK_MAX_POWER</a> : (*ppep)-&gt;bmNakPower));</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; nak_limit--;</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; *nak_limit = (0x0001UL &lt;&lt; (((*ppep)-&gt;bmNakPower &gt; <a class="code" href="address_8h.html#a517dfa014946e2d087d197312234a1de">USB_NAK_MAX_POWER</a>) ? <a class="code" href="address_8h.html#a517dfa014946e2d087d197312234a1de">USB_NAK_MAX_POWER</a> : (*ppep)-&gt;bmNakPower));</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; *nak_limit--;</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="comment"> USBTRACE2(&quot;\r\nAddress: &quot;, addr);</span></div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="comment"> USBTRACE2(&quot; EP: &quot;, ep);</span></div>
@ -223,7 +224,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <a class="code" href="struct_ep_info.html">EpInfo</a> *pep = NULL;</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; uint16_t nak_limit = 0;</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; rcode = SetAddress(addr, ep, &amp;pep, nak_limit);</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; rcode = SetAddress(addr, ep, &amp;pep, &amp;nak_limit);</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordflow">if</span>(rcode)</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">return</span> rcode;</div>
@ -231,10 +232,10 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; direction = ((bmReqType &amp; 0x80) &gt; 0);</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="comment">/* fill in setup packet */</span></div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; setup_pkt.<a class="code" href="struct_s_e_t_u_p___p_k_t.html#a89e910e42e697ad0daa9bdc72ac95658">ReqType_u</a>.<a class="code" href="struct_s_e_t_u_p___p_k_t.html#a9bbd6cf5a93a6433d2eb97c59b9102d5">bmRequestType</a> = bmReqType;</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; setup_pkt.<a class="code" href="struct_s_e_t_u_p___p_k_t.html#ae1bc3bebe3c1e4370e4c88a674d8f094">ReqType_u</a>.<a class="code" href="struct_s_e_t_u_p___p_k_t.html#a9bbd6cf5a93a6433d2eb97c59b9102d5">bmRequestType</a> = bmReqType;</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; setup_pkt.<a class="code" href="struct_s_e_t_u_p___p_k_t.html#a321b931277d6ce278416dc5d74059016">bRequest</a> = bRequest;</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; setup_pkt.<a class="code" href="struct_s_e_t_u_p___p_k_t.html#aa99db9f696b4d9cbe9c6beaa4f993c0a">wVal_u</a>.<a class="code" href="struct_s_e_t_u_p___p_k_t.html#a68c9436c00560f96e044052c3fb681e9">wValueLo</a> = wValLo;</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; setup_pkt.<a class="code" href="struct_s_e_t_u_p___p_k_t.html#aa99db9f696b4d9cbe9c6beaa4f993c0a">wVal_u</a>.<a class="code" href="struct_s_e_t_u_p___p_k_t.html#a04ea2d151f9edb6575fc159a58f1e443">wValueHi</a> = wValHi;</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; setup_pkt.<a class="code" href="struct_s_e_t_u_p___p_k_t.html#a65122e1017532e68f69192032d1e1332">wVal_u</a>.<a class="code" href="struct_s_e_t_u_p___p_k_t.html#a68c9436c00560f96e044052c3fb681e9">wValueLo</a> = wValLo;</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; setup_pkt.<a class="code" href="struct_s_e_t_u_p___p_k_t.html#a65122e1017532e68f69192032d1e1332">wVal_u</a>.<a class="code" href="struct_s_e_t_u_p___p_k_t.html#a04ea2d151f9edb6575fc159a58f1e443">wValueHi</a> = wValHi;</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; setup_pkt.<a class="code" href="struct_s_e_t_u_p___p_k_t.html#a299d9f88d294369ea88b48b5026f4c7e">wIndex</a> = wInd;</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; setup_pkt.<a class="code" href="struct_s_e_t_u_p___p_k_t.html#a1ec9b19c0ed1e66e399ad9cf3c4a6537">wLength</a> = total;</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div>
@ -298,7 +299,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <a class="code" href="struct_ep_info.html">EpInfo</a> *pep = NULL;</div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; uint16_t nak_limit = 0;</div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; uint8_t rcode = SetAddress(addr, ep, &amp;pep, nak_limit);</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; uint8_t rcode = SetAddress(addr, ep, &amp;pep, &amp;nak_limit);</div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">if</span>(rcode) {</div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <a class="code" href="macros_8h.html#a3b6ba9344d4ae0847095896841587862">USBTRACE3</a>(<span class="stringliteral">&quot;(USB::InTransfer) SetAddress Failed &quot;</span>, rcode, 0x81);</div>
@ -384,7 +385,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <a class="code" href="struct_ep_info.html">EpInfo</a> *pep = NULL;</div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; uint16_t nak_limit = 0;</div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;</div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; uint8_t rcode = SetAddress(addr, ep, &amp;pep, nak_limit);</div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; uint8_t rcode = SetAddress(addr, ep, &amp;pep, &amp;nak_limit);</div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;</div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keywordflow">if</span>(rcode)</div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keywordflow">return</span> rcode;</div>
@ -789,260 +790,263 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; <span class="comment">// Allocate new address according to device class</span></div>
<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; <span class="comment">//bAddress = addrPool.AllocAddress(parent, false, port);</span></div>
<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160;</div>
<div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; <span class="comment">//if (!bAddress)</span></div>
<div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; <span class="comment">// return USB_ERROR_OUT_OF_ADDRESS_SPACE_IN_POOL;</span></div>
<div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; uint16_t vid = udd-&gt;idVendor;</div>
<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; uint16_t pid = udd-&gt;idProduct;</div>
<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; uint8_t klass = udd-&gt;bDeviceClass;</div>
<div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160;</div>
<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; <span class="comment">// Attempt to configure if VID/PID or device class matches with a driver</span></div>
<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; <span class="keywordflow">for</span>(devConfigIndex = 0; devConfigIndex &lt; <a class="code" href="_usb_core_8h.html#a0282f9f7a0313f957e02449d7313b7b5">USB_NUMDEVICES</a>; devConfigIndex++) {</div>
<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; <span class="keywordflow">if</span>(!devConfig[devConfigIndex]) <span class="keywordflow">continue</span>; <span class="comment">// no driver</span></div>
<div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160; <span class="keywordflow">if</span>(devConfig[devConfigIndex]-&gt;GetAddress()) <span class="keywordflow">continue</span>; <span class="comment">// consumed</span></div>
<div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; <span class="keywordflow">if</span>(devConfig[devConfigIndex]-&gt;VIDPIDOK(vid, pid) || devConfig[devConfigIndex]-&gt;DEVCLASSOK(klass)) {</div>
<div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; rcode = AttemptConfig(devConfigIndex, parent, port, lowspeed);</div>
<div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; <span class="keywordflow">if</span>(rcode != <a class="code" href="_usb_core_8h.html#ae9e139d0fd29bb0b3e7afad2f76cd589">USB_DEV_CONFIG_ERROR_DEVICE_NOT_SUPPORTED</a>)</div>
<div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160; }</div>
<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; }</div>
<div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160;</div>
<div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; <span class="keywordflow">if</span>(devConfigIndex &lt; USB_NUMDEVICES) {</div>
<div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; <span class="keywordflow">return</span> rcode;</div>
<div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160; }</div>
<div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160;</div>
<div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160;</div>
<div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; <span class="comment">// blindly attempt to configure</span></div>
<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160; <span class="keywordflow">for</span>(devConfigIndex = 0; devConfigIndex &lt; <a class="code" href="_usb_core_8h.html#a0282f9f7a0313f957e02449d7313b7b5">USB_NUMDEVICES</a>; devConfigIndex++) {</div>
<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160; <span class="keywordflow">if</span>(!devConfig[devConfigIndex]) <span class="keywordflow">continue</span>;</div>
<div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; <span class="keywordflow">if</span>(devConfig[devConfigIndex]-&gt;GetAddress()) <span class="keywordflow">continue</span>; <span class="comment">// consumed</span></div>
<div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160; <span class="keywordflow">if</span>(devConfig[devConfigIndex]-&gt;VIDPIDOK(vid, pid) || devConfig[devConfigIndex]-&gt;DEVCLASSOK(klass)) <span class="keywordflow">continue</span>; <span class="comment">// If this is true it means it must have returned USB_DEV_CONFIG_ERROR_DEVICE_NOT_SUPPORTED above</span></div>
<div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160; rcode = AttemptConfig(devConfigIndex, parent, port, lowspeed);</div>
<div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160;</div>
<div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160; <span class="comment">//printf(&quot;ERROR ENUMERATING %2.2x\r\n&quot;, rcode);</span></div>
<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; <span class="keywordflow">if</span>(!(rcode == <a class="code" href="_usb_core_8h.html#ae9e139d0fd29bb0b3e7afad2f76cd589">USB_DEV_CONFIG_ERROR_DEVICE_NOT_SUPPORTED</a> || rcode == <a class="code" href="_usb_core_8h.html#a44416ff64fc0e3691f98addac13d4595">USB_ERROR_CLASS_INSTANCE_ALREADY_IN_USE</a>)) {</div>
<div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; <span class="comment">// in case of an error dev_index should be reset to 0</span></div>
<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; <span class="comment">// in order to start from the very beginning the</span></div>
<div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; <span class="comment">// next time the program gets here</span></div>
<div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160; <span class="comment">//if (rcode != USB_DEV_CONFIG_ERROR_DEVICE_INIT_INCOMPLETE)</span></div>
<div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160; <span class="comment">// devConfigIndex = 0;</span></div>
<div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160; <span class="keywordflow">return</span> rcode;</div>
<div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; }</div>
<div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160; }</div>
<div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; <span class="comment">// if we get here that means that the device class is not supported by any of registered classes</span></div>
<div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; rcode = <a class="code" href="class_u_s_b.html#a5eb0d31372d26f0015a0d7be0b9ff4e1">DefaultAddressing</a>(parent, port, lowspeed);</div>
<div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160;</div>
<div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; <span class="keywordflow">return</span> rcode;</div>
<div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160;}</div>
<div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; uint16_t vid = udd-&gt;idVendor;</div>
<div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; uint16_t pid = udd-&gt;idProduct;</div>
<div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; uint8_t klass = udd-&gt;bDeviceClass;</div>
<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; uint8_t subklass = udd-&gt;bDeviceSubClass;</div>
<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; <span class="comment">// Attempt to configure if VID/PID or device class matches with a driver</span></div>
<div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; <span class="comment">// Qualify with subclass too.</span></div>
<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; <span class="comment">//</span></div>
<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; <span class="comment">// VID/PID &amp; class tests default to false for drivers not yet ported</span></div>
<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; <span class="comment">// subclass defaults to true, so you don&#39;t have to define it if you don&#39;t have to.</span></div>
<div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160; <span class="comment">//</span></div>
<div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; <span class="keywordflow">for</span>(devConfigIndex = 0; devConfigIndex &lt; <a class="code" href="_usb_core_8h.html#a0282f9f7a0313f957e02449d7313b7b5">USB_NUMDEVICES</a>; devConfigIndex++) {</div>
<div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; <span class="keywordflow">if</span>(!devConfig[devConfigIndex]) <span class="keywordflow">continue</span>; <span class="comment">// no driver</span></div>
<div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; <span class="keywordflow">if</span>(devConfig[devConfigIndex]-&gt;GetAddress()) <span class="keywordflow">continue</span>; <span class="comment">// consumed</span></div>
<div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160; <span class="keywordflow">if</span>(devConfig[devConfigIndex]-&gt;DEVSUBCLASSOK(subklass) &amp;&amp; (devConfig[devConfigIndex]-&gt;VIDPIDOK(vid, pid) || devConfig[devConfigIndex]-&gt;DEVCLASSOK(klass))) {</div>
<div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160; rcode = AttemptConfig(devConfigIndex, parent, port, lowspeed);</div>
<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; <span class="keywordflow">if</span>(rcode != <a class="code" href="_usb_core_8h.html#ae9e139d0fd29bb0b3e7afad2f76cd589">USB_DEV_CONFIG_ERROR_DEVICE_NOT_SUPPORTED</a>)</div>
<div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; }</div>
<div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; }</div>
<div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160;</div>
<div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160; <span class="keywordflow">if</span>(devConfigIndex &lt; USB_NUMDEVICES) {</div>
<div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160; <span class="keywordflow">return</span> rcode;</div>
<div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; }</div>
<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160;</div>
<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160;</div>
<div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; <span class="comment">// blindly attempt to configure</span></div>
<div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160; <span class="keywordflow">for</span>(devConfigIndex = 0; devConfigIndex &lt; <a class="code" href="_usb_core_8h.html#a0282f9f7a0313f957e02449d7313b7b5">USB_NUMDEVICES</a>; devConfigIndex++) {</div>
<div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160; <span class="keywordflow">if</span>(!devConfig[devConfigIndex]) <span class="keywordflow">continue</span>;</div>
<div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; <span class="keywordflow">if</span>(devConfig[devConfigIndex]-&gt;GetAddress()) <span class="keywordflow">continue</span>; <span class="comment">// consumed</span></div>
<div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160; <span class="keywordflow">if</span>(devConfig[devConfigIndex]-&gt;DEVSUBCLASSOK(subklass) &amp;&amp; (devConfig[devConfigIndex]-&gt;VIDPIDOK(vid, pid) || devConfig[devConfigIndex]-&gt;DEVCLASSOK(klass))) <span class="keywordflow">continue</span>; <span class="comment">// If this is true it means it must have returned USB_DEV_CONFIG_ERROR_DEVICE_NOT_SUPPORTED above</span></div>
<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; rcode = AttemptConfig(devConfigIndex, parent, port, lowspeed);</div>
<div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160;</div>
<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; <span class="comment">//printf(&quot;ERROR ENUMERATING %2.2x\r\n&quot;, rcode);</span></div>
<div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; <span class="keywordflow">if</span>(!(rcode == <a class="code" href="_usb_core_8h.html#ae9e139d0fd29bb0b3e7afad2f76cd589">USB_DEV_CONFIG_ERROR_DEVICE_NOT_SUPPORTED</a> || rcode == <a class="code" href="_usb_core_8h.html#a44416ff64fc0e3691f98addac13d4595">USB_ERROR_CLASS_INSTANCE_ALREADY_IN_USE</a>)) {</div>
<div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160; <span class="comment">// in case of an error dev_index should be reset to 0</span></div>
<div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160; <span class="comment">// in order to start from the very beginning the</span></div>
<div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160; <span class="comment">// next time the program gets here</span></div>
<div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; <span class="comment">//if (rcode != USB_DEV_CONFIG_ERROR_DEVICE_INIT_INCOMPLETE)</span></div>
<div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160; <span class="comment">// devConfigIndex = 0;</span></div>
<div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; <span class="keywordflow">return</span> rcode;</div>
<div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; }</div>
<div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; }</div>
<div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; <span class="comment">// if we get here that means that the device class is not supported by any of registered classes</span></div>
<div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; rcode = <a class="code" href="class_u_s_b.html#a5eb0d31372d26f0015a0d7be0b9ff4e1">DefaultAddressing</a>(parent, port, lowspeed);</div>
<div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160;</div>
<div class="line"><a name="l00746"></a><span class="lineno"><a class="line" href="class_u_s_b.html#ac681c6c98e1641f705bc14d670a2663a"> 746</a></span>&#160;uint8_t <a class="code" href="class_u_s_b.html#ac681c6c98e1641f705bc14d670a2663a">USB::ReleaseDevice</a>(uint8_t addr) {</div>
<div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160; <span class="keywordflow">if</span>(!addr)</div>
<div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160;</div>
<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; <span class="keywordflow">for</span>(uint8_t i = 0; i &lt; <a class="code" href="_usb_core_8h.html#a0282f9f7a0313f957e02449d7313b7b5">USB_NUMDEVICES</a>; i++) {</div>
<div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160; <span class="keywordflow">if</span>(!devConfig[i]) <span class="keywordflow">continue</span>;</div>
<div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160; <span class="keywordflow">if</span>(devConfig[i]-&gt;GetAddress() == addr)</div>
<div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; <span class="keywordflow">return</span> devConfig[i]-&gt;<a class="code" href="class_u_s_b_device_config.html#a61e301efedae55c6ac12c6cce154e432">Release</a>();</div>
<div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160; }</div>
<div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160;}</div>
<div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160;</div>
<div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160;<span class="preprocessor">#if 1 </span></div>
<div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160;<span class="preprocessor">//get device descriptor</span></div>
<div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; <span class="keywordflow">return</span> rcode;</div>
<div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160;}</div>
<div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160;</div>
<div class="line"><a name="l00749"></a><span class="lineno"><a class="line" href="class_u_s_b.html#ac681c6c98e1641f705bc14d670a2663a"> 749</a></span>&#160;uint8_t <a class="code" href="class_u_s_b.html#ac681c6c98e1641f705bc14d670a2663a">USB::ReleaseDevice</a>(uint8_t addr) {</div>
<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; <span class="keywordflow">if</span>(!addr)</div>
<div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160;</div>
<div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; <span class="keywordflow">for</span>(uint8_t i = 0; i &lt; <a class="code" href="_usb_core_8h.html#a0282f9f7a0313f957e02449d7313b7b5">USB_NUMDEVICES</a>; i++) {</div>
<div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160; <span class="keywordflow">if</span>(!devConfig[i]) <span class="keywordflow">continue</span>;</div>
<div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160; <span class="keywordflow">if</span>(devConfig[i]-&gt;GetAddress() == addr)</div>
<div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160; <span class="keywordflow">return</span> devConfig[i]-&gt;<a class="code" href="class_u_s_b_device_config.html#a61e301efedae55c6ac12c6cce154e432">Release</a>();</div>
<div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160; }</div>
<div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160;}</div>
<div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160;</div>
<div class="line"><a name="l00761"></a><span class="lineno"><a class="line" href="class_u_s_b.html#a193e63c149fad46adabd77ceb09b2b24"> 761</a></span>&#160;uint8_t <a class="code" href="class_u_s_b.html#a193e63c149fad46adabd77ceb09b2b24">USB::getDevDescr</a>(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t* dataptr) {</div>
<div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; <span class="keywordflow">return</span> ( <a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(addr, ep, <a class="code" href="_usb_core_8h.html#a060f3a6423f1e3640aa7b14d5ce72285">bmREQ_GET_DESCR</a>, <a class="code" href="usb__ch9_8h.html#a3572226ee2137c7fbf7487a02b0f560f">USB_REQUEST_GET_DESCRIPTOR</a>, 0x00, <a class="code" href="usb__ch9_8h.html#ac6d0566773ed4549fe1a7a932e6c46de">USB_DESCRIPTOR_DEVICE</a>, 0x0000, nbytes, nbytes, dataptr, NULL));</div>
<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160;}</div>
<div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160;<span class="comment">//get configuration descriptor</span></div>
<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160;</div>
<div class="line"><a name="l00766"></a><span class="lineno"><a class="line" href="class_u_s_b.html#a618eedabc161d8315be45cae0c8b6f89"> 766</a></span>&#160;uint8_t <a class="code" href="class_u_s_b.html#a618eedabc161d8315be45cae0c8b6f89">USB::getConfDescr</a>(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t conf, uint8_t* dataptr) {</div>
<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160; <span class="keywordflow">return</span> ( <a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(addr, ep, <a class="code" href="_usb_core_8h.html#a060f3a6423f1e3640aa7b14d5ce72285">bmREQ_GET_DESCR</a>, <a class="code" href="usb__ch9_8h.html#a3572226ee2137c7fbf7487a02b0f560f">USB_REQUEST_GET_DESCRIPTOR</a>, conf, <a class="code" href="usb__ch9_8h.html#aa17b365c4eb8bd2f6a4d4e4fb5f881c7">USB_DESCRIPTOR_CONFIGURATION</a>, 0x0000, nbytes, nbytes, dataptr, NULL));</div>
<div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160;}</div>
<div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160;</div>
<div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160;<span class="comment">/* Requests Configuration Descriptor. Sends two Get Conf Descr requests. The first one gets the total length of all descriptors, then the second one requests this</span></div>
<div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160;<span class="comment"> total length. The length of the first request can be shorter ( 4 bytes ), however, there are devices which won&#39;t work unless this length is set to 9 */</span></div>
<div class="line"><a name="l00772"></a><span class="lineno"><a class="line" href="class_u_s_b.html#a9ebd4acdc37b12bbab2ca893cb899eba"> 772</a></span>&#160;uint8_t <a class="code" href="class_u_s_b.html#a618eedabc161d8315be45cae0c8b6f89">USB::getConfDescr</a>(uint8_t addr, uint8_t ep, uint8_t conf, <a class="code" href="class_u_s_b_read_parser.html">USBReadParser</a> *p) {</div>
<div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160; <span class="keyword">const</span> uint8_t bufSize = 64;</div>
<div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; uint8_t buf[bufSize];</div>
<div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160; <a class="code" href="struct_u_s_b___c_o_n_f_i_g_u_r_a_t_i_o_n___d_e_s_c_r_i_p_t_o_r.html">USB_CONFIGURATION_DESCRIPTOR</a> *ucd = <span class="keyword">reinterpret_cast&lt;</span><a class="code" href="struct_u_s_b___c_o_n_f_i_g_u_r_a_t_i_o_n___d_e_s_c_r_i_p_t_o_r.html">USB_CONFIGURATION_DESCRIPTOR</a> *<span class="keyword">&gt;</span>(buf);</div>
<div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160;</div>
<div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160; uint8_t ret = <a class="code" href="class_u_s_b.html#a618eedabc161d8315be45cae0c8b6f89">getConfDescr</a>(addr, ep, 9, conf, buf);</div>
<div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160;</div>
<div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; <span class="keywordflow">if</span>(ret)</div>
<div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160; <span class="keywordflow">return</span> ret;</div>
<div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160;<span class="preprocessor">#if 1 </span></div>
<div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160;<span class="preprocessor">//get device descriptor</span></div>
<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160;</div>
<div class="line"><a name="l00764"></a><span class="lineno"><a class="line" href="class_u_s_b.html#a193e63c149fad46adabd77ceb09b2b24"> 764</a></span>&#160;uint8_t <a class="code" href="class_u_s_b.html#a193e63c149fad46adabd77ceb09b2b24">USB::getDevDescr</a>(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t* dataptr) {</div>
<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160; <span class="keywordflow">return</span> ( <a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(addr, ep, <a class="code" href="_usb_core_8h.html#a060f3a6423f1e3640aa7b14d5ce72285">bmREQ_GET_DESCR</a>, <a class="code" href="usb__ch9_8h.html#a3572226ee2137c7fbf7487a02b0f560f">USB_REQUEST_GET_DESCRIPTOR</a>, 0x00, <a class="code" href="usb__ch9_8h.html#ac6d0566773ed4549fe1a7a932e6c46de">USB_DESCRIPTOR_DEVICE</a>, 0x0000, nbytes, nbytes, dataptr, NULL));</div>
<div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160;}</div>
<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160;<span class="comment">//get configuration descriptor</span></div>
<div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160;</div>
<div class="line"><a name="l00769"></a><span class="lineno"><a class="line" href="class_u_s_b.html#a618eedabc161d8315be45cae0c8b6f89"> 769</a></span>&#160;uint8_t <a class="code" href="class_u_s_b.html#a618eedabc161d8315be45cae0c8b6f89">USB::getConfDescr</a>(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t conf, uint8_t* dataptr) {</div>
<div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160; <span class="keywordflow">return</span> ( <a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(addr, ep, <a class="code" href="_usb_core_8h.html#a060f3a6423f1e3640aa7b14d5ce72285">bmREQ_GET_DESCR</a>, <a class="code" href="usb__ch9_8h.html#a3572226ee2137c7fbf7487a02b0f560f">USB_REQUEST_GET_DESCRIPTOR</a>, conf, <a class="code" href="usb__ch9_8h.html#aa17b365c4eb8bd2f6a4d4e4fb5f881c7">USB_DESCRIPTOR_CONFIGURATION</a>, 0x0000, nbytes, nbytes, dataptr, NULL));</div>
<div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160;}</div>
<div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160;</div>
<div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160;<span class="comment">/* Requests Configuration Descriptor. Sends two Get Conf Descr requests. The first one gets the total length of all descriptors, then the second one requests this</span></div>
<div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160;<span class="comment"> total length. The length of the first request can be shorter ( 4 bytes ), however, there are devices which won&#39;t work unless this length is set to 9 */</span></div>
<div class="line"><a name="l00775"></a><span class="lineno"><a class="line" href="class_u_s_b.html#a9ebd4acdc37b12bbab2ca893cb899eba"> 775</a></span>&#160;uint8_t <a class="code" href="class_u_s_b.html#a618eedabc161d8315be45cae0c8b6f89">USB::getConfDescr</a>(uint8_t addr, uint8_t ep, uint8_t conf, <a class="code" href="class_u_s_b_read_parser.html">USBReadParser</a> *p) {</div>
<div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160; <span class="keyword">const</span> uint8_t bufSize = 64;</div>
<div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160; uint8_t buf[bufSize];</div>
<div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160; <a class="code" href="struct_u_s_b___c_o_n_f_i_g_u_r_a_t_i_o_n___d_e_s_c_r_i_p_t_o_r.html">USB_CONFIGURATION_DESCRIPTOR</a> *ucd = <span class="keyword">reinterpret_cast&lt;</span><a class="code" href="struct_u_s_b___c_o_n_f_i_g_u_r_a_t_i_o_n___d_e_s_c_r_i_p_t_o_r.html">USB_CONFIGURATION_DESCRIPTOR</a> *<span class="keyword">&gt;</span>(buf);</div>
<div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160;</div>
<div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160; uint8_t ret = <a class="code" href="class_u_s_b.html#a618eedabc161d8315be45cae0c8b6f89">getConfDescr</a>(addr, ep, 9, conf, buf);</div>
<div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160;</div>
<div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160; uint16_t total = ucd-&gt;<a class="code" href="struct_u_s_b___c_o_n_f_i_g_u_r_a_t_i_o_n___d_e_s_c_r_i_p_t_o_r.html#a39499f3dd4e3f1ef1d8a2c9b430bc11b">wTotalLength</a>;</div>
<div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160;</div>
<div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; <span class="comment">//USBTRACE2(&quot;\r\ntotal conf.size:&quot;, total);</span></div>
<div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160;</div>
<div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160; <span class="keywordflow">return</span> ( <a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(addr, ep, <a class="code" href="_usb_core_8h.html#a060f3a6423f1e3640aa7b14d5ce72285">bmREQ_GET_DESCR</a>, <a class="code" href="usb__ch9_8h.html#a3572226ee2137c7fbf7487a02b0f560f">USB_REQUEST_GET_DESCRIPTOR</a>, conf, <a class="code" href="usb__ch9_8h.html#aa17b365c4eb8bd2f6a4d4e4fb5f881c7">USB_DESCRIPTOR_CONFIGURATION</a>, 0x0000, total, bufSize, buf, p));</div>
<div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160;}</div>
<div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160; <span class="keywordflow">if</span>(ret)</div>
<div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; <span class="keywordflow">return</span> ret;</div>
<div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160;</div>
<div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160; uint16_t total = ucd-&gt;<a class="code" href="struct_u_s_b___c_o_n_f_i_g_u_r_a_t_i_o_n___d_e_s_c_r_i_p_t_o_r.html#a39499f3dd4e3f1ef1d8a2c9b430bc11b">wTotalLength</a>;</div>
<div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160;</div>
<div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160; <span class="comment">//USBTRACE2(&quot;\r\ntotal conf.size:&quot;, total);</span></div>
<div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160;</div>
<div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160;<span class="comment">//get string descriptor</span></div>
<div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160;</div>
<div class="line"><a name="l00791"></a><span class="lineno"><a class="line" href="class_u_s_b.html#a372ecbe1d23955e8b04b5e95e0e4a833"> 791</a></span>&#160;uint8_t <a class="code" href="class_u_s_b.html#a372ecbe1d23955e8b04b5e95e0e4a833">USB::getStrDescr</a>(uint8_t addr, uint8_t ep, uint16_t ns, uint8_t index, uint16_t langid, uint8_t* dataptr) {</div>
<div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160; <span class="keywordflow">return</span> ( <a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(addr, ep, <a class="code" href="_usb_core_8h.html#a060f3a6423f1e3640aa7b14d5ce72285">bmREQ_GET_DESCR</a>, <a class="code" href="usb__ch9_8h.html#a3572226ee2137c7fbf7487a02b0f560f">USB_REQUEST_GET_DESCRIPTOR</a>, index, <a class="code" href="usb__ch9_8h.html#abbad38caa1ca9c52f47adccd3a850aed">USB_DESCRIPTOR_STRING</a>, langid, ns, ns, dataptr, NULL));</div>
<div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160;}</div>
<div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160;<span class="comment">//set address</span></div>
<div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160;</div>
<div class="line"><a name="l00796"></a><span class="lineno"><a class="line" href="class_u_s_b.html#a3aea534daed66b5606fa798df7ad3c47"> 796</a></span>&#160;uint8_t <a class="code" href="class_u_s_b.html#a3aea534daed66b5606fa798df7ad3c47">USB::setAddr</a>(uint8_t oldaddr, uint8_t ep, uint8_t newaddr) {</div>
<div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; uint8_t rcode = <a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(oldaddr, ep, <a class="code" href="_usb_core_8h.html#af4965e768593007eacde7644979f56da">bmREQ_SET</a>, <a class="code" href="usb__ch9_8h.html#ac87659819bfd6491120c819fae2d46bc">USB_REQUEST_SET_ADDRESS</a>, newaddr, 0x00, 0x0000, 0x0000, 0x0000, NULL, NULL);</div>
<div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160; <span class="comment">//delay(2); //per USB 2.0 sect.9.2.6.3</span></div>
<div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; delay(300); <span class="comment">// Older spec says you should wait at least 200ms</span></div>
<div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160; <span class="keywordflow">return</span> rcode;</div>
<div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; <span class="comment">//return ( ctrlReq(oldaddr, ep, bmREQ_SET, USB_REQUEST_SET_ADDRESS, newaddr, 0x00, 0x0000, 0x0000, 0x0000, NULL, NULL));</span></div>
<div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160;}</div>
<div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160;<span class="comment">//set configuration</span></div>
<div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160;</div>
<div class="line"><a name="l00805"></a><span class="lineno"><a class="line" href="class_u_s_b.html#a31e2c132ec32ffdde94dff72be87c378"> 805</a></span>&#160;uint8_t <a class="code" href="class_u_s_b.html#a31e2c132ec32ffdde94dff72be87c378">USB::setConf</a>(uint8_t addr, uint8_t ep, uint8_t conf_value) {</div>
<div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160; <span class="keywordflow">return</span> ( <a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(addr, ep, <a class="code" href="_usb_core_8h.html#af4965e768593007eacde7644979f56da">bmREQ_SET</a>, <a class="code" href="usb__ch9_8h.html#aadef005acc40340955d34d9767ef297c">USB_REQUEST_SET_CONFIGURATION</a>, conf_value, 0x00, 0x0000, 0x0000, 0x0000, NULL, NULL));</div>
<div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160;}</div>
<div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160;</div>
<div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160;<span class="preprocessor">#endif // defined(USB_METHODS_INLINE)</span></div>
<div class="ttc" id="class_u_s_b_html_a618eedabc161d8315be45cae0c8b6f89"><div class="ttname"><a href="class_u_s_b.html#a618eedabc161d8315be45cae0c8b6f89">USB::getConfDescr</a></div><div class="ttdeci">uint8_t getConfDescr(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t conf, uint8_t *dataptr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00766">Usb.cpp:766</a></div></div>
<div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; <span class="keywordflow">return</span> ( <a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(addr, ep, <a class="code" href="_usb_core_8h.html#a060f3a6423f1e3640aa7b14d5ce72285">bmREQ_GET_DESCR</a>, <a class="code" href="usb__ch9_8h.html#a3572226ee2137c7fbf7487a02b0f560f">USB_REQUEST_GET_DESCRIPTOR</a>, conf, <a class="code" href="usb__ch9_8h.html#aa17b365c4eb8bd2f6a4d4e4fb5f881c7">USB_DESCRIPTOR_CONFIGURATION</a>, 0x0000, total, bufSize, buf, p));</div>
<div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160;}</div>
<div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160;</div>
<div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160;<span class="comment">//get string descriptor</span></div>
<div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160;</div>
<div class="line"><a name="l00794"></a><span class="lineno"><a class="line" href="class_u_s_b.html#a372ecbe1d23955e8b04b5e95e0e4a833"> 794</a></span>&#160;uint8_t <a class="code" href="class_u_s_b.html#a372ecbe1d23955e8b04b5e95e0e4a833">USB::getStrDescr</a>(uint8_t addr, uint8_t ep, uint16_t ns, uint8_t index, uint16_t langid, uint8_t* dataptr) {</div>
<div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160; <span class="keywordflow">return</span> ( <a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(addr, ep, <a class="code" href="_usb_core_8h.html#a060f3a6423f1e3640aa7b14d5ce72285">bmREQ_GET_DESCR</a>, <a class="code" href="usb__ch9_8h.html#a3572226ee2137c7fbf7487a02b0f560f">USB_REQUEST_GET_DESCRIPTOR</a>, index, <a class="code" href="usb__ch9_8h.html#abbad38caa1ca9c52f47adccd3a850aed">USB_DESCRIPTOR_STRING</a>, langid, ns, ns, dataptr, NULL));</div>
<div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160;}</div>
<div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160;<span class="comment">//set address</span></div>
<div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160;</div>
<div class="line"><a name="l00799"></a><span class="lineno"><a class="line" href="class_u_s_b.html#a3aea534daed66b5606fa798df7ad3c47"> 799</a></span>&#160;uint8_t <a class="code" href="class_u_s_b.html#a3aea534daed66b5606fa798df7ad3c47">USB::setAddr</a>(uint8_t oldaddr, uint8_t ep, uint8_t newaddr) {</div>
<div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160; uint8_t rcode = <a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(oldaddr, ep, <a class="code" href="_usb_core_8h.html#af4965e768593007eacde7644979f56da">bmREQ_SET</a>, <a class="code" href="usb__ch9_8h.html#ac87659819bfd6491120c819fae2d46bc">USB_REQUEST_SET_ADDRESS</a>, newaddr, 0x00, 0x0000, 0x0000, 0x0000, NULL, NULL);</div>
<div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; <span class="comment">//delay(2); //per USB 2.0 sect.9.2.6.3</span></div>
<div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160; delay(300); <span class="comment">// Older spec says you should wait at least 200ms</span></div>
<div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160; <span class="keywordflow">return</span> rcode;</div>
<div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; <span class="comment">//return ( ctrlReq(oldaddr, ep, bmREQ_SET, USB_REQUEST_SET_ADDRESS, newaddr, 0x00, 0x0000, 0x0000, 0x0000, NULL, NULL));</span></div>
<div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160;}</div>
<div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160;<span class="comment">//set configuration</span></div>
<div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160;</div>
<div class="line"><a name="l00808"></a><span class="lineno"><a class="line" href="class_u_s_b.html#a31e2c132ec32ffdde94dff72be87c378"> 808</a></span>&#160;uint8_t <a class="code" href="class_u_s_b.html#a31e2c132ec32ffdde94dff72be87c378">USB::setConf</a>(uint8_t addr, uint8_t ep, uint8_t conf_value) {</div>
<div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; <span class="keywordflow">return</span> ( <a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(addr, ep, <a class="code" href="_usb_core_8h.html#af4965e768593007eacde7644979f56da">bmREQ_SET</a>, <a class="code" href="usb__ch9_8h.html#aadef005acc40340955d34d9767ef297c">USB_REQUEST_SET_CONFIGURATION</a>, conf_value, 0x00, 0x0000, 0x0000, 0x0000, NULL, NULL));</div>
<div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160;}</div>
<div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160;</div>
<div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160;<span class="preprocessor">#endif // defined(USB_METHODS_INLINE)</span></div>
<div class="ttc" id="class_u_s_b_html_a618eedabc161d8315be45cae0c8b6f89"><div class="ttname"><a href="class_u_s_b.html#a618eedabc161d8315be45cae0c8b6f89">USB::getConfDescr</a></div><div class="ttdeci">uint8_t getConfDescr(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t conf, uint8_t *dataptr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00769">Usb.cpp:769</a></div></div>
<div class="ttc" id="struct_ep_info_html_a9238dd40c096baedf041c98b19386a14"><div class="ttname"><a href="struct_ep_info.html#a9238dd40c096baedf041c98b19386a14">EpInfo::bmRcvToggle</a></div><div class="ttdeci">uint8_t bmRcvToggle</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00041">address.h:41</a></div></div>
<div class="ttc" id="class_address_pool_html"><div class="ttname"><a href="class_address_pool.html">AddressPool</a></div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00083">address.h:83</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_a893ea73deab98be837c257201e7da25a"><div class="ttname"><a href="class_u_s_b_device_config.html#a893ea73deab98be837c257201e7da25a">USBDeviceConfig::Poll</a></div><div class="ttdeci">virtual uint8_t Poll()</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00134">UsbCore.h:134</a></div></div>
<div class="ttc" id="_usb_core_8h_html_ad55f0079a95df5e4a9bb22e88a7395f5"><div class="ttname"><a href="_usb_core_8h.html#ad55f0079a95df5e4a9bb22e88a7395f5">USB_ERROR_EP_NOT_FOUND_IN_TBL</a></div><div class="ttdeci">#define USB_ERROR_EP_NOT_FOUND_IN_TBL</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00085">UsbCore.h:85</a></div></div>
<div class="ttc" id="max3421e_8h_html_a8816c259368604d0de57f31bcb6c1674"><div class="ttname"><a href="max3421e_8h.html#a8816c259368604d0de57f31bcb6c1674">bmHUBPRE</a></div><div class="ttdeci">#define bmHUBPRE</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00170">max3421e.h:170</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a80a8d6b8e75c76947e452b4afa04c84e"><div class="ttname"><a href="_usb_core_8h.html#a80a8d6b8e75c76947e452b4afa04c84e">USB_ATTACHED_SUBSTATE_WAIT_RESET</a></div><div class="ttdeci">#define USB_ATTACHED_SUBSTATE_WAIT_RESET</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00112">UsbCore.h:112</a></div></div>
<div class="ttc" id="max3421e_8h_html_a8ec45bdb8c5273e99c3ab89349cb43f9"><div class="ttname"><a href="max3421e_8h.html#a8ec45bdb8c5273e99c3ab89349cb43f9">FSHOST</a></div><div class="ttdeci">#define FSHOST</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00035">max3421e.h:35</a></div></div>
<div class="ttc" id="max3421e_8h_html_a7e82a85eb165f82afde45df5f98504ff"><div class="ttname"><a href="max3421e_8h.html#a7e82a85eb165f82afde45df5f98504ff">rHCTL</a></div><div class="ttdeci">#define rHCTL</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00179">max3421e.h:179</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_a893ea73deab98be837c257201e7da25a"><div class="ttname"><a href="class_u_s_b_device_config.html#a893ea73deab98be837c257201e7da25a">USBDeviceConfig::Poll</a></div><div class="ttdeci">virtual uint8_t Poll()</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00136">UsbCore.h:136</a></div></div>
<div class="ttc" id="_usb_core_8h_html_ad55f0079a95df5e4a9bb22e88a7395f5"><div class="ttname"><a href="_usb_core_8h.html#ad55f0079a95df5e4a9bb22e88a7395f5">USB_ERROR_EP_NOT_FOUND_IN_TBL</a></div><div class="ttdeci">#define USB_ERROR_EP_NOT_FOUND_IN_TBL</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00087">UsbCore.h:87</a></div></div>
<div class="ttc" id="max3421e_8h_html_a8816c259368604d0de57f31bcb6c1674"><div class="ttname"><a href="max3421e_8h.html#a8816c259368604d0de57f31bcb6c1674">bmHUBPRE</a></div><div class="ttdeci">#define bmHUBPRE</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00165">max3421e.h:165</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a80a8d6b8e75c76947e452b4afa04c84e"><div class="ttname"><a href="_usb_core_8h.html#a80a8d6b8e75c76947e452b4afa04c84e">USB_ATTACHED_SUBSTATE_WAIT_RESET</a></div><div class="ttdeci">#define USB_ATTACHED_SUBSTATE_WAIT_RESET</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00114">UsbCore.h:114</a></div></div>
<div class="ttc" id="max3421e_8h_html_a8ec45bdb8c5273e99c3ab89349cb43f9"><div class="ttname"><a href="max3421e_8h.html#a8ec45bdb8c5273e99c3ab89349cb43f9">FSHOST</a></div><div class="ttdeci">#define FSHOST</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00030">max3421e.h:30</a></div></div>
<div class="ttc" id="max3421e_8h_html_a7e82a85eb165f82afde45df5f98504ff"><div class="ttname"><a href="max3421e_8h.html#a7e82a85eb165f82afde45df5f98504ff">rHCTL</a></div><div class="ttdeci">#define rHCTL</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00174">max3421e.h:174</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a65122e1017532e68f69192032d1e1332"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a65122e1017532e68f69192032d1e1332">SETUP_PKT::wVal_u</a></div><div class="ttdeci">union SETUP_PKT::@31 wVal_u</div></div>
<div class="ttc" id="struct_usb_device_html_a410d39fb7758157f57794335e990ed02"><div class="ttname"><a href="struct_usb_device.html#a410d39fb7758157f57794335e990ed02">UsbDevice::epinfo</a></div><div class="ttdeci">EpInfo * epinfo</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00076">address.h:76</a></div></div>
<div class="ttc" id="struct_usb_device_html_a86a815577ad7883437d3ca72b32b8e8a"><div class="ttname"><a href="struct_usb_device.html#a86a815577ad7883437d3ca72b32b8e8a">UsbDevice::lowspeed</a></div><div class="ttdeci">bool lowspeed</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00079">address.h:79</a></div></div>
<div class="ttc" id="_usb_core_8h_html_af192c59cafe2192ad802b22e6dbc077d"><div class="ttname"><a href="_usb_core_8h.html#af192c59cafe2192ad802b22e6dbc077d">USB_ERROR_EPINFO_IS_NULL</a></div><div class="ttdeci">#define USB_ERROR_EPINFO_IS_NULL</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00081">UsbCore.h:81</a></div></div>
<div class="ttc" id="_usb_core_8h_html_af192c59cafe2192ad802b22e6dbc077d"><div class="ttname"><a href="_usb_core_8h.html#af192c59cafe2192ad802b22e6dbc077d">USB_ERROR_EPINFO_IS_NULL</a></div><div class="ttdeci">#define USB_ERROR_EPINFO_IS_NULL</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00083">UsbCore.h:83</a></div></div>
<div class="ttc" id="struct_ep_info_html_a3a5b1c017a034cd9e06e76729e727c46"><div class="ttname"><a href="struct_ep_info.html#a3a5b1c017a034cd9e06e76729e727c46">EpInfo::bmNakPower</a></div><div class="ttdeci">uint8_t bmNakPower</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00042">address.h:42</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a89e910e42e697ad0daa9bdc72ac95658"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a89e910e42e697ad0daa9bdc72ac95658">SETUP_PKT::ReqType_u</a></div><div class="ttdeci">union SETUP_PKT::@26 ReqType_u</div></div>
<div class="ttc" id="struct_u_s_b___c_o_n_f_i_g_u_r_a_t_i_o_n___d_e_s_c_r_i_p_t_o_r_html_a39499f3dd4e3f1ef1d8a2c9b430bc11b"><div class="ttname"><a href="struct_u_s_b___c_o_n_f_i_g_u_r_a_t_i_o_n___d_e_s_c_r_i_p_t_o_r.html#a39499f3dd4e3f1ef1d8a2c9b430bc11b">USB_CONFIGURATION_DESCRIPTOR::wTotalLength</a></div><div class="ttdeci">uint16_t wTotalLength</div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00119">usb_ch9.h:119</a></div></div>
<div class="ttc" id="class_u_s_b_html_a59ee57083ba492d87ff2947547848d58"><div class="ttname"><a href="class_u_s_b.html#a59ee57083ba492d87ff2947547848d58">USB::getEpInfoEntry</a></div><div class="ttdeci">EpInfo * getEpInfoEntry(uint8_t addr, uint8_t ep)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00044">Usb.cpp:44</a></div></div>
<div class="ttc" id="struct_usb_device_html"><div class="ttname"><a href="struct_usb_device.html">UsbDevice</a></div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00075">address.h:75</a></div></div>
<div class="ttc" id="max3421e_8h_html_a1cde86dfa0124c81ebffcde9fdf61cc3"><div class="ttname"><a href="max3421e_8h.html#a1cde86dfa0124c81ebffcde9fdf61cc3">bmSOFKAENAB</a></div><div class="ttdeci">#define bmSOFKAENAB</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00171">max3421e.h:171</a></div></div>
<div class="ttc" id="max3421e_8h_html_a1cde86dfa0124c81ebffcde9fdf61cc3"><div class="ttname"><a href="max3421e_8h.html#a1cde86dfa0124c81ebffcde9fdf61cc3">bmSOFKAENAB</a></div><div class="ttdeci">#define bmSOFKAENAB</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00166">max3421e.h:166</a></div></div>
<div class="ttc" id="usb__ch9_8h_html_abbad38caa1ca9c52f47adccd3a850aed"><div class="ttname"><a href="usb__ch9_8h.html#abbad38caa1ca9c52f47adccd3a850aed">USB_DESCRIPTOR_STRING</a></div><div class="ttdeci">#define USB_DESCRIPTOR_STRING</div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00065">usb_ch9.h:65</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a1ec9b19c0ed1e66e399ad9cf3c4a6537"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a1ec9b19c0ed1e66e399ad9cf3c4a6537">SETUP_PKT::wLength</a></div><div class="ttdeci">uint16_t wLength</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00178">UsbCore.h:178</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a1b082667723b29243b021a1829bdd8d6"><div class="ttname"><a href="_usb_core_8h.html#a1b082667723b29243b021a1829bdd8d6">USB_SETTLE_DELAY</a></div><div class="ttdeci">#define USB_SETTLE_DELAY</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00095">UsbCore.h:95</a></div></div>
<div class="ttc" id="_usb_core_8h_html_aaadb20392558e23e3eba073e358a4493"><div class="ttname"><a href="_usb_core_8h.html#aaadb20392558e23e3eba073e358a4493">USB_ATTACHED_SUBSTATE_SETTLE</a></div><div class="ttdeci">#define USB_ATTACHED_SUBSTATE_SETTLE</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00108">UsbCore.h:108</a></div></div>
<div class="ttc" id="class_m_a_x3421e_html_aa1e9380222063c40fbf43428f7c50d67"><div class="ttname"><a href="class_m_a_x3421e.html#aa1e9380222063c40fbf43428f7c50d67">MAX3421e::getVbusState</a></div><div class="ttdeci">uint8_t getVbusState(void)</div><div class="ttdef"><b>Definition:</b> <a href="usbhost_8h_source.html#l00105">usbhost.h:105</a></div></div>
<div class="ttc" id="max3421e_8h_html_acdfff8cccb2ba5a3dfaa67241ffe86a4"><div class="ttname"><a href="max3421e_8h.html#acdfff8cccb2ba5a3dfaa67241ffe86a4">bmRCVTOGRD</a></div><div class="ttdeci">#define bmRCVTOGRD</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00204">max3421e.h:204</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a7cb7070e699b7815e3c45dc8f7dd67f1"><div class="ttname"><a href="_usb_core_8h.html#a7cb7070e699b7815e3c45dc8f7dd67f1">USB_DEV_CONFIG_ERROR_DEVICE_INIT_INCOMPLETE</a></div><div class="ttdeci">#define USB_DEV_CONFIG_ERROR_DEVICE_INIT_INCOMPLETE</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00076">UsbCore.h:76</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a857a9899ad4f277faf074c3012e14ffa"><div class="ttname"><a href="_usb_core_8h.html#a857a9899ad4f277faf074c3012e14ffa">USB_RETRY_LIMIT</a></div><div class="ttdeci">#define USB_RETRY_LIMIT</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00094">UsbCore.h:94</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a1ec9b19c0ed1e66e399ad9cf3c4a6537"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a1ec9b19c0ed1e66e399ad9cf3c4a6537">SETUP_PKT::wLength</a></div><div class="ttdeci">uint16_t wLength</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00185">UsbCore.h:185</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a1b082667723b29243b021a1829bdd8d6"><div class="ttname"><a href="_usb_core_8h.html#a1b082667723b29243b021a1829bdd8d6">USB_SETTLE_DELAY</a></div><div class="ttdeci">#define USB_SETTLE_DELAY</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00097">UsbCore.h:97</a></div></div>
<div class="ttc" id="_usb_core_8h_html_aaadb20392558e23e3eba073e358a4493"><div class="ttname"><a href="_usb_core_8h.html#aaadb20392558e23e3eba073e358a4493">USB_ATTACHED_SUBSTATE_SETTLE</a></div><div class="ttdeci">#define USB_ATTACHED_SUBSTATE_SETTLE</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00110">UsbCore.h:110</a></div></div>
<div class="ttc" id="class_m_a_x3421e_html_aa1e9380222063c40fbf43428f7c50d67"><div class="ttname"><a href="class_m_a_x3421e.html#aa1e9380222063c40fbf43428f7c50d67">MAX3421e::getVbusState</a></div><div class="ttdeci">uint8_t getVbusState(void)</div><div class="ttdef"><b>Definition:</b> <a href="usbhost_8h_source.html#l00128">usbhost.h:128</a></div></div>
<div class="ttc" id="max3421e_8h_html_acdfff8cccb2ba5a3dfaa67241ffe86a4"><div class="ttname"><a href="max3421e_8h.html#acdfff8cccb2ba5a3dfaa67241ffe86a4">bmRCVTOGRD</a></div><div class="ttdeci">#define bmRCVTOGRD</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00199">max3421e.h:199</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a7cb7070e699b7815e3c45dc8f7dd67f1"><div class="ttname"><a href="_usb_core_8h.html#a7cb7070e699b7815e3c45dc8f7dd67f1">USB_DEV_CONFIG_ERROR_DEVICE_INIT_INCOMPLETE</a></div><div class="ttdeci">#define USB_DEV_CONFIG_ERROR_DEVICE_INIT_INCOMPLETE</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00078">UsbCore.h:78</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a857a9899ad4f277faf074c3012e14ffa"><div class="ttname"><a href="_usb_core_8h.html#a857a9899ad4f277faf074c3012e14ffa">USB_RETRY_LIMIT</a></div><div class="ttdeci">#define USB_RETRY_LIMIT</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00096">UsbCore.h:96</a></div></div>
<div class="ttc" id="usb__ch9_8h_html_a3572226ee2137c7fbf7487a02b0f560f"><div class="ttname"><a href="usb__ch9_8h.html#a3572226ee2137c7fbf7487a02b0f560f">USB_REQUEST_GET_DESCRIPTOR</a></div><div class="ttdeci">#define USB_REQUEST_GET_DESCRIPTOR</div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00037">usb_ch9.h:37</a></div></div>
<div class="ttc" id="usb__ch9_8h_html_ac6d0566773ed4549fe1a7a932e6c46de"><div class="ttname"><a href="usb__ch9_8h.html#ac6d0566773ed4549fe1a7a932e6c46de">USB_DESCRIPTOR_DEVICE</a></div><div class="ttdeci">#define USB_DESCRIPTOR_DEVICE</div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00063">usb_ch9.h:63</a></div></div>
<div class="ttc" id="max3421e_8h_html_a6864ac74e4ed056f9eb37f1c78bd6c6f"><div class="ttname"><a href="max3421e_8h.html#a6864ac74e4ed056f9eb37f1c78bd6c6f">bmRCVTOG1</a></div><div class="ttdeci">#define bmRCVTOG1</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00186">max3421e.h:186</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a272428aaee5fccec4661bd5457d1928f"><div class="ttname"><a href="_usb_core_8h.html#a272428aaee5fccec4661bd5457d1928f">USB_ERROR_INVALID_MAX_PKT_SIZE</a></div><div class="ttdeci">#define USB_ERROR_INVALID_MAX_PKT_SIZE</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00084">UsbCore.h:84</a></div></div>
<div class="ttc" id="class_u_s_b_html_a31e2c132ec32ffdde94dff72be87c378"><div class="ttname"><a href="class_u_s_b.html#a31e2c132ec32ffdde94dff72be87c378">USB::setConf</a></div><div class="ttdeci">uint8_t setConf(uint8_t addr, uint8_t ep, uint8_t conf_value)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00805">Usb.cpp:805</a></div></div>
<div class="ttc" id="_usb_core_8h_html_ae7fd7c5bb6dc87f44724dde2ad57df87"><div class="ttname"><a href="_usb_core_8h.html#ae7fd7c5bb6dc87f44724dde2ad57df87">USB_STATE_DETACHED</a></div><div class="ttdeci">#define USB_STATE_DETACHED</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00104">UsbCore.h:104</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a0282f9f7a0313f957e02449d7313b7b5"><div class="ttname"><a href="_usb_core_8h.html#a0282f9f7a0313f957e02449d7313b7b5">USB_NUMDEVICES</a></div><div class="ttdeci">#define USB_NUMDEVICES</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00097">UsbCore.h:97</a></div></div>
<div class="ttc" id="max3421e_8h_html_a6864ac74e4ed056f9eb37f1c78bd6c6f"><div class="ttname"><a href="max3421e_8h.html#a6864ac74e4ed056f9eb37f1c78bd6c6f">bmRCVTOG1</a></div><div class="ttdeci">#define bmRCVTOG1</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00181">max3421e.h:181</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a272428aaee5fccec4661bd5457d1928f"><div class="ttname"><a href="_usb_core_8h.html#a272428aaee5fccec4661bd5457d1928f">USB_ERROR_INVALID_MAX_PKT_SIZE</a></div><div class="ttdeci">#define USB_ERROR_INVALID_MAX_PKT_SIZE</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00086">UsbCore.h:86</a></div></div>
<div class="ttc" id="class_u_s_b_html_a31e2c132ec32ffdde94dff72be87c378"><div class="ttname"><a href="class_u_s_b.html#a31e2c132ec32ffdde94dff72be87c378">USB::setConf</a></div><div class="ttdeci">uint8_t setConf(uint8_t addr, uint8_t ep, uint8_t conf_value)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00808">Usb.cpp:808</a></div></div>
<div class="ttc" id="_usb_core_8h_html_ae7fd7c5bb6dc87f44724dde2ad57df87"><div class="ttname"><a href="_usb_core_8h.html#ae7fd7c5bb6dc87f44724dde2ad57df87">USB_STATE_DETACHED</a></div><div class="ttdeci">#define USB_STATE_DETACHED</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00106">UsbCore.h:106</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a0282f9f7a0313f957e02449d7313b7b5"><div class="ttname"><a href="_usb_core_8h.html#a0282f9f7a0313f957e02449d7313b7b5">USB_NUMDEVICES</a></div><div class="ttdeci">#define USB_NUMDEVICES</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00099">UsbCore.h:99</a></div></div>
<div class="ttc" id="_usb_8h_html"><div class="ttname"><a href="_usb_8h.html">Usb.h</a></div></div>
<div class="ttc" id="max3421e_8h_html_afa79b794eadcddfca2f62828dd83134b"><div class="ttname"><a href="max3421e_8h.html#afa79b794eadcddfca2f62828dd83134b">rRCVBC</a></div><div class="ttdeci">#define rRCVBC</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00045">max3421e.h:45</a></div></div>
<div class="ttc" id="max3421e_8h_html_aa128de549704094dadb93daa8875472b"><div class="ttname"><a href="max3421e_8h.html#aa128de549704094dadb93daa8875472b">hrJERR</a></div><div class="ttdeci">#define hrJERR</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00225">max3421e.h:225</a></div></div>
<div class="ttc" id="max3421e_8h_html_afa79b794eadcddfca2f62828dd83134b"><div class="ttname"><a href="max3421e_8h.html#afa79b794eadcddfca2f62828dd83134b">rRCVBC</a></div><div class="ttdeci">#define rRCVBC</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00040">max3421e.h:40</a></div></div>
<div class="ttc" id="max3421e_8h_html_aa128de549704094dadb93daa8875472b"><div class="ttname"><a href="max3421e_8h.html#aa128de549704094dadb93daa8875472b">hrJERR</a></div><div class="ttdeci">#define hrJERR</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00220">max3421e.h:220</a></div></div>
<div class="ttc" id="class_u_s_b_html_a6c3ba3f7e6dccb450267011ce783d7ea"><div class="ttname"><a href="class_u_s_b.html#a6c3ba3f7e6dccb450267011ce783d7ea">USB::setEpInfoEntry</a></div><div class="ttdeci">uint8_t setEpInfoEntry(uint8_t addr, uint8_t epcount, EpInfo *eprecord_ptr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00064">Usb.cpp:64</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_aef77a1e62f78c04a1aad53e8795ec89e"><div class="ttname"><a href="class_u_s_b_device_config.html#aef77a1e62f78c04a1aad53e8795ec89e">USBDeviceConfig::ConfigureDevice</a></div><div class="ttdeci">virtual uint8_t ConfigureDevice(uint8_t parent, uint8_t port, bool lowspeed)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00126">UsbCore.h:126</a></div></div>
<div class="ttc" id="class_m_a_x3421e_html_a07720e9f2311bfa0d66cfae746576946"><div class="ttname"><a href="class_m_a_x3421e.html#a07720e9f2311bfa0d66cfae746576946">MAX3421e::Task</a></div><div class="ttdeci">uint8_t Task()</div><div class="ttdef"><b>Definition:</b> <a href="usbhost_8h_source.html#l00405">usbhost.h:405</a></div></div>
<div class="ttc" id="max3421e_8h_html_aea69e77cdc2b4124122d0fbda7e37019"><div class="ttname"><a href="max3421e_8h.html#aea69e77cdc2b4124122d0fbda7e37019">hrSUCCESS</a></div><div class="ttdeci">#define hrSUCCESS</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00212">max3421e.h:212</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a6fef5305841ac36f67d8ddb0bd9127d4"><div class="ttname"><a href="_usb_core_8h.html#a6fef5305841ac36f67d8ddb0bd9127d4">USB_STATE_ERROR</a></div><div class="ttdeci">#define USB_STATE_ERROR</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00117">UsbCore.h:117</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a9bbd6cf5a93a6433d2eb97c59b9102d5"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a9bbd6cf5a93a6433d2eb97c59b9102d5">SETUP_PKT::bmRequestType</a></div><div class="ttdeci">uint8_t bmRequestType</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00159">UsbCore.h:159</a></div></div>
<div class="ttc" id="max3421e_8h_html_a4a9dee0254d637bcd27ac53fd2a7cb7c"><div class="ttname"><a href="max3421e_8h.html#a4a9dee0254d637bcd27ac53fd2a7cb7c">bmSNDTOGRD</a></div><div class="ttdeci">#define bmSNDTOGRD</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00205">max3421e.h:205</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_aef77a1e62f78c04a1aad53e8795ec89e"><div class="ttname"><a href="class_u_s_b_device_config.html#aef77a1e62f78c04a1aad53e8795ec89e">USBDeviceConfig::ConfigureDevice</a></div><div class="ttdeci">virtual uint8_t ConfigureDevice(uint8_t parent, uint8_t port, bool lowspeed)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00128">UsbCore.h:128</a></div></div>
<div class="ttc" id="class_m_a_x3421e_html_a07720e9f2311bfa0d66cfae746576946"><div class="ttname"><a href="class_m_a_x3421e.html#a07720e9f2311bfa0d66cfae746576946">MAX3421e::Task</a></div><div class="ttdeci">uint8_t Task()</div><div class="ttdef"><b>Definition:</b> <a href="usbhost_8h_source.html#l00482">usbhost.h:482</a></div></div>
<div class="ttc" id="max3421e_8h_html_aea69e77cdc2b4124122d0fbda7e37019"><div class="ttname"><a href="max3421e_8h.html#aea69e77cdc2b4124122d0fbda7e37019">hrSUCCESS</a></div><div class="ttdeci">#define hrSUCCESS</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00207">max3421e.h:207</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a6fef5305841ac36f67d8ddb0bd9127d4"><div class="ttname"><a href="_usb_core_8h.html#a6fef5305841ac36f67d8ddb0bd9127d4">USB_STATE_ERROR</a></div><div class="ttdeci">#define USB_STATE_ERROR</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00119">UsbCore.h:119</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a9bbd6cf5a93a6433d2eb97c59b9102d5"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a9bbd6cf5a93a6433d2eb97c59b9102d5">SETUP_PKT::bmRequestType</a></div><div class="ttdeci">uint8_t bmRequestType</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00166">UsbCore.h:166</a></div></div>
<div class="ttc" id="max3421e_8h_html_a4a9dee0254d637bcd27ac53fd2a7cb7c"><div class="ttname"><a href="max3421e_8h.html#a4a9dee0254d637bcd27ac53fd2a7cb7c">bmSNDTOGRD</a></div><div class="ttdeci">#define bmSNDTOGRD</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00200">max3421e.h:200</a></div></div>
<div class="ttc" id="struct_ep_info_html_a1dea928517c961235eef7b0876e69f10"><div class="ttname"><a href="struct_ep_info.html#a1dea928517c961235eef7b0876e69f10">EpInfo::epAttribs</a></div><div class="ttdeci">uint8_t epAttribs</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00037">address.h:37</a></div></div>
<div class="ttc" id="class_u_s_b_html_a636695a5c3d35cd6b9e31c54edfacd7c"><div class="ttname"><a href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">USB::ctrlReq</a></div><div class="ttdeci">uint8_t ctrlReq(uint8_t addr, uint8_t ep, uint8_t bmReqType, uint8_t bRequest, uint8_t wValLo, uint8_t wValHi, uint16_t wInd, uint16_t total, uint16_t nbytes, uint8_t *dataptr, USBReadParser *p)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00126">Usb.cpp:126</a></div></div>
<div class="ttc" id="usb__ch9_8h_html_aa17b365c4eb8bd2f6a4d4e4fb5f881c7"><div class="ttname"><a href="usb__ch9_8h.html#aa17b365c4eb8bd2f6a4d4e4fb5f881c7">USB_DESCRIPTOR_CONFIGURATION</a></div><div class="ttdeci">#define USB_DESCRIPTOR_CONFIGURATION</div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00064">usb_ch9.h:64</a></div></div>
<div class="ttc" id="class_address_pool_html_aa92d7e8f0f515340ae2dc1679b627056"><div class="ttname"><a href="class_address_pool.html#aa92d7e8f0f515340ae2dc1679b627056">AddressPool::GetUsbDevicePtr</a></div><div class="ttdeci">virtual UsbDevice * GetUsbDevicePtr(uint8_t addr)=0</div></div>
<div class="ttc" id="max3421e_8h_html_a82f316064dd5442d86e1536d3f1d9f7a"><div class="ttname"><a href="max3421e_8h.html#a82f316064dd5442d86e1536d3f1d9f7a">bmHXFRDNIRQ</a></div><div class="ttdeci">#define bmHXFRDNIRQ</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00151">max3421e.h:151</a></div></div>
<div class="ttc" id="class_u_s_b_html_a3aea534daed66b5606fa798df7ad3c47"><div class="ttname"><a href="class_u_s_b.html#a3aea534daed66b5606fa798df7ad3c47">USB::setAddr</a></div><div class="ttdeci">uint8_t setAddr(uint8_t oldaddr, uint8_t ep, uint8_t newaddr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00796">Usb.cpp:796</a></div></div>
<div class="ttc" id="max3421e_8h_html_a82f316064dd5442d86e1536d3f1d9f7a"><div class="ttname"><a href="max3421e_8h.html#a82f316064dd5442d86e1536d3f1d9f7a">bmHXFRDNIRQ</a></div><div class="ttdeci">#define bmHXFRDNIRQ</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00146">max3421e.h:146</a></div></div>
<div class="ttc" id="class_u_s_b_html_a3aea534daed66b5606fa798df7ad3c47"><div class="ttname"><a href="class_u_s_b.html#a3aea534daed66b5606fa798df7ad3c47">USB::setAddr</a></div><div class="ttdeci">uint8_t setAddr(uint8_t oldaddr, uint8_t ep, uint8_t newaddr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00799">Usb.cpp:799</a></div></div>
<div class="ttc" id="class_u_s_b_html_a8ff8cd03496bdcb0ca26f18878ad299d"><div class="ttname"><a href="class_u_s_b.html#a8ff8cd03496bdcb0ca26f18878ad299d">USB::USB</a></div><div class="ttdeci">USB(void)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00025">Usb.cpp:25</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a138c40c59f628eefbe273a8db0a96753"><div class="ttname"><a href="_usb_core_8h.html#a138c40c59f628eefbe273a8db0a96753">USB_STATE_RUNNING</a></div><div class="ttdeci">#define USB_STATE_RUNNING</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00116">UsbCore.h:116</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a138c40c59f628eefbe273a8db0a96753"><div class="ttname"><a href="_usb_core_8h.html#a138c40c59f628eefbe273a8db0a96753">USB_STATE_RUNNING</a></div><div class="ttdeci">#define USB_STATE_RUNNING</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00118">UsbCore.h:118</a></div></div>
<div class="ttc" id="struct_u_s_b___c_o_n_f_i_g_u_r_a_t_i_o_n___d_e_s_c_r_i_p_t_o_r_html"><div class="ttname"><a href="struct_u_s_b___c_o_n_f_i_g_u_r_a_t_i_o_n___d_e_s_c_r_i_p_t_o_r.html">USB_CONFIGURATION_DESCRIPTOR</a></div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00116">usb_ch9.h:116</a></div></div>
<div class="ttc" id="struct_ep_info_html_a9f92be74c75c037b39e2cae1eb49b89b"><div class="ttname"><a href="struct_ep_info.html#a9f92be74c75c037b39e2cae1eb49b89b">EpInfo::epAddr</a></div><div class="ttdeci">uint8_t epAddr</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00033">address.h:33</a></div></div>
<div class="ttc" id="max3421e_8h_html_a5ab905353668c35ea0d9f6989d24b849"><div class="ttname"><a href="max3421e_8h.html#a5ab905353668c35ea0d9f6989d24b849">rRCVFIFO</a></div><div class="ttdeci">#define rRCVFIFO</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00042">max3421e.h:42</a></div></div>
<div class="ttc" id="max3421e_8h_html_a5ab905353668c35ea0d9f6989d24b849"><div class="ttname"><a href="max3421e_8h.html#a5ab905353668c35ea0d9f6989d24b849">rRCVFIFO</a></div><div class="ttdeci">#define rRCVFIFO</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00037">max3421e.h:37</a></div></div>
<div class="ttc" id="address_8h_html_a517dfa014946e2d087d197312234a1de"><div class="ttname"><a href="address_8h.html#a517dfa014946e2d087d197312234a1de">USB_NAK_MAX_POWER</a></div><div class="ttdeci">#define USB_NAK_MAX_POWER</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00027">address.h:27</a></div></div>
<div class="ttc" id="class_address_pool_impl_html_aa3e12dda249ef6acbb27592fc8fe1cba"><div class="ttname"><a href="class_address_pool_impl.html#aa3e12dda249ef6acbb27592fc8fe1cba">AddressPoolImpl::GetUsbDevicePtr</a></div><div class="ttdeci">virtual UsbDevice * GetUsbDevicePtr(uint8_t addr)</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00180">address.h:180</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a299d9f88d294369ea88b48b5026f4c7e"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a299d9f88d294369ea88b48b5026f4c7e">SETUP_PKT::wIndex</a></div><div class="ttdeci">uint16_t wIndex</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00177">UsbCore.h:177</a></div></div>
<div class="ttc" id="max3421e_8h_html_ab59b41d6ecb3a04e5bfc38b0eee4aec0"><div class="ttname"><a href="max3421e_8h.html#ab59b41d6ecb3a04e5bfc38b0eee4aec0">bmBUSRST</a></div><div class="ttdeci">#define bmBUSRST</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00181">max3421e.h:181</a></div></div>
<div class="ttc" id="max3421e_8h_html_a6d59486bc96e76ebb429756a30ddb238"><div class="ttname"><a href="max3421e_8h.html#a6d59486bc96e76ebb429756a30ddb238">tokOUT</a></div><div class="ttdeci">#define tokOUT</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00195">max3421e.h:195</a></div></div>
<div class="ttc" id="max3421e_8h_html_a436aef9c3815daee76dc227dcf15d4e4"><div class="ttname"><a href="max3421e_8h.html#a436aef9c3815daee76dc227dcf15d4e4">tokIN</a></div><div class="ttdeci">#define tokIN</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00194">max3421e.h:194</a></div></div>
<div class="ttc" id="max3421e_8h_html_aa05ee2be883f4b96948e18b0d55ab5c2"><div class="ttname"><a href="max3421e_8h.html#aa05ee2be883f4b96948e18b0d55ab5c2">LSHOST</a></div><div class="ttdeci">#define LSHOST</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00036">max3421e.h:36</a></div></div>
<div class="ttc" id="_usb_core_8h_html_ad8686abbfa0d98547d450fe2a105a588"><div class="ttname"><a href="_usb_core_8h.html#ad8686abbfa0d98547d450fe2a105a588">USB_XFER_TIMEOUT</a></div><div class="ttdeci">#define USB_XFER_TIMEOUT</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00092">UsbCore.h:92</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a299d9f88d294369ea88b48b5026f4c7e"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a299d9f88d294369ea88b48b5026f4c7e">SETUP_PKT::wIndex</a></div><div class="ttdeci">uint16_t wIndex</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00184">UsbCore.h:184</a></div></div>
<div class="ttc" id="max3421e_8h_html_ab59b41d6ecb3a04e5bfc38b0eee4aec0"><div class="ttname"><a href="max3421e_8h.html#ab59b41d6ecb3a04e5bfc38b0eee4aec0">bmBUSRST</a></div><div class="ttdeci">#define bmBUSRST</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00176">max3421e.h:176</a></div></div>
<div class="ttc" id="max3421e_8h_html_a6d59486bc96e76ebb429756a30ddb238"><div class="ttname"><a href="max3421e_8h.html#a6d59486bc96e76ebb429756a30ddb238">tokOUT</a></div><div class="ttdeci">#define tokOUT</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00190">max3421e.h:190</a></div></div>
<div class="ttc" id="max3421e_8h_html_a436aef9c3815daee76dc227dcf15d4e4"><div class="ttname"><a href="max3421e_8h.html#a436aef9c3815daee76dc227dcf15d4e4">tokIN</a></div><div class="ttdeci">#define tokIN</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00189">max3421e.h:189</a></div></div>
<div class="ttc" id="max3421e_8h_html_aa05ee2be883f4b96948e18b0d55ab5c2"><div class="ttname"><a href="max3421e_8h.html#aa05ee2be883f4b96948e18b0d55ab5c2">LSHOST</a></div><div class="ttdeci">#define LSHOST</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00031">max3421e.h:31</a></div></div>
<div class="ttc" id="_usb_core_8h_html_ad8686abbfa0d98547d450fe2a105a588"><div class="ttname"><a href="_usb_core_8h.html#ad8686abbfa0d98547d450fe2a105a588">USB_XFER_TIMEOUT</a></div><div class="ttdeci">#define USB_XFER_TIMEOUT</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00094">UsbCore.h:94</a></div></div>
<div class="ttc" id="struct_ep_info_html"><div class="ttname"><a href="struct_ep_info.html">EpInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00032">address.h:32</a></div></div>
<div class="ttc" id="max3421e_8h_html_a330db4fc764b8ccae5214645c1ee5423"><div class="ttname"><a href="max3421e_8h.html#a330db4fc764b8ccae5214645c1ee5423">rMODE</a></div><div class="ttdeci">#define rMODE</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00165">max3421e.h:165</a></div></div>
<div class="ttc" id="max3421e_8h_html_a330db4fc764b8ccae5214645c1ee5423"><div class="ttname"><a href="max3421e_8h.html#a330db4fc764b8ccae5214645c1ee5423">rMODE</a></div><div class="ttdeci">#define rMODE</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00160">max3421e.h:160</a></div></div>
<div class="ttc" id="class_u_s_b_html_a8ff697d334dc611720419374acd1e5fb"><div class="ttname"><a href="class_u_s_b.html#a8ff697d334dc611720419374acd1e5fb">USB::setUsbTaskState</a></div><div class="ttdeci">void setUsbTaskState(uint8_t state)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00040">Usb.cpp:40</a></div></div>
<div class="ttc" id="class_u_s_b_html_affbc018973a588995457d535b0ac7ee7"><div class="ttname"><a href="class_u_s_b.html#affbc018973a588995457d535b0ac7ee7">USB::outTransfer</a></div><div class="ttdeci">uint8_t outTransfer(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t *data)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00292">Usb.cpp:292</a></div></div>
<div class="ttc" id="max3421e_8h_html_ab44a7968d08016b58d98951059c37076"><div class="ttname"><a href="max3421e_8h.html#ab44a7968d08016b58d98951059c37076">hrNAK</a></div><div class="ttdeci">#define hrNAK</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00216">max3421e.h:216</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a060f3a6423f1e3640aa7b14d5ce72285"><div class="ttname"><a href="_usb_core_8h.html#a060f3a6423f1e3640aa7b14d5ce72285">bmREQ_GET_DESCR</a></div><div class="ttdeci">#define bmREQ_GET_DESCR</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00045">UsbCore.h:45</a></div></div>
<div class="ttc" id="max3421e_8h_html_a1eb6ec372ed236f1db3fbca201bdc28f"><div class="ttname"><a href="max3421e_8h.html#a1eb6ec372ed236f1db3fbca201bdc28f">rSNDBC</a></div><div class="ttdeci">#define rSNDBC</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00046">max3421e.h:46</a></div></div>
<div class="ttc" id="max3421e_8h_html_a246dbd203f68062fab34f2869b76e479"><div class="ttname"><a href="max3421e_8h.html#a246dbd203f68062fab34f2869b76e479">rHRSL</a></div><div class="ttdeci">#define rHRSL</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00201">max3421e.h:201</a></div></div>
<div class="ttc" id="_usb_core_8h_html_ada22633d6de30155a60cb19f6e6452fe"><div class="ttname"><a href="_usb_core_8h.html#ada22633d6de30155a60cb19f6e6452fe">USB_ATTACHED_SUBSTATE_RESET_DEVICE</a></div><div class="ttdeci">#define USB_ATTACHED_SUBSTATE_RESET_DEVICE</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00109">UsbCore.h:109</a></div></div>
<div class="ttc" id="class_m_a_x3421e_html_af136074eab636da10cf50a03d735c1b5"><div class="ttname"><a href="class_m_a_x3421e.html#af136074eab636da10cf50a03d735c1b5">MAX3421e::bytesRd</a></div><div class="ttdeci">uint8_t * bytesRd(uint8_t reg, uint8_t nbytes, uint8_t *data_p)</div><div class="ttdef"><b>Definition:</b> <a href="usbhost_8h_source.html#l00223">usbhost.h:223</a></div></div>
<div class="ttc" id="max3421e_8h_html_a100ac012a99f7cb9305a2eb921741ce3"><div class="ttname"><a href="max3421e_8h.html#a100ac012a99f7cb9305a2eb921741ce3">tokINHS</a></div><div class="ttdeci">#define tokINHS</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00196">max3421e.h:196</a></div></div>
<div class="ttc" id="max3421e_8h_html_a9744878036529e375f3b017b22b1eda2"><div class="ttname"><a href="max3421e_8h.html#a9744878036529e375f3b017b22b1eda2">bmLOWSPEED</a></div><div class="ttdeci">#define bmLOWSPEED</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00169">max3421e.h:169</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_a12bb63558ded5bb6661bb173b07ff391"><div class="ttname"><a href="class_u_s_b_device_config.html#a12bb63558ded5bb6661bb173b07ff391">USBDeviceConfig::ResetHubPort</a></div><div class="ttdeci">virtual void ResetHubPort(uint8_t port)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00142">UsbCore.h:142</a></div></div>
<div class="ttc" id="class_m_a_x3421e_html_a67229549b336fb1c000488382d35aaaa"><div class="ttname"><a href="class_m_a_x3421e.html#a67229549b336fb1c000488382d35aaaa">MAX3421e::bytesWr</a></div><div class="ttdeci">uint8_t * bytesWr(uint8_t reg, uint8_t nbytes, uint8_t *data_p)</div><div class="ttdef"><b>Definition:</b> <a href="usbhost_8h_source.html#l00155">usbhost.h:155</a></div></div>
<div class="ttc" id="class_u_s_b_html_a372ecbe1d23955e8b04b5e95e0e4a833"><div class="ttname"><a href="class_u_s_b.html#a372ecbe1d23955e8b04b5e95e0e4a833">USB::getStrDescr</a></div><div class="ttdeci">uint8_t getStrDescr(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t index, uint16_t langid, uint8_t *dataptr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00791">Usb.cpp:791</a></div></div>
<div class="ttc" id="max3421e_8h_html_ab44a7968d08016b58d98951059c37076"><div class="ttname"><a href="max3421e_8h.html#ab44a7968d08016b58d98951059c37076">hrNAK</a></div><div class="ttdeci">#define hrNAK</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00211">max3421e.h:211</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a060f3a6423f1e3640aa7b14d5ce72285"><div class="ttname"><a href="_usb_core_8h.html#a060f3a6423f1e3640aa7b14d5ce72285">bmREQ_GET_DESCR</a></div><div class="ttdeci">#define bmREQ_GET_DESCR</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00047">UsbCore.h:47</a></div></div>
<div class="ttc" id="max3421e_8h_html_a1eb6ec372ed236f1db3fbca201bdc28f"><div class="ttname"><a href="max3421e_8h.html#a1eb6ec372ed236f1db3fbca201bdc28f">rSNDBC</a></div><div class="ttdeci">#define rSNDBC</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00041">max3421e.h:41</a></div></div>
<div class="ttc" id="max3421e_8h_html_a246dbd203f68062fab34f2869b76e479"><div class="ttname"><a href="max3421e_8h.html#a246dbd203f68062fab34f2869b76e479">rHRSL</a></div><div class="ttdeci">#define rHRSL</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00196">max3421e.h:196</a></div></div>
<div class="ttc" id="_usb_core_8h_html_ada22633d6de30155a60cb19f6e6452fe"><div class="ttname"><a href="_usb_core_8h.html#ada22633d6de30155a60cb19f6e6452fe">USB_ATTACHED_SUBSTATE_RESET_DEVICE</a></div><div class="ttdeci">#define USB_ATTACHED_SUBSTATE_RESET_DEVICE</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00111">UsbCore.h:111</a></div></div>
<div class="ttc" id="class_m_a_x3421e_html_af136074eab636da10cf50a03d735c1b5"><div class="ttname"><a href="class_m_a_x3421e.html#af136074eab636da10cf50a03d735c1b5">MAX3421e::bytesRd</a></div><div class="ttdeci">uint8_t * bytesRd(uint8_t reg, uint8_t nbytes, uint8_t *data_p)</div><div class="ttdef"><b>Definition:</b> <a href="usbhost_8h_source.html#l00283">usbhost.h:283</a></div></div>
<div class="ttc" id="max3421e_8h_html_a100ac012a99f7cb9305a2eb921741ce3"><div class="ttname"><a href="max3421e_8h.html#a100ac012a99f7cb9305a2eb921741ce3">tokINHS</a></div><div class="ttdeci">#define tokINHS</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00191">max3421e.h:191</a></div></div>
<div class="ttc" id="max3421e_8h_html_a9744878036529e375f3b017b22b1eda2"><div class="ttname"><a href="max3421e_8h.html#a9744878036529e375f3b017b22b1eda2">bmLOWSPEED</a></div><div class="ttdeci">#define bmLOWSPEED</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00164">max3421e.h:164</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_a12bb63558ded5bb6661bb173b07ff391"><div class="ttname"><a href="class_u_s_b_device_config.html#a12bb63558ded5bb6661bb173b07ff391">USBDeviceConfig::ResetHubPort</a></div><div class="ttdeci">virtual void ResetHubPort(uint8_t port)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00144">UsbCore.h:144</a></div></div>
<div class="ttc" id="class_m_a_x3421e_html_a67229549b336fb1c000488382d35aaaa"><div class="ttname"><a href="class_m_a_x3421e.html#a67229549b336fb1c000488382d35aaaa">MAX3421e::bytesWr</a></div><div class="ttdeci">uint8_t * bytesWr(uint8_t reg, uint8_t nbytes, uint8_t *data_p)</div><div class="ttdef"><b>Definition:</b> <a href="usbhost_8h_source.html#l00191">usbhost.h:191</a></div></div>
<div class="ttc" id="class_u_s_b_html_a372ecbe1d23955e8b04b5e95e0e4a833"><div class="ttname"><a href="class_u_s_b.html#a372ecbe1d23955e8b04b5e95e0e4a833">USB::getStrDescr</a></div><div class="ttdeci">uint8_t getStrDescr(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t index, uint16_t langid, uint8_t *dataptr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00794">Usb.cpp:794</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fdaef31cc6fe9479955961311ee18ac205f"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fdaef31cc6fe9479955961311ee18ac205f">L</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00096">controllerEnums.h:96</a></div></div>
<div class="ttc" id="usb__ch9_8h_html_ac87659819bfd6491120c819fae2d46bc"><div class="ttname"><a href="usb__ch9_8h.html#ac87659819bfd6491120c819fae2d46bc">USB_REQUEST_SET_ADDRESS</a></div><div class="ttdeci">#define USB_REQUEST_SET_ADDRESS</div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00036">usb_ch9.h:36</a></div></div>
<div class="ttc" id="max3421e_8h_html_acd574bdc815506033ec40fc96320520d"><div class="ttname"><a href="max3421e_8h.html#acd574bdc815506033ec40fc96320520d">tokSETUP</a></div><div class="ttdeci">#define tokSETUP</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00193">max3421e.h:193</a></div></div>
<div class="ttc" id="max3421e_8h_html_aa541c456525254b21a0bc53aadaeee4d"><div class="ttname"><a href="max3421e_8h.html#aa541c456525254b21a0bc53aadaeee4d">rHXFR</a></div><div class="ttdeci">#define rHXFR</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00190">max3421e.h:190</a></div></div>
<div class="ttc" id="max3421e_8h_html_a9ab289252615caa2d19ceb4359d71a44"><div class="ttname"><a href="max3421e_8h.html#a9ab289252615caa2d19ceb4359d71a44">rHIRQ</a></div><div class="ttdeci">#define rHIRQ</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00142">max3421e.h:142</a></div></div>
<div class="ttc" id="max3421e_8h_html_acd574bdc815506033ec40fc96320520d"><div class="ttname"><a href="max3421e_8h.html#acd574bdc815506033ec40fc96320520d">tokSETUP</a></div><div class="ttdeci">#define tokSETUP</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00188">max3421e.h:188</a></div></div>
<div class="ttc" id="max3421e_8h_html_aa541c456525254b21a0bc53aadaeee4d"><div class="ttname"><a href="max3421e_8h.html#aa541c456525254b21a0bc53aadaeee4d">rHXFR</a></div><div class="ttdeci">#define rHXFR</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00185">max3421e.h:185</a></div></div>
<div class="ttc" id="max3421e_8h_html_a9ab289252615caa2d19ceb4359d71a44"><div class="ttname"><a href="max3421e_8h.html#a9ab289252615caa2d19ceb4359d71a44">rHIRQ</a></div><div class="ttdeci">#define rHIRQ</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00137">max3421e.h:137</a></div></div>
<div class="ttc" id="struct_ep_info_html_ac85bff70ad0e5d71e50cb501f4d8caf3"><div class="ttname"><a href="struct_ep_info.html#ac85bff70ad0e5d71e50cb501f4d8caf3">EpInfo::bmSndToggle</a></div><div class="ttdeci">uint8_t bmSndToggle</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00040">address.h:40</a></div></div>
<div class="ttc" id="max3421e_8h_html_aa5d5e67db32d736bab1ee8ef8764f6aa"><div class="ttname"><a href="max3421e_8h.html#aa5d5e67db32d736bab1ee8ef8764f6aa">rSNDFIFO</a></div><div class="ttdeci">#define rSNDFIFO</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00043">max3421e.h:43</a></div></div>
<div class="ttc" id="class_u_s_b_read_parser_html"><div class="ttname"><a href="class_u_s_b_read_parser.html">USBReadParser</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00185">UsbCore.h:185</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a44416ff64fc0e3691f98addac13d4595"><div class="ttname"><a href="_usb_core_8h.html#a44416ff64fc0e3691f98addac13d4595">USB_ERROR_CLASS_INSTANCE_ALREADY_IN_USE</a></div><div class="ttdeci">#define USB_ERROR_CLASS_INSTANCE_ALREADY_IN_USE</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00083">UsbCore.h:83</a></div></div>
<div class="ttc" id="max3421e_8h_html_aa5d5e67db32d736bab1ee8ef8764f6aa"><div class="ttname"><a href="max3421e_8h.html#aa5d5e67db32d736bab1ee8ef8764f6aa">rSNDFIFO</a></div><div class="ttdeci">#define rSNDFIFO</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00038">max3421e.h:38</a></div></div>
<div class="ttc" id="class_u_s_b_read_parser_html"><div class="ttname"><a href="class_u_s_b_read_parser.html">USBReadParser</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00192">UsbCore.h:192</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a44416ff64fc0e3691f98addac13d4595"><div class="ttname"><a href="_usb_core_8h.html#a44416ff64fc0e3691f98addac13d4595">USB_ERROR_CLASS_INSTANCE_ALREADY_IN_USE</a></div><div class="ttdeci">#define USB_ERROR_CLASS_INSTANCE_ALREADY_IN_USE</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00085">UsbCore.h:85</a></div></div>
<div class="ttc" id="struct_usb_device_address_html_a79ed442d6a357907ddb4d1697bd6af5f"><div class="ttname"><a href="struct_usb_device_address.html#a79ed442d6a357907ddb4d1697bd6af5f">UsbDeviceAddress::devAddress</a></div><div class="ttdeci">uint8_t devAddress</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00067">address.h:67</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html">SETUP_PKT</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00156">UsbCore.h:156</a></div></div>
<div class="ttc" id="max3421e_8h_html_a9889c0ed9a43ff3fea670a96c3fbd165"><div class="ttname"><a href="max3421e_8h.html#a9889c0ed9a43ff3fea670a96c3fbd165">tokOUTHS</a></div><div class="ttdeci">#define tokOUTHS</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00197">max3421e.h:197</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html">SETUP_PKT</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00163">UsbCore.h:163</a></div></div>
<div class="ttc" id="max3421e_8h_html_a9889c0ed9a43ff3fea670a96c3fbd165"><div class="ttname"><a href="max3421e_8h.html#a9889c0ed9a43ff3fea670a96c3fbd165">tokOUTHS</a></div><div class="ttdeci">#define tokOUTHS</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00192">max3421e.h:192</a></div></div>
<div class="ttc" id="class_u_s_b_html_a1c1aad8269403bf488e3bc4c79886ce4"><div class="ttname"><a href="class_u_s_b.html#a1c1aad8269403bf488e3bc4c79886ce4">USB::getUsbTaskState</a></div><div class="ttdeci">uint8_t getUsbTaskState(void)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00036">Usb.cpp:36</a></div></div>
<div class="ttc" id="_usb_core_8h_html_afe2fedb4b0ccc89a688c0b4b59691ce0"><div class="ttname"><a href="_usb_core_8h.html#afe2fedb4b0ccc89a688c0b4b59691ce0">USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL</a></div><div class="ttdeci">#define USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00080">UsbCore.h:80</a></div></div>
<div class="ttc" id="_usb_core_8h_html_afe2fedb4b0ccc89a688c0b4b59691ce0"><div class="ttname"><a href="_usb_core_8h.html#afe2fedb4b0ccc89a688c0b4b59691ce0">USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL</a></div><div class="ttdeci">#define USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00082">UsbCore.h:82</a></div></div>
<div class="ttc" id="class_u_s_b_html_ad75d64f648b102fab2bd75e53e1324a4"><div class="ttname"><a href="class_u_s_b.html#ad75d64f648b102fab2bd75e53e1324a4">USB::inTransfer</a></div><div class="ttdeci">uint8_t inTransfer(uint8_t addr, uint8_t ep, uint16_t *nbytesptr, uint8_t *data)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00206">Usb.cpp:206</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a3168cf67661a2716677b9830f30b880c"><div class="ttname"><a href="_usb_core_8h.html#a3168cf67661a2716677b9830f30b880c">USB_STATE_MASK</a></div><div class="ttdeci">#define USB_STATE_MASK</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00102">UsbCore.h:102</a></div></div>
<div class="ttc" id="_usb_core_8h_html_ae9e139d0fd29bb0b3e7afad2f76cd589"><div class="ttname"><a href="_usb_core_8h.html#ae9e139d0fd29bb0b3e7afad2f76cd589">USB_DEV_CONFIG_ERROR_DEVICE_NOT_SUPPORTED</a></div><div class="ttdeci">#define USB_DEV_CONFIG_ERROR_DEVICE_NOT_SUPPORTED</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00075">UsbCore.h:75</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a3168cf67661a2716677b9830f30b880c"><div class="ttname"><a href="_usb_core_8h.html#a3168cf67661a2716677b9830f30b880c">USB_STATE_MASK</a></div><div class="ttdeci">#define USB_STATE_MASK</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00104">UsbCore.h:104</a></div></div>
<div class="ttc" id="_usb_core_8h_html_ae9e139d0fd29bb0b3e7afad2f76cd589"><div class="ttname"><a href="_usb_core_8h.html#ae9e139d0fd29bb0b3e7afad2f76cd589">USB_DEV_CONFIG_ERROR_DEVICE_NOT_SUPPORTED</a></div><div class="ttdeci">#define USB_DEV_CONFIG_ERROR_DEVICE_NOT_SUPPORTED</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00077">UsbCore.h:77</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_ae1bc3bebe3c1e4370e4c88a674d8f094"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#ae1bc3bebe3c1e4370e4c88a674d8f094">SETUP_PKT::ReqType_u</a></div><div class="ttdeci">union SETUP_PKT::@30 ReqType_u</div></div>
<div class="ttc" id="class_u_s_b_html_aff8d1b2009c760bc27fb12762bd3c9b6"><div class="ttname"><a href="class_u_s_b.html#aff8d1b2009c760bc27fb12762bd3c9b6">USB::Task</a></div><div class="ttdeci">void Task(void)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00424">Usb.cpp:424</a></div></div>
<div class="ttc" id="_usb_core_8h_html_aff6ab2376cd29385b20c2b63d4ddd26d"><div class="ttname"><a href="_usb_core_8h.html#aff6ab2376cd29385b20c2b63d4ddd26d">USB_DETACHED_SUBSTATE_ILLEGAL</a></div><div class="ttdeci">#define USB_DETACHED_SUBSTATE_ILLEGAL</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00107">UsbCore.h:107</a></div></div>
<div class="ttc" id="max3421e_8h_html_ab4e9ff11b75e71171814fdab1ff7ce45"><div class="ttname"><a href="max3421e_8h.html#ab4e9ff11b75e71171814fdab1ff7ce45">hrTIMEOUT</a></div><div class="ttdeci">#define hrTIMEOUT</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00226">max3421e.h:226</a></div></div>
<div class="ttc" id="max3421e_8h_html_ac6d86063950bdbf438d358c907aefbfa"><div class="ttname"><a href="max3421e_8h.html#ac6d86063950bdbf438d358c907aefbfa">rPERADDR</a></div><div class="ttdeci">#define rPERADDR</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00177">max3421e.h:177</a></div></div>
<div class="ttc" id="max3421e_8h_html_ad780c154c3761f68e0e397e4fd8f9a07"><div class="ttname"><a href="max3421e_8h.html#ad780c154c3761f68e0e397e4fd8f9a07">bmRCVDAVIRQ</a></div><div class="ttdeci">#define bmRCVDAVIRQ</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00146">max3421e.h:146</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a311f11b79c4020d771cd6930e0a3223d"><div class="ttname"><a href="_usb_core_8h.html#a311f11b79c4020d771cd6930e0a3223d">USB_ATTACHED_SUBSTATE_WAIT_RESET_COMPLETE</a></div><div class="ttdeci">#define USB_ATTACHED_SUBSTATE_WAIT_RESET_COMPLETE</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00110">UsbCore.h:110</a></div></div>
<div class="ttc" id="class_m_a_x3421e_html_a53f1d4d8d100a709fd6b37b5e6f0829e"><div class="ttname"><a href="class_m_a_x3421e.html#a53f1d4d8d100a709fd6b37b5e6f0829e">MAX3421e::regWr</a></div><div class="ttdeci">void regWr(uint8_t reg, uint8_t data)</div><div class="ttdef"><b>Definition:</b> <a href="usbhost_8h_source.html#l00130">usbhost.h:130</a></div></div>
<div class="ttc" id="max3421e_8h_html_aca6a8aa4f0aebbe07c5e175572a92ef7"><div class="ttname"><a href="max3421e_8h.html#aca6a8aa4f0aebbe07c5e175572a92ef7">bmRCVTOG0</a></div><div class="ttdeci">#define bmRCVTOG0</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00185">max3421e.h:185</a></div></div>
<div class="ttc" id="_usb_core_8h_html_aff6ab2376cd29385b20c2b63d4ddd26d"><div class="ttname"><a href="_usb_core_8h.html#aff6ab2376cd29385b20c2b63d4ddd26d">USB_DETACHED_SUBSTATE_ILLEGAL</a></div><div class="ttdeci">#define USB_DETACHED_SUBSTATE_ILLEGAL</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00109">UsbCore.h:109</a></div></div>
<div class="ttc" id="max3421e_8h_html_ab4e9ff11b75e71171814fdab1ff7ce45"><div class="ttname"><a href="max3421e_8h.html#ab4e9ff11b75e71171814fdab1ff7ce45">hrTIMEOUT</a></div><div class="ttdeci">#define hrTIMEOUT</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00221">max3421e.h:221</a></div></div>
<div class="ttc" id="max3421e_8h_html_ac6d86063950bdbf438d358c907aefbfa"><div class="ttname"><a href="max3421e_8h.html#ac6d86063950bdbf438d358c907aefbfa">rPERADDR</a></div><div class="ttdeci">#define rPERADDR</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00172">max3421e.h:172</a></div></div>
<div class="ttc" id="max3421e_8h_html_ad780c154c3761f68e0e397e4fd8f9a07"><div class="ttname"><a href="max3421e_8h.html#ad780c154c3761f68e0e397e4fd8f9a07">bmRCVDAVIRQ</a></div><div class="ttdeci">#define bmRCVDAVIRQ</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00141">max3421e.h:141</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a311f11b79c4020d771cd6930e0a3223d"><div class="ttname"><a href="_usb_core_8h.html#a311f11b79c4020d771cd6930e0a3223d">USB_ATTACHED_SUBSTATE_WAIT_RESET_COMPLETE</a></div><div class="ttdeci">#define USB_ATTACHED_SUBSTATE_WAIT_RESET_COMPLETE</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00112">UsbCore.h:112</a></div></div>
<div class="ttc" id="class_m_a_x3421e_html_a53f1d4d8d100a709fd6b37b5e6f0829e"><div class="ttname"><a href="class_m_a_x3421e.html#a53f1d4d8d100a709fd6b37b5e6f0829e">MAX3421e::regWr</a></div><div class="ttdeci">void regWr(uint8_t reg, uint8_t data)</div><div class="ttdef"><b>Definition:</b> <a href="usbhost_8h_source.html#l00153">usbhost.h:153</a></div></div>
<div class="ttc" id="max3421e_8h_html_aca6a8aa4f0aebbe07c5e175572a92ef7"><div class="ttname"><a href="max3421e_8h.html#aca6a8aa4f0aebbe07c5e175572a92ef7">bmRCVTOG0</a></div><div class="ttdeci">#define bmRCVTOG0</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00180">max3421e.h:180</a></div></div>
<div class="ttc" id="struct_usb_device_html_a828814f5231b866ac665a24ec5edaa3a"><div class="ttname"><a href="struct_usb_device.html#a828814f5231b866ac665a24ec5edaa3a">UsbDevice::epcount</a></div><div class="ttdeci">uint8_t epcount</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00078">address.h:78</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a15370eb665cdded5514e69ca58d9f39d"><div class="ttname"><a href="_usb_core_8h.html#a15370eb665cdded5514e69ca58d9f39d">USB_ERROR_OUT_OF_ADDRESS_SPACE_IN_POOL</a></div><div class="ttdeci">#define USB_ERROR_OUT_OF_ADDRESS_SPACE_IN_POOL</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00078">UsbCore.h:78</a></div></div>
<div class="ttc" id="_usb_core_8h_html_aac8c844e6a20f42298d70e4438a029e5"><div class="ttname"><a href="_usb_core_8h.html#aac8c844e6a20f42298d70e4438a029e5">USB_STATE_CONFIGURING</a></div><div class="ttdeci">#define USB_STATE_CONFIGURING</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00115">UsbCore.h:115</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a15370eb665cdded5514e69ca58d9f39d"><div class="ttname"><a href="_usb_core_8h.html#a15370eb665cdded5514e69ca58d9f39d">USB_ERROR_OUT_OF_ADDRESS_SPACE_IN_POOL</a></div><div class="ttdeci">#define USB_ERROR_OUT_OF_ADDRESS_SPACE_IN_POOL</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00080">UsbCore.h:80</a></div></div>
<div class="ttc" id="_usb_core_8h_html_aac8c844e6a20f42298d70e4438a029e5"><div class="ttname"><a href="_usb_core_8h.html#aac8c844e6a20f42298d70e4438a029e5">USB_STATE_CONFIGURING</a></div><div class="ttdeci">#define USB_STATE_CONFIGURING</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00117">UsbCore.h:117</a></div></div>
<div class="ttc" id="class_u_s_b_html_a343d4b321cf8e99f0504cb04c7ce8b10"><div class="ttname"><a href="class_u_s_b.html#a343d4b321cf8e99f0504cb04c7ce8b10">USB::dispatchPkt</a></div><div class="ttdeci">uint8_t dispatchPkt(uint8_t token, uint8_t ep, uint16_t nak_limit)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00376">Usb.cpp:376</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_a3706cf6b18785aff823171e280bab738"><div class="ttname"><a href="class_u_s_b_device_config.html#a3706cf6b18785aff823171e280bab738">USBDeviceConfig::Init</a></div><div class="ttdeci">virtual uint8_t Init(uint8_t parent, uint8_t port, bool lowspeed)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00122">UsbCore.h:122</a></div></div>
<div class="ttc" id="max3421e_8h_html_a4834ae7378471b63b9a1985c6294006f"><div class="ttname"><a href="max3421e_8h.html#a4834ae7378471b63b9a1985c6294006f">bmSNDTOG0</a></div><div class="ttdeci">#define bmSNDTOG0</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00187">max3421e.h:187</a></div></div>
<div class="ttc" id="class_m_a_x3421e_html_a508fe70d1983cdaa71cce85ea9c75ec1"><div class="ttname"><a href="class_m_a_x3421e.html#a508fe70d1983cdaa71cce85ea9c75ec1">MAX3421e::regRd</a></div><div class="ttdeci">uint8_t regRd(uint8_t reg)</div><div class="ttdef"><b>Definition:</b> <a href="usbhost_8h_source.html#l00197">usbhost.h:197</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_a3706cf6b18785aff823171e280bab738"><div class="ttname"><a href="class_u_s_b_device_config.html#a3706cf6b18785aff823171e280bab738">USBDeviceConfig::Init</a></div><div class="ttdeci">virtual uint8_t Init(uint8_t parent, uint8_t port, bool lowspeed)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00124">UsbCore.h:124</a></div></div>
<div class="ttc" id="max3421e_8h_html_a4834ae7378471b63b9a1985c6294006f"><div class="ttname"><a href="max3421e_8h.html#a4834ae7378471b63b9a1985c6294006f">bmSNDTOG0</a></div><div class="ttdeci">#define bmSNDTOG0</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00182">max3421e.h:182</a></div></div>
<div class="ttc" id="class_m_a_x3421e_html_a508fe70d1983cdaa71cce85ea9c75ec1"><div class="ttname"><a href="class_m_a_x3421e.html#a508fe70d1983cdaa71cce85ea9c75ec1">MAX3421e::regRd</a></div><div class="ttdeci">uint8_t regRd(uint8_t reg)</div><div class="ttdef"><b>Definition:</b> <a href="usbhost_8h_source.html#l00249">usbhost.h:249</a></div></div>
<div class="ttc" id="struct_ep_info_html_aa2ca775b63736df4008e88da7dd4dddb"><div class="ttname"><a href="struct_ep_info.html#aa2ca775b63736df4008e88da7dd4dddb">EpInfo::maxPktSize</a></div><div class="ttdeci">uint8_t maxPktSize</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00034">address.h:34</a></div></div>
<div class="ttc" id="class_u_s_b_html_a66ab8f5eda239e761d5a48741ea1f9d4"><div class="ttname"><a href="class_u_s_b.html#a66ab8f5eda239e761d5a48741ea1f9d4">USB::GetAddressPool</a></div><div class="ttdeci">AddressPool &amp; GetAddressPool()</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00206">UsbCore.h:206</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a52c379fe7e22f53d3e3d47d65735fa3b"><div class="ttname"><a href="_usb_core_8h.html#a52c379fe7e22f53d3e3d47d65735fa3b">USB_ERROR_INVALID_ARGUMENT</a></div><div class="ttdeci">#define USB_ERROR_INVALID_ARGUMENT</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00082">UsbCore.h:82</a></div></div>
<div class="ttc" id="class_u_s_b_html_a66ab8f5eda239e761d5a48741ea1f9d4"><div class="ttname"><a href="class_u_s_b.html#a66ab8f5eda239e761d5a48741ea1f9d4">USB::GetAddressPool</a></div><div class="ttdeci">AddressPool &amp; GetAddressPool()</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00213">UsbCore.h:213</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a52c379fe7e22f53d3e3d47d65735fa3b"><div class="ttname"><a href="_usb_core_8h.html#a52c379fe7e22f53d3e3d47d65735fa3b">USB_ERROR_INVALID_ARGUMENT</a></div><div class="ttdeci">#define USB_ERROR_INVALID_ARGUMENT</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00084">UsbCore.h:84</a></div></div>
<div class="ttc" id="class_u_s_b_html_af4008dfc1c2d15c23cf8a7815cc17765"><div class="ttname"><a href="class_u_s_b.html#af4008dfc1c2d15c23cf8a7815cc17765">USB::Configuring</a></div><div class="ttdeci">uint8_t Configuring(uint8_t parent, uint8_t port, bool lowspeed)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00652">Usb.cpp:652</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_aa99db9f696b4d9cbe9c6beaa4f993c0a"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#aa99db9f696b4d9cbe9c6beaa4f993c0a">SETUP_PKT::wVal_u</a></div><div class="ttdeci">union SETUP_PKT::@27 wVal_u</div></div>
<div class="ttc" id="macros_8h_html_a3b6ba9344d4ae0847095896841587862"><div class="ttname"><a href="macros_8h.html#a3b6ba9344d4ae0847095896841587862">USBTRACE3</a></div><div class="ttdeci">#define USBTRACE3(s, r, l)</div><div class="ttdef"><b>Definition:</b> <a href="macros_8h_source.html#l00078">macros.h:78</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a321b931277d6ce278416dc5d74059016"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a321b931277d6ce278416dc5d74059016">SETUP_PKT::bRequest</a></div><div class="ttdeci">uint8_t bRequest</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00167">UsbCore.h:167</a></div></div>
<div class="ttc" id="max3421e_8h_html_a3cb02fdd2d36f8a755c4b1946a0b0063"><div class="ttname"><a href="max3421e_8h.html#a3cb02fdd2d36f8a755c4b1946a0b0063">SE0</a></div><div class="ttdeci">#define SE0</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00033">max3421e.h:33</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a321b931277d6ce278416dc5d74059016"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a321b931277d6ce278416dc5d74059016">SETUP_PKT::bRequest</a></div><div class="ttdeci">uint8_t bRequest</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00174">UsbCore.h:174</a></div></div>
<div class="ttc" id="max3421e_8h_html_a3cb02fdd2d36f8a755c4b1946a0b0063"><div class="ttname"><a href="max3421e_8h.html#a3cb02fdd2d36f8a755c4b1946a0b0063">SE0</a></div><div class="ttdeci">#define SE0</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00028">max3421e.h:28</a></div></div>
<div class="ttc" id="class_address_pool_impl_html_a3d59841faa336c359b0736ca45988ce5"><div class="ttname"><a href="class_address_pool_impl.html#a3d59841faa336c359b0736ca45988ce5">AddressPoolImpl::FreeAddress</a></div><div class="ttdeci">virtual void FreeAddress(uint8_t addr)</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00254">address.h:254</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_a61e301efedae55c6ac12c6cce154e432"><div class="ttname"><a href="class_u_s_b_device_config.html#a61e301efedae55c6ac12c6cce154e432">USBDeviceConfig::Release</a></div><div class="ttdeci">virtual uint8_t Release()</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00130">UsbCore.h:130</a></div></div>
<div class="ttc" id="max3421e_8h_html_a042cc701398502fb70b8793ed76394ce"><div class="ttname"><a href="max3421e_8h.html#a042cc701398502fb70b8793ed76394ce">bmFRAMEIRQ</a></div><div class="ttdeci">#define bmFRAMEIRQ</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00150">max3421e.h:150</a></div></div>
<div class="ttc" id="max3421e_8h_html_a651e9347e706d3cb16357c656a7e9c8f"><div class="ttname"><a href="max3421e_8h.html#a651e9347e706d3cb16357c656a7e9c8f">hrTOGERR</a></div><div class="ttdeci">#define hrTOGERR</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00218">max3421e.h:218</a></div></div>
<div class="ttc" id="max3421e_8h_html_a5c3d7b0a5b0933cfc0183cd36ea91f16"><div class="ttname"><a href="max3421e_8h.html#a5c3d7b0a5b0933cfc0183cd36ea91f16">SE1</a></div><div class="ttdeci">#define SE1</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00034">max3421e.h:34</a></div></div>
<div class="ttc" id="max3421e_8h_html_acddbcc3176885ece538a7e71665c27be"><div class="ttname"><a href="max3421e_8h.html#acddbcc3176885ece538a7e71665c27be">rSUDFIFO</a></div><div class="ttdeci">#define rSUDFIFO</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00044">max3421e.h:44</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_a61e301efedae55c6ac12c6cce154e432"><div class="ttname"><a href="class_u_s_b_device_config.html#a61e301efedae55c6ac12c6cce154e432">USBDeviceConfig::Release</a></div><div class="ttdeci">virtual uint8_t Release()</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00132">UsbCore.h:132</a></div></div>
<div class="ttc" id="max3421e_8h_html_a042cc701398502fb70b8793ed76394ce"><div class="ttname"><a href="max3421e_8h.html#a042cc701398502fb70b8793ed76394ce">bmFRAMEIRQ</a></div><div class="ttdeci">#define bmFRAMEIRQ</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00145">max3421e.h:145</a></div></div>
<div class="ttc" id="max3421e_8h_html_a651e9347e706d3cb16357c656a7e9c8f"><div class="ttname"><a href="max3421e_8h.html#a651e9347e706d3cb16357c656a7e9c8f">hrTOGERR</a></div><div class="ttdeci">#define hrTOGERR</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00213">max3421e.h:213</a></div></div>
<div class="ttc" id="max3421e_8h_html_a5c3d7b0a5b0933cfc0183cd36ea91f16"><div class="ttname"><a href="max3421e_8h.html#a5c3d7b0a5b0933cfc0183cd36ea91f16">SE1</a></div><div class="ttdeci">#define SE1</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00029">max3421e.h:29</a></div></div>
<div class="ttc" id="max3421e_8h_html_acddbcc3176885ece538a7e71665c27be"><div class="ttname"><a href="max3421e_8h.html#acddbcc3176885ece538a7e71665c27be">rSUDFIFO</a></div><div class="ttdeci">#define rSUDFIFO</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00039">max3421e.h:39</a></div></div>
<div class="ttc" id="class_address_pool_impl_html_a14657183c73c631754b31bd0cc588c87"><div class="ttname"><a href="class_address_pool_impl.html#a14657183c73c631754b31bd0cc588c87">AddressPoolImpl::AllocAddress</a></div><div class="ttdeci">virtual uint8_t AllocAddress(uint8_t parent, bool is_hub=false, uint8_t port=0)</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00202">address.h:202</a></div></div>
<div class="ttc" id="_usb_core_8h_html_af4965e768593007eacde7644979f56da"><div class="ttname"><a href="_usb_core_8h.html#af4965e768593007eacde7644979f56da">bmREQ_SET</a></div><div class="ttdeci">#define bmREQ_SET</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00046">UsbCore.h:46</a></div></div>
<div class="ttc" id="_usb_core_8h_html_af4965e768593007eacde7644979f56da"><div class="ttname"><a href="_usb_core_8h.html#af4965e768593007eacde7644979f56da">bmREQ_SET</a></div><div class="ttdeci">#define bmREQ_SET</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00048">UsbCore.h:48</a></div></div>
<div class="ttc" id="struct_usb_device_html_a351d1099501c36d9f301495acefd5f99"><div class="ttname"><a href="struct_usb_device.html#a351d1099501c36d9f301495acefd5f99">UsbDevice::address</a></div><div class="ttdeci">UsbDeviceAddress address</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00077">address.h:77</a></div></div>
<div class="ttc" id="usb__ch9_8h_html_aadef005acc40340955d34d9767ef297c"><div class="ttname"><a href="usb__ch9_8h.html#aadef005acc40340955d34d9767ef297c">USB_REQUEST_SET_CONFIGURATION</a></div><div class="ttdeci">#define USB_REQUEST_SET_CONFIGURATION</div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00040">usb_ch9.h:40</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a3708f4e8166d5d099e1982aa956eacce"><div class="ttname"><a href="_usb_core_8h.html#a3708f4e8166d5d099e1982aa956eacce">USB_DETACHED_SUBSTATE_WAIT_FOR_DEVICE</a></div><div class="ttdeci">#define USB_DETACHED_SUBSTATE_WAIT_FOR_DEVICE</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00106">UsbCore.h:106</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a04ea2d151f9edb6575fc159a58f1e443"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a04ea2d151f9edb6575fc159a58f1e443">SETUP_PKT::wValueHi</a></div><div class="ttdeci">uint8_t wValueHi</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00174">UsbCore.h:174</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a3708f4e8166d5d099e1982aa956eacce"><div class="ttname"><a href="_usb_core_8h.html#a3708f4e8166d5d099e1982aa956eacce">USB_DETACHED_SUBSTATE_WAIT_FOR_DEVICE</a></div><div class="ttdeci">#define USB_DETACHED_SUBSTATE_WAIT_FOR_DEVICE</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00108">UsbCore.h:108</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a04ea2d151f9edb6575fc159a58f1e443"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a04ea2d151f9edb6575fc159a58f1e443">SETUP_PKT::wValueHi</a></div><div class="ttdeci">uint8_t wValueHi</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00181">UsbCore.h:181</a></div></div>
<div class="ttc" id="class_u_s_b_html_a5eb0d31372d26f0015a0d7be0b9ff4e1"><div class="ttname"><a href="class_u_s_b.html#a5eb0d31372d26f0015a0d7be0b9ff4e1">USB::DefaultAddressing</a></div><div class="ttdeci">uint8_t DefaultAddressing(uint8_t parent, uint8_t port, bool lowspeed)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00530">Usb.cpp:530</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a60a744d0f1386e4b28053a41bd6a958f"><div class="ttname"><a href="_usb_core_8h.html#a60a744d0f1386e4b28053a41bd6a958f">USB_DETACHED_SUBSTATE_INITIALIZE</a></div><div class="ttdeci">#define USB_DETACHED_SUBSTATE_INITIALIZE</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00105">UsbCore.h:105</a></div></div>
<div class="ttc" id="class_u_s_b_html_a193e63c149fad46adabd77ceb09b2b24"><div class="ttname"><a href="class_u_s_b.html#a193e63c149fad46adabd77ceb09b2b24">USB::getDevDescr</a></div><div class="ttdeci">uint8_t getDevDescr(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t *dataptr)</div><div class="ttdoc">defined(USB_METHODS_INLINE) </div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00761">Usb.cpp:761</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a2d69537e663e7d5f188004f0d25ec0cc"><div class="ttname"><a href="_usb_core_8h.html#a2d69537e663e7d5f188004f0d25ec0cc">USB_ATTACHED_SUBSTATE_WAIT_SOF</a></div><div class="ttdeci">#define USB_ATTACHED_SUBSTATE_WAIT_SOF</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00111">UsbCore.h:111</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a68c9436c00560f96e044052c3fb681e9"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a68c9436c00560f96e044052c3fb681e9">SETUP_PKT::wValueLo</a></div><div class="ttdeci">uint8_t wValueLo</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00173">UsbCore.h:173</a></div></div>
<div class="ttc" id="max3421e_8h_html_aee283b6d075581cdff38a6054e6f63a2"><div class="ttname"><a href="max3421e_8h.html#aee283b6d075581cdff38a6054e6f63a2">bmSNDTOG1</a></div><div class="ttdeci">#define bmSNDTOG1</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00188">max3421e.h:188</a></div></div>
<div class="ttc" id="class_u_s_b_html_ac681c6c98e1641f705bc14d670a2663a"><div class="ttname"><a href="class_u_s_b.html#ac681c6c98e1641f705bc14d670a2663a">USB::ReleaseDevice</a></div><div class="ttdeci">uint8_t ReleaseDevice(uint8_t addr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00746">Usb.cpp:746</a></div></div>
<div class="ttc" id="_usb_core_8h_html_ae691ccb027b8e281ac87522a0e66aaa7"><div class="ttname"><a href="_usb_core_8h.html#ae691ccb027b8e281ac87522a0e66aaa7">USB_ERROR_TRANSFER_TIMEOUT</a></div><div class="ttdeci">#define USB_ERROR_TRANSFER_TIMEOUT</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00090">UsbCore.h:90</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a7cad2f024e98c4b2b1b52df76b10c01e"><div class="ttname"><a href="_usb_core_8h.html#a7cad2f024e98c4b2b1b52df76b10c01e">USB_ERROR_CONFIG_REQUIRES_ADDITIONAL_RESET</a></div><div class="ttdeci">#define USB_ERROR_CONFIG_REQUIRES_ADDITIONAL_RESET</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00086">UsbCore.h:86</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a60a744d0f1386e4b28053a41bd6a958f"><div class="ttname"><a href="_usb_core_8h.html#a60a744d0f1386e4b28053a41bd6a958f">USB_DETACHED_SUBSTATE_INITIALIZE</a></div><div class="ttdeci">#define USB_DETACHED_SUBSTATE_INITIALIZE</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00107">UsbCore.h:107</a></div></div>
<div class="ttc" id="class_u_s_b_html_a193e63c149fad46adabd77ceb09b2b24"><div class="ttname"><a href="class_u_s_b.html#a193e63c149fad46adabd77ceb09b2b24">USB::getDevDescr</a></div><div class="ttdeci">uint8_t getDevDescr(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t *dataptr)</div><div class="ttdoc">defined(USB_METHODS_INLINE) </div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00764">Usb.cpp:764</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a2d69537e663e7d5f188004f0d25ec0cc"><div class="ttname"><a href="_usb_core_8h.html#a2d69537e663e7d5f188004f0d25ec0cc">USB_ATTACHED_SUBSTATE_WAIT_SOF</a></div><div class="ttdeci">#define USB_ATTACHED_SUBSTATE_WAIT_SOF</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00113">UsbCore.h:113</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a68c9436c00560f96e044052c3fb681e9"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a68c9436c00560f96e044052c3fb681e9">SETUP_PKT::wValueLo</a></div><div class="ttdeci">uint8_t wValueLo</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00180">UsbCore.h:180</a></div></div>
<div class="ttc" id="max3421e_8h_html_aee283b6d075581cdff38a6054e6f63a2"><div class="ttname"><a href="max3421e_8h.html#aee283b6d075581cdff38a6054e6f63a2">bmSNDTOG1</a></div><div class="ttdeci">#define bmSNDTOG1</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00183">max3421e.h:183</a></div></div>
<div class="ttc" id="class_u_s_b_html_ac681c6c98e1641f705bc14d670a2663a"><div class="ttname"><a href="class_u_s_b.html#ac681c6c98e1641f705bc14d670a2663a">USB::ReleaseDevice</a></div><div class="ttdeci">uint8_t ReleaseDevice(uint8_t addr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00749">Usb.cpp:749</a></div></div>
<div class="ttc" id="_usb_core_8h_html_ae691ccb027b8e281ac87522a0e66aaa7"><div class="ttname"><a href="_usb_core_8h.html#ae691ccb027b8e281ac87522a0e66aaa7">USB_ERROR_TRANSFER_TIMEOUT</a></div><div class="ttdeci">#define USB_ERROR_TRANSFER_TIMEOUT</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00092">UsbCore.h:92</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a7cad2f024e98c4b2b1b52df76b10c01e"><div class="ttname"><a href="_usb_core_8h.html#a7cad2f024e98c4b2b1b52df76b10c01e">USB_ERROR_CONFIG_REQUIRES_ADDITIONAL_RESET</a></div><div class="ttdeci">#define USB_ERROR_CONFIG_REQUIRES_ADDITIONAL_RESET</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00088">UsbCore.h:88</a></div></div>
<div class="ttc" id="struct_u_s_b___d_e_v_i_c_e___d_e_s_c_r_i_p_t_o_r_html"><div class="ttname"><a href="struct_u_s_b___d_e_v_i_c_e___d_e_s_c_r_i_p_t_o_r.html">USB_DEVICE_DESCRIPTOR</a></div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00098">usb_ch9.h:98</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.7
</a> 1.8.9.1
</small></address>
</body>
</html>

File diff suppressed because one or more lines are too long

View file

@ -1,51 +1,51 @@
<map id="Usb.h" name="Usb.h">
<area shape="rect" id="node2" href="$adk_8h.html" title="adk.h" alt="" coords="98,79,152,104"/>
<area shape="rect" id="node4" href="$_b_t_d_8h.html" title="BTD.h" alt="" coords="311,79,370,104"/>
<area shape="rect" id="node15" href="$hid_8h.html" title="hid.h" alt="" coords="554,152,604,177"/>
<area shape="rect" id="node25" href="$hidusagestr_8h.html" title="hidusagestr.h" alt="" coords="657,79,758,104"/>
<area shape="rect" id="node27" href="$cdcacm_8h.html" title="cdcacm.h" alt="" coords="799,79,877,104"/>
<area shape="rect" id="node30" href="$cdcftdi_8h.html" title="cdcftdi.h" alt="" coords="901,79,972,104"/>
<area shape="rect" id="node32" href="$masstorage_8h.html" title="masstorage.h" alt="" coords="996,79,1098,104"/>
<area shape="rect" id="node34" href="$max___l_c_d_8h.html" title="max_LCD.h" alt="" coords="1123,79,1215,104"/>
<area shape="rect" id="node36" href="$message_8cpp.html" title="message.cpp" alt="" coords="1238,79,1339,104"/>
<area shape="rect" id="node37" href="$parsetools_8cpp.html" title="parsetools.cpp" alt="" coords="1363,79,1471,104"/>
<area shape="rect" id="node38" href="$_p_s3_u_s_b_8h.html" title="PS3USB.h" alt="" coords="1494,79,1579,104"/>
<area shape="rect" id="node40" href="$_p_s4_parser_8h.html" title="PS4Parser.h" alt="" coords="1247,225,1343,251"/>
<area shape="rect" id="node42" href="$_usb_8cpp.html" title="Usb.cpp" alt="" coords="1654,79,1724,104"/>
<area shape="rect" id="node43" href="$usbhub_8h.html" title="usbhub.h" alt="" coords="1748,79,1824,104"/>
<area shape="rect" id="node45" href="$_x_b_o_x_o_l_d_8h.html" title="XBOXOLD.h" alt="" coords="1848,79,1945,104"/>
<area shape="rect" id="node47" href="$_x_b_o_x_r_e_c_v_8h.html" title="XBOXRECV.h" alt="" coords="1976,79,2081,104"/>
<area shape="rect" id="node49" href="$_x_b_o_x_u_s_b_8h.html" title="XBOXUSB.h" alt="" coords="2119,79,2216,104"/>
<area shape="rect" id="node3" href="$adk_8cpp.html" title="adk.cpp" alt="" coords="5,152,73,177"/>
<area shape="rect" id="node5" href="$_b_t_d_8cpp.html" title="BTD.cpp" alt="" coords="97,152,171,177"/>
<area shape="rect" id="node6" href="$_b_t_h_i_d_8h.html" title="BTHID.h" alt="" coords="456,299,529,324"/>
<area shape="rect" id="node9" href="$_p_s3_b_t_8h.html" title="PS3BT.h" alt="" coords="256,152,329,177"/>
<area shape="rect" id="node11" href="$_s_p_p_8h.html" title="SPP.h" alt="" coords="360,152,417,177"/>
<area shape="rect" id="node13" href="$_wii_8h.html" title="Wii.h" alt="" coords="451,152,502,177"/>
<area shape="rect" id="node7" href="$_b_t_h_i_d_8cpp.html" title="BTHID.cpp" alt="" coords="449,372,536,397"/>
<area shape="rect" id="node8" href="$_p_s4_b_t_8h.html" title="PS4BT.h" alt="" coords="885,372,959,397"/>
<area shape="rect" id="node10" href="$_p_s3_b_t_8cpp.html" title="PS3BT.cpp" alt="" coords="245,225,332,251"/>
<area shape="rect" id="node12" href="$_s_p_p_8cpp.html" title="SPP.cpp" alt="" coords="357,225,428,251"/>
<area shape="rect" id="node14" href="$_wii_8cpp.html" title="Wii.cpp" alt="" coords="452,225,517,251"/>
<area shape="rect" id="node16" href="$hidboot_8h.html" title="hidboot.h" alt="" coords="541,225,617,251"/>
<area shape="rect" id="node18" href="$hid_8cpp.html" title="hid.cpp" alt="" coords="642,225,706,251"/>
<area shape="rect" id="node19" href="$hidescriptorparser_8h.html" title="hidescriptorparser.h" alt="" coords="730,225,869,251"/>
<area shape="rect" id="node21" href="$hiduniversal_8h.html" title="hiduniversal.h" alt="" coords="961,225,1064,251"/>
<area shape="rect" id="node17" href="$hidboot_8cpp.html" title="hidboot.cpp" alt="" coords="553,299,643,324"/>
<area shape="rect" id="node20" href="$hidescriptorparser_8cpp.html" title="hidescriptorparser.cpp" alt="" coords="704,299,857,324"/>
<area shape="rect" id="node22" href="$hiduniversal_8cpp.html" title="hiduniversal.cpp" alt="" coords="881,299,998,324"/>
<area shape="rect" id="node23" href="$_p_s4_u_s_b_8h.html" title="PS4USB.h" alt="" coords="1126,299,1211,324"/>
<area shape="rect" id="node24" href="$_p_s_buzz_8h.html" title="PSBuzz.h" alt="" coords="1022,299,1102,324"/>
<area shape="rect" id="node26" href="$hidusagetitlearrays_8cpp.html" title="hidusagetitlearrays.cpp" alt="" coords="628,152,787,177"/>
<area shape="rect" id="node28" href="$cdcacm_8cpp.html" title="cdcacm.cpp" alt="" coords="810,152,903,177"/>
<area shape="rect" id="node29" href="$cdcprolific_8h.html" title="cdcprolific.h" alt="" coords="927,152,1019,177"/>
<area shape="rect" id="node31" href="$cdcftdi_8cpp.html" title="cdcftdi.cpp" alt="" coords="1042,152,1127,177"/>
<area shape="rect" id="node33" href="$masstorage_8cpp.html" title="masstorage.cpp" alt="" coords="1151,152,1267,177"/>
<area shape="rect" id="node35" href="$max___l_c_d_8cpp.html" title="max_LCD.cpp" alt="" coords="1290,152,1396,177"/>
<area shape="rect" id="node39" href="$_p_s3_u_s_b_8cpp.html" title="PS3USB.cpp" alt="" coords="1480,152,1580,177"/>
<area shape="rect" id="node41" href="$_p_s4_parser_8cpp.html" title="PS4Parser.cpp" alt="" coords="1286,299,1396,324"/>
<area shape="rect" id="node44" href="$usbhub_8cpp.html" title="usbhub.cpp" alt="" coords="1725,152,1815,177"/>
<area shape="rect" id="node46" href="$_x_b_o_x_o_l_d_8cpp.html" title="XBOXOLD.cpp" alt="" coords="1839,152,1950,177"/>
<area shape="rect" id="node48" href="$_x_b_o_x_r_e_c_v_8cpp.html" title="XBOXRECV.cpp" alt="" coords="1973,152,2092,177"/>
<area shape="rect" id="node50" href="$_x_b_o_x_u_s_b_8cpp.html" title="XBOXUSB.cpp" alt="" coords="2116,152,2227,177"/>
<area shape="rect" id="node2" href="$adk_8h.html" title="adk.h" alt="" coords="331,79,385,104"/>
<area shape="rect" id="node4" href="$_b_t_d_8h.html" title="BTD.h" alt="" coords="192,225,251,251"/>
<area shape="rect" id="node15" href="$hid_8h.html" title="hid.h" alt="" coords="514,152,564,177"/>
<area shape="rect" id="node22" href="$_p_s3_u_s_b_8h.html" title="PS3USB.h" alt="" coords="275,225,360,251"/>
<area shape="rect" id="node24" href="$_x_b_o_x_o_l_d_8h.html" title="XBOXOLD.h" alt="" coords="735,225,832,251"/>
<area shape="rect" id="node26" href="$_x_b_o_x_u_s_b_8h.html" title="XBOXUSB.h" alt="" coords="983,225,1080,251"/>
<area shape="rect" id="node28" href="$hidusagestr_8h.html" title="hidusagestr.h" alt="" coords="617,79,718,104"/>
<area shape="rect" id="node30" href="$cdcacm_8h.html" title="cdcacm.h" alt="" coords="940,79,1018,104"/>
<area shape="rect" id="node34" href="$cdcftdi_8h.html" title="cdcftdi.h" alt="" coords="1042,79,1113,104"/>
<area shape="rect" id="node36" href="$masstorage_8h.html" title="masstorage.h" alt="" coords="1137,79,1240,104"/>
<area shape="rect" id="node38" href="$max___l_c_d_8h.html" title="max_LCD.h" alt="" coords="1264,79,1356,104"/>
<area shape="rect" id="node40" href="$message_8cpp.html" title="message.cpp" alt="" coords="1380,79,1480,104"/>
<area shape="rect" id="node41" href="$parsetools_8cpp.html" title="parsetools.cpp" alt="" coords="1504,79,1612,104"/>
<area shape="rect" id="node42" href="$_p_s4_parser_8h.html" title="PS4Parser.h" alt="" coords="1135,225,1231,251"/>
<area shape="rect" id="node44" href="$_usb_8cpp.html" title="Usb.cpp" alt="" coords="1687,79,1757,104"/>
<area shape="rect" id="node45" href="$usbhub_8h.html" title="usbhub.h" alt="" coords="1781,79,1857,104"/>
<area shape="rect" id="node47" href="$_x_b_o_x_o_n_e_8h.html" title="XBOXONE.h" alt="" coords="1881,79,1979,104"/>
<area shape="rect" id="node49" href="$_x_b_o_x_r_e_c_v_8h.html" title="XBOXRECV.h" alt="" coords="2009,79,2115,104"/>
<area shape="rect" id="node3" href="$adk_8cpp.html" title="adk.cpp" alt="" coords="320,152,388,177"/>
<area shape="rect" id="node5" href="$_b_t_d_8cpp.html" title="BTD.cpp" alt="" coords="88,299,161,324"/>
<area shape="rect" id="node6" href="$_b_t_h_i_d_8h.html" title="BTHID.h" alt="" coords="503,299,575,324"/>
<area shape="rect" id="node9" href="$_p_s3_b_t_8h.html" title="PS3BT.h" alt="" coords="185,299,258,324"/>
<area shape="rect" id="node11" href="$_s_p_p_8h.html" title="SPP.h" alt="" coords="282,299,340,324"/>
<area shape="rect" id="node13" href="$_wii_8h.html" title="Wii.h" alt="" coords="12,299,63,324"/>
<area shape="rect" id="node7" href="$_b_t_h_i_d_8cpp.html" title="BTHID.cpp" alt="" coords="496,372,582,397"/>
<area shape="rect" id="node8" href="$_p_s4_b_t_8h.html" title="PS4BT.h" alt="" coords="847,372,920,397"/>
<area shape="rect" id="node10" href="$_p_s3_b_t_8cpp.html" title="PS3BT.cpp" alt="" coords="170,372,258,397"/>
<area shape="rect" id="node12" href="$_s_p_p_8cpp.html" title="SPP.cpp" alt="" coords="282,372,354,397"/>
<area shape="rect" id="node14" href="$_wii_8cpp.html" title="Wii.cpp" alt="" coords="5,372,70,397"/>
<area shape="rect" id="node16" href="$hidboot_8h.html" title="hidboot.h" alt="" coords="546,225,623,251"/>
<area shape="rect" id="node18" href="$hid_8cpp.html" title="hid.cpp" alt="" coords="647,225,711,251"/>
<area shape="rect" id="node19" href="$hidescriptorparser_8h.html" title="hidescriptorparser.h" alt="" coords="385,225,523,251"/>
<area shape="rect" id="node20" href="$hiduniversal_8h.html" title="hiduniversal.h" alt="" coords="855,225,959,251"/>
<area shape="rect" id="node17" href="$hidboot_8cpp.html" title="hidboot.cpp" alt="" coords="599,299,690,324"/>
<area shape="rect" id="node21" href="$_p_s4_u_s_b_8h.html" title="PS4USB.h" alt="" coords="865,299,950,324"/>
<area shape="rect" id="node23" href="$_p_s3_u_s_b_8cpp.html" title="PS3USB.cpp" alt="" coords="364,299,463,324"/>
<area shape="rect" id="node25" href="$_x_b_o_x_o_l_d_8cpp.html" title="XBOXOLD.cpp" alt="" coords="728,299,839,324"/>
<area shape="rect" id="node27" href="$_x_b_o_x_u_s_b_8cpp.html" title="XBOXUSB.cpp" alt="" coords="974,299,1085,324"/>
<area shape="rect" id="node29" href="$hidusagetitlearrays_8cpp.html" title="hidusagetitlearrays.cpp" alt="" coords="588,152,746,177"/>
<area shape="rect" id="node31" href="$cdc___x_r21_b1411_8h.html" title="cdc_XR21B1411.h" alt="" coords="871,152,1002,177"/>
<area shape="rect" id="node32" href="$cdcacm_8cpp.html" title="cdcacm.cpp" alt="" coords="1026,152,1119,177"/>
<area shape="rect" id="node33" href="$cdcprolific_8h.html" title="cdcprolific.h" alt="" coords="1143,152,1234,177"/>
<area shape="rect" id="node35" href="$cdcftdi_8cpp.html" title="cdcftdi.cpp" alt="" coords="1258,152,1343,177"/>
<area shape="rect" id="node37" href="$masstorage_8cpp.html" title="masstorage.cpp" alt="" coords="1366,152,1483,177"/>
<area shape="rect" id="node39" href="$max___l_c_d_8cpp.html" title="max_LCD.cpp" alt="" coords="1506,152,1612,177"/>
<area shape="rect" id="node43" href="$_p_s4_parser_8cpp.html" title="PS4Parser.cpp" alt="" coords="1160,299,1270,324"/>
<area shape="rect" id="node46" href="$usbhub_8cpp.html" title="usbhub.cpp" alt="" coords="1759,152,1850,177"/>
<area shape="rect" id="node48" href="$_x_b_o_x_o_n_e_8cpp.html" title="XBOXONE.cpp" alt="" coords="1874,152,1986,177"/>
<area shape="rect" id="node50" href="$_x_b_o_x_r_e_c_v_8cpp.html" title="XBOXRECV.cpp" alt="" coords="2010,152,2130,177"/>
</map>

View file

@ -1 +1 @@
2f238cc81ba3ca92eea58f17f8d557d0
dde4986e96594b8b430995e47f0bfe36

Binary file not shown.

Before

Width:  |  Height:  |  Size: 146 KiB

After

Width:  |  Height:  |  Size: 157 KiB

View file

@ -3,15 +3,16 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<meta name="generator" content="Doxygen 1.8.9.1"/>
<title>USB Host Shield 2.0: Usb.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="imageStyle.css" rel="stylesheet" type="text/css"/>
@ -31,7 +32,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.7 -->
<!-- Generated by Doxygen 1.8.9.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -70,7 +71,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
@ -148,7 +149,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.7
</a> 1.8.9.1
</small></address>
</body>
</html>

View file

@ -3,15 +3,16 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<meta name="generator" content="Doxygen 1.8.9.1"/>
<title>USB Host Shield 2.0: UsbCore.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="imageStyle.css" rel="stylesheet" type="text/css"/>
@ -31,7 +32,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.7 -->
<!-- Generated by Doxygen 1.8.9.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -70,7 +71,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
@ -185,7 +186,7 @@ Macros</h2></td></tr>
<tr class="separator:a5f181b47dbedffe69a32352247834b13"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae691ccb027b8e281ac87522a0e66aaa7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_usb_core_8h.html#ae691ccb027b8e281ac87522a0e66aaa7">USB_ERROR_TRANSFER_TIMEOUT</a>&#160;&#160;&#160;0xFF</td></tr>
<tr class="separator:ae691ccb027b8e281ac87522a0e66aaa7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad8686abbfa0d98547d450fe2a105a588"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_usb_core_8h.html#ad8686abbfa0d98547d450fe2a105a588">USB_XFER_TIMEOUT</a>&#160;&#160;&#160;10000</td></tr>
<tr class="memitem:ad8686abbfa0d98547d450fe2a105a588"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_usb_core_8h.html#ad8686abbfa0d98547d450fe2a105a588">USB_XFER_TIMEOUT</a>&#160;&#160;&#160;5000</td></tr>
<tr class="separator:ad8686abbfa0d98547d450fe2a105a588"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a857a9899ad4f277faf074c3012e14ffa"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_usb_core_8h.html#a857a9899ad4f277faf074c3012e14ffa">USB_RETRY_LIMIT</a>&#160;&#160;&#160;3</td></tr>
<tr class="separator:a857a9899ad4f277faf074c3012e14ffa"><td class="memSeparator" colspan="2">&#160;</td></tr>
@ -244,7 +245,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00045">45</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00047">47</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -258,7 +259,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00046">46</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00048">48</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -272,7 +273,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00047">47</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00049">49</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -286,7 +287,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00054">54</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00056">56</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -300,7 +301,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00055">55</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00057">57</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -314,7 +315,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00056">56</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00058">58</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -328,7 +329,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00057">57</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00059">59</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -342,7 +343,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00058">58</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00060">60</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -356,7 +357,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00059">59</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00061">61</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -370,7 +371,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00060">60</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00062">62</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -384,7 +385,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00061">61</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00063">63</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -398,7 +399,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00062">62</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00064">64</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -412,7 +413,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00063">63</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00065">65</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -426,7 +427,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00064">64</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00066">66</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -440,7 +441,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00065">65</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00067">67</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -454,7 +455,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00066">66</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00068">68</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -468,7 +469,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00067">67</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00069">69</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -482,7 +483,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00068">68</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00070">70</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -496,7 +497,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00069">69</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00071">71</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -510,7 +511,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00070">70</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00072">72</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -524,7 +525,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00071">71</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00073">73</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -538,7 +539,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00072">72</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00074">74</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -552,7 +553,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00075">75</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00077">77</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -566,7 +567,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00076">76</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00078">78</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -580,7 +581,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00077">77</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00079">79</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -594,7 +595,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00078">78</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00080">80</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -608,7 +609,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00079">79</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00081">81</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -622,7 +623,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00080">80</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00082">82</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -636,7 +637,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00081">81</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00083">83</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -650,7 +651,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00082">82</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00084">84</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -664,7 +665,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00083">83</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00085">85</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -678,7 +679,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00084">84</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00086">86</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -692,7 +693,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00085">85</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00087">87</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -706,7 +707,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00086">86</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00088">88</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -720,7 +721,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00087">87</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00089">89</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -734,7 +735,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00088">88</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00090">90</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -748,7 +749,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00089">89</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00091">91</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -762,7 +763,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00090">90</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00092">92</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -771,12 +772,12 @@ Typedefs</h2></td></tr>
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define USB_XFER_TIMEOUT&#160;&#160;&#160;10000</td>
<td class="memname">#define USB_XFER_TIMEOUT&#160;&#160;&#160;5000</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00092">92</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00094">94</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -790,7 +791,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00094">94</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00096">96</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -804,7 +805,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00095">95</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00097">97</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -818,7 +819,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00097">97</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00099">99</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -832,7 +833,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00099">99</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00101">101</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -846,7 +847,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00102">102</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00104">104</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -860,7 +861,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00104">104</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00106">106</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -874,7 +875,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00105">105</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00107">107</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -888,7 +889,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00106">106</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00108">108</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -902,7 +903,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00107">107</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00109">109</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -916,7 +917,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00108">108</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00110">110</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -930,7 +931,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00109">109</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00111">111</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -944,7 +945,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00110">110</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00112">112</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -958,7 +959,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00111">111</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00113">113</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -972,7 +973,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00112">112</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00114">114</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -986,7 +987,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00113">113</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00115">115</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -1000,7 +1001,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00114">114</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00116">116</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -1014,7 +1015,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00115">115</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00117">117</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -1028,7 +1029,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00116">116</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00118">118</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -1042,7 +1043,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00117">117</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00119">119</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -1057,7 +1058,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00041">41</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00043">43</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -1078,7 +1079,7 @@ Typedefs</h2></td></tr>
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.7
</a> 1.8.9.1
</small></address>
</body>
</html>

View file

@ -3,15 +3,16 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<meta name="generator" content="Doxygen 1.8.9.1"/>
<title>USB Host Shield 2.0: UsbCore.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="imageStyle.css" rel="stylesheet" type="text/css"/>
@ -31,7 +32,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.7 -->
<!-- Generated by Doxygen 1.8.9.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -70,7 +71,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
@ -128,326 +129,334 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">typedef</span> <a class="code" href="class_m_a_x3421e.html">MAX3421e&lt;P53, P54&gt;</a> <a class="code" href="_usb_core_8h.html#ae8ea2a106e94f5bb20be2fcbd4e402fb">MAX3421E</a>; <span class="comment">// Arduino Mega ADK</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#elif defined(ARDUINO_AVR_BALANDUINO)</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">typedef</span> <a class="code" href="class_m_a_x3421e.html">MAX3421e&lt;P20, P19&gt;</a> <a class="code" href="_usb_core_8h.html#ae8ea2a106e94f5bb20be2fcbd4e402fb">MAX3421E</a>; <span class="comment">// Balanduino</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#ae8ea2a106e94f5bb20be2fcbd4e402fb"> 41</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="class_m_a_x3421e.html">MAX3421e&lt;P10, P9&gt;</a> <a class="code" href="_usb_core_8h.html#ae8ea2a106e94f5bb20be2fcbd4e402fb">MAX3421E</a>; <span class="comment">// Official Arduinos (UNO, Duemilanove, Mega, 2560, Leonardo, Due etc.) or Teensy 2.0 and 3.0</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment">/* Common setup data constant combinations */</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a060f3a6423f1e3640aa7b14d5ce72285"> 45</a></span>&#160;<span class="preprocessor">#define bmREQ_GET_DESCR USB_SETUP_DEVICE_TO_HOST|USB_SETUP_TYPE_STANDARD|USB_SETUP_RECIPIENT_DEVICE //get descriptor request type</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#af4965e768593007eacde7644979f56da"> 46</a></span>&#160;<span class="preprocessor">#define bmREQ_SET USB_SETUP_HOST_TO_DEVICE|USB_SETUP_TYPE_STANDARD|USB_SETUP_RECIPIENT_DEVICE //set request type for all but &#39;set feature&#39; and &#39;set interface&#39;</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a9495c8ffdb784e111e8174e1541676f0"> 47</a></span>&#160;<span class="preprocessor">#define bmREQ_CL_GET_INTF USB_SETUP_DEVICE_TO_HOST|USB_SETUP_TYPE_CLASS|USB_SETUP_RECIPIENT_INTERFACE //get interface request type</span></div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="comment">// D7 data transfer direction (0 - host-to-device, 1 - device-to-host)</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="comment">// D6-5 Type (0- standard, 1 - class, 2 - vendor, 3 - reserved)</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="comment">// D4-0 Recipient (0 - device, 1 - interface, 2 - endpoint, 3 - other, 4..31 - reserved)</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="comment">// USB Device Classes</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#ae157c9a62665e9ca41bf765518077f40"> 54</a></span>&#160;<span class="preprocessor">#define USB_CLASS_USE_CLASS_INFO 0x00 // Use Class Info in the Interface Descriptors</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a8785f84db1be6b0b5da34cd91a1b6138"> 55</a></span>&#160;<span class="preprocessor">#define USB_CLASS_AUDIO 0x01 // Audio</span></div>
<div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#abb99f6b1f38ff79ec678cd957ac86758"> 56</a></span>&#160;<span class="preprocessor">#define USB_CLASS_COM_AND_CDC_CTRL 0x02 // Communications and CDC Control</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#af062e949014bed74a8b5fedcf1705602"> 57</a></span>&#160;<span class="preprocessor">#define USB_CLASS_HID 0x03 // HID</span></div>
<div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#aa5f3153d014b6267ba8da243b6b46443"> 58</a></span>&#160;<span class="preprocessor">#define USB_CLASS_PHYSICAL 0x05 // Physical</span></div>
<div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a1cddf36a39f1299fcf654628c40eaafe"> 59</a></span>&#160;<span class="preprocessor">#define USB_CLASS_IMAGE 0x06 // Image</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#ab3e03403111b64480ba298d2641cf92f"> 60</a></span>&#160;<span class="preprocessor">#define USB_CLASS_PRINTER 0x07 // Printer</span></div>
<div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#aa99b73e335df09e6545fc44798a3c1f2"> 61</a></span>&#160;<span class="preprocessor">#define USB_CLASS_MASS_STORAGE 0x08 // Mass Storage</span></div>
<div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#aac5a936a2d1a6e3403798b031294992a"> 62</a></span>&#160;<span class="preprocessor">#define USB_CLASS_HUB 0x09 // Hub</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a7dae7df3ce2685f96775f2a0fb8658ae"> 63</a></span>&#160;<span class="preprocessor">#define USB_CLASS_CDC_DATA 0x0a // CDC-Data</span></div>
<div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a823e1d95a677968ba93d6bb1968c48db"> 64</a></span>&#160;<span class="preprocessor">#define USB_CLASS_SMART_CARD 0x0b // Smart-Card</span></div>
<div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a311fda5cdf4960e05a892084c1b11288"> 65</a></span>&#160;<span class="preprocessor">#define USB_CLASS_CONTENT_SECURITY 0x0d // Content Security</span></div>
<div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a42a579e1be399e32a495b82634411449"> 66</a></span>&#160;<span class="preprocessor">#define USB_CLASS_VIDEO 0x0e // Video</span></div>
<div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#aef502b63c6eb8229ba4d67224f19fb84"> 67</a></span>&#160;<span class="preprocessor">#define USB_CLASS_PERSONAL_HEALTH 0x0f // Personal Healthcare</span></div>
<div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#aa31549c5c0d9e18f310dddaeab27068b"> 68</a></span>&#160;<span class="preprocessor">#define USB_CLASS_DIAGNOSTIC_DEVICE 0xdc // Diagnostic Device</span></div>
<div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#afce880b09049d7105f8e68ff36d9ad17"> 69</a></span>&#160;<span class="preprocessor">#define USB_CLASS_WIRELESS_CTRL 0xe0 // Wireless Controller</span></div>
<div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a02fb07e20ad6d1af64439f40093bc80f"> 70</a></span>&#160;<span class="preprocessor">#define USB_CLASS_MISC 0xef // Miscellaneous</span></div>
<div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a47087a6e244a02251b650921ea3b71db"> 71</a></span>&#160;<span class="preprocessor">#define USB_CLASS_APP_SPECIFIC 0xfe // Application Specific</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a7c6212a5385ca1b4af75eeff62f7a871"> 72</a></span>&#160;<span class="preprocessor">#define USB_CLASS_VENDOR_SPECIFIC 0xff // Vendor Specific</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="comment">// Additional Error Codes</span></div>
<div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#ae9e139d0fd29bb0b3e7afad2f76cd589"> 75</a></span>&#160;<span class="preprocessor">#define USB_DEV_CONFIG_ERROR_DEVICE_NOT_SUPPORTED 0xD1</span></div>
<div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a7cb7070e699b7815e3c45dc8f7dd67f1"> 76</a></span>&#160;<span class="preprocessor">#define USB_DEV_CONFIG_ERROR_DEVICE_INIT_INCOMPLETE 0xD2</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#ad4929f74079f3bc22b00936ae84d18b0"> 77</a></span>&#160;<span class="preprocessor">#define USB_ERROR_UNABLE_TO_REGISTER_DEVICE_CLASS 0xD3</span></div>
<div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a15370eb665cdded5514e69ca58d9f39d"> 78</a></span>&#160;<span class="preprocessor">#define USB_ERROR_OUT_OF_ADDRESS_SPACE_IN_POOL 0xD4</span></div>
<div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#ada55913b93ef46c430ed6979022c31b1"> 79</a></span>&#160;<span class="preprocessor">#define USB_ERROR_HUB_ADDRESS_OVERFLOW 0xD5</span></div>
<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#afe2fedb4b0ccc89a688c0b4b59691ce0"> 80</a></span>&#160;<span class="preprocessor">#define USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL 0xD6</span></div>
<div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#af192c59cafe2192ad802b22e6dbc077d"> 81</a></span>&#160;<span class="preprocessor">#define USB_ERROR_EPINFO_IS_NULL 0xD7</span></div>
<div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a52c379fe7e22f53d3e3d47d65735fa3b"> 82</a></span>&#160;<span class="preprocessor">#define USB_ERROR_INVALID_ARGUMENT 0xD8</span></div>
<div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a44416ff64fc0e3691f98addac13d4595"> 83</a></span>&#160;<span class="preprocessor">#define USB_ERROR_CLASS_INSTANCE_ALREADY_IN_USE 0xD9</span></div>
<div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a272428aaee5fccec4661bd5457d1928f"> 84</a></span>&#160;<span class="preprocessor">#define USB_ERROR_INVALID_MAX_PKT_SIZE 0xDA</span></div>
<div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#ad55f0079a95df5e4a9bb22e88a7395f5"> 85</a></span>&#160;<span class="preprocessor">#define USB_ERROR_EP_NOT_FOUND_IN_TBL 0xDB</span></div>
<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a7cad2f024e98c4b2b1b52df76b10c01e"> 86</a></span>&#160;<span class="preprocessor">#define USB_ERROR_CONFIG_REQUIRES_ADDITIONAL_RESET 0xE0</span></div>
<div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a96a7af8bc5ba78235312e1084a5ee229"> 87</a></span>&#160;<span class="preprocessor">#define USB_ERROR_FailGetDevDescr 0xE1</span></div>
<div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a86f5704804d91e5b0333b418586f4c43"> 88</a></span>&#160;<span class="preprocessor">#define USB_ERROR_FailSetDevTblEntry 0xE2</span></div>
<div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a5f181b47dbedffe69a32352247834b13"> 89</a></span>&#160;<span class="preprocessor">#define USB_ERROR_FailGetConfDescr 0xE3</span></div>
<div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#ae691ccb027b8e281ac87522a0e66aaa7"> 90</a></span>&#160;<span class="preprocessor">#define USB_ERROR_TRANSFER_TIMEOUT 0xFF</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div>
<div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#ad8686abbfa0d98547d450fe2a105a588"> 92</a></span>&#160;<span class="preprocessor">#define USB_XFER_TIMEOUT 10000 //30000 // (5000) USB transfer timeout in milliseconds, per section 9.2.6.1 of USB 2.0 spec</span></div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="comment">//#define USB_NAK_LIMIT 32000 //NAK limit for a transfer. 0 means NAKs are not counted</span></div>
<div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a857a9899ad4f277faf074c3012e14ffa"> 94</a></span>&#160;<span class="preprocessor">#define USB_RETRY_LIMIT 3 // 3 retry limit for a transfer</span></div>
<div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a1b082667723b29243b021a1829bdd8d6"> 95</a></span>&#160;<span class="preprocessor">#define USB_SETTLE_DELAY 200 //settle delay in milliseconds</span></div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div>
<div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a0282f9f7a0313f957e02449d7313b7b5"> 97</a></span>&#160;<span class="preprocessor">#define USB_NUMDEVICES 16 //number of USB devices</span></div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="comment">//#define HUB_MAX_HUBS 7 // maximum number of hubs that can be attached to the host controller</span></div>
<div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#ae843af5aa0de74b17c3d8c8f8fab4c00"> 99</a></span>&#160;<span class="preprocessor">#define HUB_PORT_RESET_DELAY 20 // hub port reset delay 10 ms recomended, can be up to 20 ms</span></div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="comment">/* USB state machine states */</span></div>
<div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a3168cf67661a2716677b9830f30b880c"> 102</a></span>&#160;<span class="preprocessor">#define USB_STATE_MASK 0xf0</span></div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div>
<div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#ae7fd7c5bb6dc87f44724dde2ad57df87"> 104</a></span>&#160;<span class="preprocessor">#define USB_STATE_DETACHED 0x10</span></div>
<div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a60a744d0f1386e4b28053a41bd6a958f"> 105</a></span>&#160;<span class="preprocessor">#define USB_DETACHED_SUBSTATE_INITIALIZE 0x11</span></div>
<div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a3708f4e8166d5d099e1982aa956eacce"> 106</a></span>&#160;<span class="preprocessor">#define USB_DETACHED_SUBSTATE_WAIT_FOR_DEVICE 0x12</span></div>
<div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#aff6ab2376cd29385b20c2b63d4ddd26d"> 107</a></span>&#160;<span class="preprocessor">#define USB_DETACHED_SUBSTATE_ILLEGAL 0x13</span></div>
<div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#aaadb20392558e23e3eba073e358a4493"> 108</a></span>&#160;<span class="preprocessor">#define USB_ATTACHED_SUBSTATE_SETTLE 0x20</span></div>
<div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#ada22633d6de30155a60cb19f6e6452fe"> 109</a></span>&#160;<span class="preprocessor">#define USB_ATTACHED_SUBSTATE_RESET_DEVICE 0x30</span></div>
<div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a311f11b79c4020d771cd6930e0a3223d"> 110</a></span>&#160;<span class="preprocessor">#define USB_ATTACHED_SUBSTATE_WAIT_RESET_COMPLETE 0x40</span></div>
<div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a2d69537e663e7d5f188004f0d25ec0cc"> 111</a></span>&#160;<span class="preprocessor">#define USB_ATTACHED_SUBSTATE_WAIT_SOF 0x50</span></div>
<div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a80a8d6b8e75c76947e452b4afa04c84e"> 112</a></span>&#160;<span class="preprocessor">#define USB_ATTACHED_SUBSTATE_WAIT_RESET 0x51</span></div>
<div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a23ebcbb956f600e06435b28ae0c855d4"> 113</a></span>&#160;<span class="preprocessor">#define USB_ATTACHED_SUBSTATE_GET_DEVICE_DESCRIPTOR_SIZE 0x60</span></div>
<div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a474a95baaeb99abd17538c2a1364bf96"> 114</a></span>&#160;<span class="preprocessor">#define USB_STATE_ADDRESSING 0x70</span></div>
<div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#aac8c844e6a20f42298d70e4438a029e5"> 115</a></span>&#160;<span class="preprocessor">#define USB_STATE_CONFIGURING 0x80</span></div>
<div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a138c40c59f628eefbe273a8db0a96753"> 116</a></span>&#160;<span class="preprocessor">#define USB_STATE_RUNNING 0x90</span></div>
<div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a6fef5305841ac36f67d8ddb0bd9127d4"> 117</a></span>&#160;<span class="preprocessor">#define USB_STATE_ERROR 0xa0</span></div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div>
<div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="class_u_s_b_device_config.html"> 119</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_u_s_b_device_config.html">USBDeviceConfig</a> {</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div>
<div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="class_u_s_b_device_config.html#a3706cf6b18785aff823171e280bab738"> 122</a></span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_u_s_b_device_config.html#a3706cf6b18785aff823171e280bab738">Init</a>(uint8_t parent, uint8_t port, <span class="keywordtype">bool</span> lowspeed) {</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; }</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div>
<div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="class_u_s_b_device_config.html#aef77a1e62f78c04a1aad53e8795ec89e"> 126</a></span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_u_s_b_device_config.html#aef77a1e62f78c04a1aad53e8795ec89e">ConfigureDevice</a>(uint8_t parent, uint8_t port, <span class="keywordtype">bool</span> lowspeed) {</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; }</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div>
<div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="class_u_s_b_device_config.html#a61e301efedae55c6ac12c6cce154e432"> 130</a></span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_u_s_b_device_config.html#a61e301efedae55c6ac12c6cce154e432">Release</a>() {</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; }</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div>
<div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="class_u_s_b_device_config.html#a893ea73deab98be837c257201e7da25a"> 134</a></span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_u_s_b_device_config.html#a893ea73deab98be837c257201e7da25a">Poll</a>() {</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; }</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div>
<div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="class_u_s_b_device_config.html#a2bfde6c290d32888a6f4e97fa1e222f1"> 138</a></span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_u_s_b_device_config.html#a2bfde6c290d32888a6f4e97fa1e222f1">GetAddress</a>() {</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; }</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div>
<div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="class_u_s_b_device_config.html#a12bb63558ded5bb6661bb173b07ff391"> 142</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_u_s_b_device_config.html#a12bb63558ded5bb6661bb173b07ff391">ResetHubPort</a>(uint8_t port) {</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; } <span class="comment">// Note used for hubs only!</span></div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div>
<div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="class_u_s_b_device_config.html#a1cf695242e2e22893eea9c892282221b"> 146</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">boolean</span> <a class="code" href="class_u_s_b_device_config.html#a1cf695242e2e22893eea9c892282221b">VIDPIDOK</a>(uint16_t vid, uint16_t pid) {</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; }</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div>
<div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="class_u_s_b_device_config.html#a7f13c42ed2c8e72e1f63562576ca82d2"> 150</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">boolean</span> <a class="code" href="class_u_s_b_device_config.html#a7f13c42ed2c8e72e1f63562576ca82d2">DEVCLASSOK</a>(uint8_t klass) {</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; }</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;};</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<span class="comment">/* USB Setup Packet Structure */</span></div>
<div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="struct_s_e_t_u_p___p_k_t.html"> 156</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keyword">union </span>{ <span class="comment">// offset description</span></div>
<div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="struct_s_e_t_u_p___p_k_t.html#a9bbd6cf5a93a6433d2eb97c59b9102d5"> 159</a></span>&#160; uint8_t <a class="code" href="struct_s_e_t_u_p___p_k_t.html#a9bbd6cf5a93a6433d2eb97c59b9102d5">bmRequestType</a>; <span class="comment">// 0 Bit-map of request type</span></div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keyword">struct </span>{</div>
<div class="line"><a name="l00162"></a><span class="lineno"><a class="line" href="struct_s_e_t_u_p___p_k_t.html#a690a55f65b2ce4e69c426b92004a1cc6"> 162</a></span>&#160; uint8_t recipient : 5; <span class="comment">// Recipient of the request</span></div>
<div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="struct_s_e_t_u_p___p_k_t.html#ad9346ba7b7a4da6829142e23e3ba8a2f"> 163</a></span>&#160; uint8_t type : 2; <span class="comment">// Type of request</span></div>
<div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="struct_s_e_t_u_p___p_k_t.html#ab50c95fb951cdebc78c3e024de1d6d65"> 164</a></span>&#160; uint8_t direction : 1; <span class="comment">// Direction of data X-fer</span></div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; } __attribute__((packed));</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; } ReqType_u;</div>
<div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="struct_s_e_t_u_p___p_k_t.html#a321b931277d6ce278416dc5d74059016"> 167</a></span>&#160; uint8_t <a class="code" href="struct_s_e_t_u_p___p_k_t.html#a321b931277d6ce278416dc5d74059016">bRequest</a>; <span class="comment">// 1 Request</span></div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keyword">union </span>{</div>
<div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="struct_s_e_t_u_p___p_k_t.html#a1382f4a10a9b0774f803d1125dd9bb52"> 170</a></span>&#160; uint16_t <a class="code" href="struct_s_e_t_u_p___p_k_t.html#a1382f4a10a9b0774f803d1125dd9bb52">wValue</a>; <span class="comment">// 2 Depends on bRequest</span></div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keyword">struct </span>{</div>
<div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="struct_s_e_t_u_p___p_k_t.html#a68c9436c00560f96e044052c3fb681e9"> 173</a></span>&#160; uint8_t <a class="code" href="struct_s_e_t_u_p___p_k_t.html#a68c9436c00560f96e044052c3fb681e9">wValueLo</a>;</div>
<div class="line"><a name="l00174"></a><span class="lineno"><a class="line" href="struct_s_e_t_u_p___p_k_t.html#a04ea2d151f9edb6575fc159a58f1e443"> 174</a></span>&#160; uint8_t <a class="code" href="struct_s_e_t_u_p___p_k_t.html#a04ea2d151f9edb6575fc159a58f1e443">wValueHi</a>;</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; } __attribute__((packed));</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; } wVal_u;</div>
<div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="struct_s_e_t_u_p___p_k_t.html#a299d9f88d294369ea88b48b5026f4c7e"> 177</a></span>&#160; uint16_t <a class="code" href="struct_s_e_t_u_p___p_k_t.html#a299d9f88d294369ea88b48b5026f4c7e">wIndex</a>; <span class="comment">// 4 Depends on bRequest</span></div>
<div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="struct_s_e_t_u_p___p_k_t.html#a1ec9b19c0ed1e66e399ad9cf3c4a6537"> 178</a></span>&#160; uint16_t <a class="code" href="struct_s_e_t_u_p___p_k_t.html#a1ec9b19c0ed1e66e399ad9cf3c4a6537">wLength</a>; <span class="comment">// 6 Depends on bRequest</span></div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;} __attribute__((packed)) <a class="code" href="struct_s_e_t_u_p___p_k_t.html">SETUP_PKT</a>, *<a class="code" href="struct_s_e_t_u_p___p_k_t.html">PSETUP_PKT</a>;</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="comment">// Base class for incoming data parser</span></div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div>
<div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="class_u_s_b_read_parser.html"> 185</a></span>&#160;class <a class="code" href="class_u_s_b_read_parser.html">USBReadParser</a> {</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> Parse(<span class="keyword">const</span> uint16_t len, <span class="keyword">const</span> uint8_t *pbuf, <span class="keyword">const</span> uint16_t &amp;offset) = 0;</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;};</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#elif defined(__ARDUINO_X86__) &amp;&amp; PLATFORM_ID == 0x06</span></div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">typedef</span> <a class="code" href="class_m_a_x3421e.html">MAX3421e&lt;P3, P2&gt;</a> <a class="code" href="_usb_core_8h.html#ae8ea2a106e94f5bb20be2fcbd4e402fb">MAX3421E</a>; <span class="comment">// The Intel Galileo supports much faster read and write speed at pin 2 and 3</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#ae8ea2a106e94f5bb20be2fcbd4e402fb"> 43</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="class_m_a_x3421e.html">MAX3421e&lt;P10, P9&gt;</a> <a class="code" href="_usb_core_8h.html#ae8ea2a106e94f5bb20be2fcbd4e402fb">MAX3421E</a>; <span class="comment">// Official Arduinos (UNO, Duemilanove, Mega, 2560, Leonardo, Due etc.), Intel Edison, Intel Galileo 2 or Teensy 2.0 and 3.0</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="comment">/* Common setup data constant combinations */</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a060f3a6423f1e3640aa7b14d5ce72285"> 47</a></span>&#160;<span class="preprocessor">#define bmREQ_GET_DESCR USB_SETUP_DEVICE_TO_HOST|USB_SETUP_TYPE_STANDARD|USB_SETUP_RECIPIENT_DEVICE //get descriptor request type</span></div>
<div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#af4965e768593007eacde7644979f56da"> 48</a></span>&#160;<span class="preprocessor">#define bmREQ_SET USB_SETUP_HOST_TO_DEVICE|USB_SETUP_TYPE_STANDARD|USB_SETUP_RECIPIENT_DEVICE //set request type for all but &#39;set feature&#39; and &#39;set interface&#39;</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a9495c8ffdb784e111e8174e1541676f0"> 49</a></span>&#160;<span class="preprocessor">#define bmREQ_CL_GET_INTF USB_SETUP_DEVICE_TO_HOST|USB_SETUP_TYPE_CLASS|USB_SETUP_RECIPIENT_INTERFACE //get interface request type</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="comment">// D7 data transfer direction (0 - host-to-device, 1 - device-to-host)</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="comment">// D6-5 Type (0- standard, 1 - class, 2 - vendor, 3 - reserved)</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="comment">// D4-0 Recipient (0 - device, 1 - interface, 2 - endpoint, 3 - other, 4..31 - reserved)</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="comment">// USB Device Classes</span></div>
<div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#ae157c9a62665e9ca41bf765518077f40"> 56</a></span>&#160;<span class="preprocessor">#define USB_CLASS_USE_CLASS_INFO 0x00 // Use Class Info in the Interface Descriptors</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a8785f84db1be6b0b5da34cd91a1b6138"> 57</a></span>&#160;<span class="preprocessor">#define USB_CLASS_AUDIO 0x01 // Audio</span></div>
<div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#abb99f6b1f38ff79ec678cd957ac86758"> 58</a></span>&#160;<span class="preprocessor">#define USB_CLASS_COM_AND_CDC_CTRL 0x02 // Communications and CDC Control</span></div>
<div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#af062e949014bed74a8b5fedcf1705602"> 59</a></span>&#160;<span class="preprocessor">#define USB_CLASS_HID 0x03 // HID</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#aa5f3153d014b6267ba8da243b6b46443"> 60</a></span>&#160;<span class="preprocessor">#define USB_CLASS_PHYSICAL 0x05 // Physical</span></div>
<div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a1cddf36a39f1299fcf654628c40eaafe"> 61</a></span>&#160;<span class="preprocessor">#define USB_CLASS_IMAGE 0x06 // Image</span></div>
<div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#ab3e03403111b64480ba298d2641cf92f"> 62</a></span>&#160;<span class="preprocessor">#define USB_CLASS_PRINTER 0x07 // Printer</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#aa99b73e335df09e6545fc44798a3c1f2"> 63</a></span>&#160;<span class="preprocessor">#define USB_CLASS_MASS_STORAGE 0x08 // Mass Storage</span></div>
<div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#aac5a936a2d1a6e3403798b031294992a"> 64</a></span>&#160;<span class="preprocessor">#define USB_CLASS_HUB 0x09 // Hub</span></div>
<div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a7dae7df3ce2685f96775f2a0fb8658ae"> 65</a></span>&#160;<span class="preprocessor">#define USB_CLASS_CDC_DATA 0x0a // CDC-Data</span></div>
<div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a823e1d95a677968ba93d6bb1968c48db"> 66</a></span>&#160;<span class="preprocessor">#define USB_CLASS_SMART_CARD 0x0b // Smart-Card</span></div>
<div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a311fda5cdf4960e05a892084c1b11288"> 67</a></span>&#160;<span class="preprocessor">#define USB_CLASS_CONTENT_SECURITY 0x0d // Content Security</span></div>
<div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a42a579e1be399e32a495b82634411449"> 68</a></span>&#160;<span class="preprocessor">#define USB_CLASS_VIDEO 0x0e // Video</span></div>
<div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#aef502b63c6eb8229ba4d67224f19fb84"> 69</a></span>&#160;<span class="preprocessor">#define USB_CLASS_PERSONAL_HEALTH 0x0f // Personal Healthcare</span></div>
<div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#aa31549c5c0d9e18f310dddaeab27068b"> 70</a></span>&#160;<span class="preprocessor">#define USB_CLASS_DIAGNOSTIC_DEVICE 0xdc // Diagnostic Device</span></div>
<div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#afce880b09049d7105f8e68ff36d9ad17"> 71</a></span>&#160;<span class="preprocessor">#define USB_CLASS_WIRELESS_CTRL 0xe0 // Wireless Controller</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a02fb07e20ad6d1af64439f40093bc80f"> 72</a></span>&#160;<span class="preprocessor">#define USB_CLASS_MISC 0xef // Miscellaneous</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a47087a6e244a02251b650921ea3b71db"> 73</a></span>&#160;<span class="preprocessor">#define USB_CLASS_APP_SPECIFIC 0xfe // Application Specific</span></div>
<div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a7c6212a5385ca1b4af75eeff62f7a871"> 74</a></span>&#160;<span class="preprocessor">#define USB_CLASS_VENDOR_SPECIFIC 0xff // Vendor Specific</span></div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="comment">// Additional Error Codes</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#ae9e139d0fd29bb0b3e7afad2f76cd589"> 77</a></span>&#160;<span class="preprocessor">#define USB_DEV_CONFIG_ERROR_DEVICE_NOT_SUPPORTED 0xD1</span></div>
<div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a7cb7070e699b7815e3c45dc8f7dd67f1"> 78</a></span>&#160;<span class="preprocessor">#define USB_DEV_CONFIG_ERROR_DEVICE_INIT_INCOMPLETE 0xD2</span></div>
<div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#ad4929f74079f3bc22b00936ae84d18b0"> 79</a></span>&#160;<span class="preprocessor">#define USB_ERROR_UNABLE_TO_REGISTER_DEVICE_CLASS 0xD3</span></div>
<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a15370eb665cdded5514e69ca58d9f39d"> 80</a></span>&#160;<span class="preprocessor">#define USB_ERROR_OUT_OF_ADDRESS_SPACE_IN_POOL 0xD4</span></div>
<div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#ada55913b93ef46c430ed6979022c31b1"> 81</a></span>&#160;<span class="preprocessor">#define USB_ERROR_HUB_ADDRESS_OVERFLOW 0xD5</span></div>
<div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#afe2fedb4b0ccc89a688c0b4b59691ce0"> 82</a></span>&#160;<span class="preprocessor">#define USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL 0xD6</span></div>
<div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#af192c59cafe2192ad802b22e6dbc077d"> 83</a></span>&#160;<span class="preprocessor">#define USB_ERROR_EPINFO_IS_NULL 0xD7</span></div>
<div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a52c379fe7e22f53d3e3d47d65735fa3b"> 84</a></span>&#160;<span class="preprocessor">#define USB_ERROR_INVALID_ARGUMENT 0xD8</span></div>
<div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a44416ff64fc0e3691f98addac13d4595"> 85</a></span>&#160;<span class="preprocessor">#define USB_ERROR_CLASS_INSTANCE_ALREADY_IN_USE 0xD9</span></div>
<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a272428aaee5fccec4661bd5457d1928f"> 86</a></span>&#160;<span class="preprocessor">#define USB_ERROR_INVALID_MAX_PKT_SIZE 0xDA</span></div>
<div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#ad55f0079a95df5e4a9bb22e88a7395f5"> 87</a></span>&#160;<span class="preprocessor">#define USB_ERROR_EP_NOT_FOUND_IN_TBL 0xDB</span></div>
<div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a7cad2f024e98c4b2b1b52df76b10c01e"> 88</a></span>&#160;<span class="preprocessor">#define USB_ERROR_CONFIG_REQUIRES_ADDITIONAL_RESET 0xE0</span></div>
<div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a96a7af8bc5ba78235312e1084a5ee229"> 89</a></span>&#160;<span class="preprocessor">#define USB_ERROR_FailGetDevDescr 0xE1</span></div>
<div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a86f5704804d91e5b0333b418586f4c43"> 90</a></span>&#160;<span class="preprocessor">#define USB_ERROR_FailSetDevTblEntry 0xE2</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a5f181b47dbedffe69a32352247834b13"> 91</a></span>&#160;<span class="preprocessor">#define USB_ERROR_FailGetConfDescr 0xE3</span></div>
<div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#ae691ccb027b8e281ac87522a0e66aaa7"> 92</a></span>&#160;<span class="preprocessor">#define USB_ERROR_TRANSFER_TIMEOUT 0xFF</span></div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div>
<div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#ad8686abbfa0d98547d450fe2a105a588"> 94</a></span>&#160;<span class="preprocessor">#define USB_XFER_TIMEOUT 5000 // (5000) USB transfer timeout in milliseconds, per section 9.2.6.1 of USB 2.0 spec</span></div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="comment">//#define USB_NAK_LIMIT 32000 // NAK limit for a transfer. 0 means NAKs are not counted</span></div>
<div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a857a9899ad4f277faf074c3012e14ffa"> 96</a></span>&#160;<span class="preprocessor">#define USB_RETRY_LIMIT 3 // 3 retry limit for a transfer</span></div>
<div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a1b082667723b29243b021a1829bdd8d6"> 97</a></span>&#160;<span class="preprocessor">#define USB_SETTLE_DELAY 200 // settle delay in milliseconds</span></div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div>
<div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a0282f9f7a0313f957e02449d7313b7b5"> 99</a></span>&#160;<span class="preprocessor">#define USB_NUMDEVICES 16 //number of USB devices</span></div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="comment">//#define HUB_MAX_HUBS 7 // maximum number of hubs that can be attached to the host controller</span></div>
<div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#ae843af5aa0de74b17c3d8c8f8fab4c00"> 101</a></span>&#160;<span class="preprocessor">#define HUB_PORT_RESET_DELAY 20 // hub port reset delay 10 ms recomended, can be up to 20 ms</span></div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="comment">/* USB state machine states */</span></div>
<div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a3168cf67661a2716677b9830f30b880c"> 104</a></span>&#160;<span class="preprocessor">#define USB_STATE_MASK 0xf0</span></div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div>
<div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#ae7fd7c5bb6dc87f44724dde2ad57df87"> 106</a></span>&#160;<span class="preprocessor">#define USB_STATE_DETACHED 0x10</span></div>
<div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a60a744d0f1386e4b28053a41bd6a958f"> 107</a></span>&#160;<span class="preprocessor">#define USB_DETACHED_SUBSTATE_INITIALIZE 0x11</span></div>
<div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a3708f4e8166d5d099e1982aa956eacce"> 108</a></span>&#160;<span class="preprocessor">#define USB_DETACHED_SUBSTATE_WAIT_FOR_DEVICE 0x12</span></div>
<div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#aff6ab2376cd29385b20c2b63d4ddd26d"> 109</a></span>&#160;<span class="preprocessor">#define USB_DETACHED_SUBSTATE_ILLEGAL 0x13</span></div>
<div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#aaadb20392558e23e3eba073e358a4493"> 110</a></span>&#160;<span class="preprocessor">#define USB_ATTACHED_SUBSTATE_SETTLE 0x20</span></div>
<div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#ada22633d6de30155a60cb19f6e6452fe"> 111</a></span>&#160;<span class="preprocessor">#define USB_ATTACHED_SUBSTATE_RESET_DEVICE 0x30</span></div>
<div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a311f11b79c4020d771cd6930e0a3223d"> 112</a></span>&#160;<span class="preprocessor">#define USB_ATTACHED_SUBSTATE_WAIT_RESET_COMPLETE 0x40</span></div>
<div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a2d69537e663e7d5f188004f0d25ec0cc"> 113</a></span>&#160;<span class="preprocessor">#define USB_ATTACHED_SUBSTATE_WAIT_SOF 0x50</span></div>
<div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a80a8d6b8e75c76947e452b4afa04c84e"> 114</a></span>&#160;<span class="preprocessor">#define USB_ATTACHED_SUBSTATE_WAIT_RESET 0x51</span></div>
<div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a23ebcbb956f600e06435b28ae0c855d4"> 115</a></span>&#160;<span class="preprocessor">#define USB_ATTACHED_SUBSTATE_GET_DEVICE_DESCRIPTOR_SIZE 0x60</span></div>
<div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a474a95baaeb99abd17538c2a1364bf96"> 116</a></span>&#160;<span class="preprocessor">#define USB_STATE_ADDRESSING 0x70</span></div>
<div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#aac8c844e6a20f42298d70e4438a029e5"> 117</a></span>&#160;<span class="preprocessor">#define USB_STATE_CONFIGURING 0x80</span></div>
<div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a138c40c59f628eefbe273a8db0a96753"> 118</a></span>&#160;<span class="preprocessor">#define USB_STATE_RUNNING 0x90</span></div>
<div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a6fef5305841ac36f67d8ddb0bd9127d4"> 119</a></span>&#160;<span class="preprocessor">#define USB_STATE_ERROR 0xa0</span></div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div>
<div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="class_u_s_b_device_config.html"> 121</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_u_s_b_device_config.html">USBDeviceConfig</a> {</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div>
<div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="class_u_s_b_device_config.html#a3706cf6b18785aff823171e280bab738"> 124</a></span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_u_s_b_device_config.html#a3706cf6b18785aff823171e280bab738">Init</a>(uint8_t parent, uint8_t port, <span class="keywordtype">bool</span> lowspeed) {</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; }</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div>
<div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="class_u_s_b_device_config.html#aef77a1e62f78c04a1aad53e8795ec89e"> 128</a></span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_u_s_b_device_config.html#aef77a1e62f78c04a1aad53e8795ec89e">ConfigureDevice</a>(uint8_t parent, uint8_t port, <span class="keywordtype">bool</span> lowspeed) {</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; }</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div>
<div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="class_u_s_b_device_config.html#a61e301efedae55c6ac12c6cce154e432"> 132</a></span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_u_s_b_device_config.html#a61e301efedae55c6ac12c6cce154e432">Release</a>() {</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; }</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div>
<div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="class_u_s_b_device_config.html#a893ea73deab98be837c257201e7da25a"> 136</a></span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_u_s_b_device_config.html#a893ea73deab98be837c257201e7da25a">Poll</a>() {</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; }</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div>
<div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="class_u_s_b_device_config.html#a2bfde6c290d32888a6f4e97fa1e222f1"> 140</a></span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_u_s_b_device_config.html#a2bfde6c290d32888a6f4e97fa1e222f1">GetAddress</a>() {</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; }</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div>
<div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="class_u_s_b_device_config.html#a12bb63558ded5bb6661bb173b07ff391"> 144</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_u_s_b_device_config.html#a12bb63558ded5bb6661bb173b07ff391">ResetHubPort</a>(uint8_t port) {</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; } <span class="comment">// Note used for hubs only!</span></div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div>
<div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="class_u_s_b_device_config.html#af920743379d8c133dda4335d11601141"> 148</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_u_s_b_device_config.html#af920743379d8c133dda4335d11601141">VIDPIDOK</a>(uint16_t vid, uint16_t pid) {</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; }</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div>
<div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="class_u_s_b_device_config.html#a2bb3e09cf128c8ecd04ea0dfce2126e1"> 152</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_u_s_b_device_config.html#a2bb3e09cf128c8ecd04ea0dfce2126e1">DEVCLASSOK</a>(uint8_t klass) {</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; }</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div>
<div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="class_u_s_b_device_config.html#ad2d535af92d0b97e4445a6bd51d35c57"> 156</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_u_s_b_device_config.html#ad2d535af92d0b97e4445a6bd51d35c57">DEVSUBCLASSOK</a>(uint8_t subklass) {</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; }</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;};</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="comment">/* USB Setup Packet Structure */</span></div>
<div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="struct_s_e_t_u_p___p_k_t.html"> 163</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keyword">union </span>{ <span class="comment">// offset description</span></div>
<div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="struct_s_e_t_u_p___p_k_t.html#a9bbd6cf5a93a6433d2eb97c59b9102d5"> 166</a></span>&#160; uint8_t <a class="code" href="struct_s_e_t_u_p___p_k_t.html#a9bbd6cf5a93a6433d2eb97c59b9102d5">bmRequestType</a>; <span class="comment">// 0 Bit-map of request type</span></div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keyword">struct </span>{</div>
<div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="struct_s_e_t_u_p___p_k_t.html#a690a55f65b2ce4e69c426b92004a1cc6"> 169</a></span>&#160; uint8_t recipient : 5; <span class="comment">// Recipient of the request</span></div>
<div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="struct_s_e_t_u_p___p_k_t.html#ad9346ba7b7a4da6829142e23e3ba8a2f"> 170</a></span>&#160; uint8_t type : 2; <span class="comment">// Type of request</span></div>
<div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="struct_s_e_t_u_p___p_k_t.html#ab50c95fb951cdebc78c3e024de1d6d65"> 171</a></span>&#160; uint8_t direction : 1; <span class="comment">// Direction of data X-fer</span></div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; } __attribute__((packed));</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; } ReqType_u;</div>
<div class="line"><a name="l00174"></a><span class="lineno"><a class="line" href="struct_s_e_t_u_p___p_k_t.html#a321b931277d6ce278416dc5d74059016"> 174</a></span>&#160; uint8_t <a class="code" href="struct_s_e_t_u_p___p_k_t.html#a321b931277d6ce278416dc5d74059016">bRequest</a>; <span class="comment">// 1 Request</span></div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keyword">union </span>{</div>
<div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="struct_s_e_t_u_p___p_k_t.html#a1382f4a10a9b0774f803d1125dd9bb52"> 177</a></span>&#160; uint16_t <a class="code" href="struct_s_e_t_u_p___p_k_t.html#a1382f4a10a9b0774f803d1125dd9bb52">wValue</a>; <span class="comment">// 2 Depends on bRequest</span></div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keyword">struct </span>{</div>
<div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="struct_s_e_t_u_p___p_k_t.html#a68c9436c00560f96e044052c3fb681e9"> 180</a></span>&#160; uint8_t <a class="code" href="struct_s_e_t_u_p___p_k_t.html#a68c9436c00560f96e044052c3fb681e9">wValueLo</a>;</div>
<div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="struct_s_e_t_u_p___p_k_t.html#a04ea2d151f9edb6575fc159a58f1e443"> 181</a></span>&#160; uint8_t <a class="code" href="struct_s_e_t_u_p___p_k_t.html#a04ea2d151f9edb6575fc159a58f1e443">wValueHi</a>;</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; } __attribute__((packed));</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; } wVal_u;</div>
<div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="struct_s_e_t_u_p___p_k_t.html#a299d9f88d294369ea88b48b5026f4c7e"> 184</a></span>&#160; uint16_t <a class="code" href="struct_s_e_t_u_p___p_k_t.html#a299d9f88d294369ea88b48b5026f4c7e">wIndex</a>; <span class="comment">// 4 Depends on bRequest</span></div>
<div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="struct_s_e_t_u_p___p_k_t.html#a1ec9b19c0ed1e66e399ad9cf3c4a6537"> 185</a></span>&#160; uint16_t <a class="code" href="struct_s_e_t_u_p___p_k_t.html#a1ec9b19c0ed1e66e399ad9cf3c4a6537">wLength</a>; <span class="comment">// 6 Depends on bRequest</span></div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;} __attribute__((packed)) <a class="code" href="struct_s_e_t_u_p___p_k_t.html">SETUP_PKT</a>, *<a class="code" href="struct_s_e_t_u_p___p_k_t.html">PSETUP_PKT</a>;</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div>
<div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="class_u_s_b.html"> 190</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_u_s_b.html">USB</a> : <span class="keyword">public</span> <a class="code" href="class_m_a_x3421e.html">MAX3421E</a> {</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <a class="code" href="class_address_pool_impl.html">AddressPoolImpl&lt;USB_NUMDEVICES&gt;</a> addrPool;</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <a class="code" href="class_u_s_b_device_config.html">USBDeviceConfig</a>* devConfig[<a class="code" href="_usb_core_8h.html#a0282f9f7a0313f957e02449d7313b7b5">USB_NUMDEVICES</a>];</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; uint8_t bmHubPre;</div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <a class="code" href="class_u_s_b.html#a8ff8cd03496bdcb0ca26f18878ad299d">USB</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;</div>
<div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="class_u_s_b.html#aedcc6c06badd14b6fd3b0dda94269ad4"> 198</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_u_s_b.html#aedcc6c06badd14b6fd3b0dda94269ad4">SetHubPreMask</a>() {</div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; bmHubPre |= <a class="code" href="max3421e_8h.html#a8816c259368604d0de57f31bcb6c1674">bmHUBPRE</a>;</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; };</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;<span class="comment">// Base class for incoming data parser</span></div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div>
<div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="class_u_s_b_read_parser.html"> 192</a></span>&#160;class <a class="code" href="class_u_s_b_read_parser.html">USBReadParser</a> {</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> Parse(<span class="keyword">const</span> uint16_t len, <span class="keyword">const</span> uint8_t *pbuf, <span class="keyword">const</span> uint16_t &amp;offset) = 0;</div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;};</div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div>
<div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="class_u_s_b.html"> 197</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_u_s_b.html">USB</a> : <span class="keyword">public</span> <a class="code" href="class_m_a_x3421e.html">MAX3421E</a> {</div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <a class="code" href="class_address_pool_impl.html">AddressPoolImpl&lt;USB_NUMDEVICES&gt;</a> addrPool;</div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <a class="code" href="class_u_s_b_device_config.html">USBDeviceConfig</a>* devConfig[<a class="code" href="_usb_core_8h.html#a0282f9f7a0313f957e02449d7313b7b5">USB_NUMDEVICES</a>];</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; uint8_t bmHubPre;</div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;</div>
<div class="line"><a name="l00202"></a><span class="lineno"><a class="line" href="class_u_s_b.html#a5b4de045ea7fefe0fab967ddf44c39b1"> 202</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_u_s_b.html#a5b4de045ea7fefe0fab967ddf44c39b1">ResetHubPreMask</a>() {</div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; bmHubPre &amp;= (~<a class="code" href="max3421e_8h.html#a8816c259368604d0de57f31bcb6c1674">bmHUBPRE</a>);</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; };</div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;</div>
<div class="line"><a name="l00206"></a><span class="lineno"><a class="line" href="class_u_s_b.html#a66ab8f5eda239e761d5a48741ea1f9d4"> 206</a></span>&#160; <a class="code" href="class_address_pool.html">AddressPool</a>&amp; <a class="code" href="class_u_s_b.html#a66ab8f5eda239e761d5a48741ea1f9d4">GetAddressPool</a>() {</div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">return</span> (<a class="code" href="class_address_pool.html">AddressPool</a>&amp;)addrPool;</div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; };</div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div>
<div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="class_u_s_b.html#a3f66bf622590413ef2e1864f93a3e0d2"> 210</a></span>&#160; uint8_t <a class="code" href="class_u_s_b.html#a3f66bf622590413ef2e1864f93a3e0d2">RegisterDeviceClass</a>(<a class="code" href="class_u_s_b_device_config.html">USBDeviceConfig</a> *pdev) {</div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">for</span>(uint8_t i = 0; i &lt; <a class="code" href="_usb_core_8h.html#a0282f9f7a0313f957e02449d7313b7b5">USB_NUMDEVICES</a>; i++) {</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">if</span>(!devConfig[i]) {</div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; devConfig[i] = pdev;</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; }</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; }</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#ad4929f74079f3bc22b00936ae84d18b0">USB_ERROR_UNABLE_TO_REGISTER_DEVICE_CLASS</a>;</div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; };</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;</div>
<div class="line"><a name="l00220"></a><span class="lineno"><a class="line" href="class_u_s_b.html#a8346db8f2219f65257d735834940bc42"> 220</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_u_s_b.html#a8346db8f2219f65257d735834940bc42">ForEachUsbDevice</a>(<a class="code" href="address_8h.html#a90edb051235924cb5280032df397f393">UsbDeviceHandleFunc</a> pfunc) {</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; addrPool.<a class="code" href="class_address_pool_impl.html#a09e6dc797f82543eba0879369116182e">ForEachUsbDevice</a>(pfunc);</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; };</div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#a1c1aad8269403bf488e3bc4c79886ce4">getUsbTaskState</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_u_s_b.html#a8ff697d334dc611720419374acd1e5fb">setUsbTaskState</a>(uint8_t state);</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <a class="code" href="struct_ep_info.html">EpInfo</a>* <a class="code" href="class_u_s_b.html#a59ee57083ba492d87ff2947547848d58">getEpInfoEntry</a>(uint8_t addr, uint8_t ep);</div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#a6c3ba3f7e6dccb450267011ce783d7ea">setEpInfoEntry</a>(uint8_t addr, uint8_t epcount, <a class="code" href="struct_ep_info.html">EpInfo</a>* eprecord_ptr);</div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="comment">/* Control requests */</span></div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#a193e63c149fad46adabd77ceb09b2b24">getDevDescr</a>(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t* dataptr);</div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#a618eedabc161d8315be45cae0c8b6f89">getConfDescr</a>(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t conf, uint8_t* dataptr);</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <a class="code" href="class_u_s_b.html#a8ff8cd03496bdcb0ca26f18878ad299d">USB</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div>
<div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="class_u_s_b.html#aedcc6c06badd14b6fd3b0dda94269ad4"> 205</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_u_s_b.html#aedcc6c06badd14b6fd3b0dda94269ad4">SetHubPreMask</a>() {</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; bmHubPre |= <a class="code" href="max3421e_8h.html#a8816c259368604d0de57f31bcb6c1674">bmHUBPRE</a>;</div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; };</div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div>
<div class="line"><a name="l00209"></a><span class="lineno"><a class="line" href="class_u_s_b.html#a5b4de045ea7fefe0fab967ddf44c39b1"> 209</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_u_s_b.html#a5b4de045ea7fefe0fab967ddf44c39b1">ResetHubPreMask</a>() {</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; bmHubPre &amp;= (~<a class="code" href="max3421e_8h.html#a8816c259368604d0de57f31bcb6c1674">bmHUBPRE</a>);</div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; };</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div>
<div class="line"><a name="l00213"></a><span class="lineno"><a class="line" href="class_u_s_b.html#a66ab8f5eda239e761d5a48741ea1f9d4"> 213</a></span>&#160; <a class="code" href="class_address_pool.html">AddressPool</a>&amp; <a class="code" href="class_u_s_b.html#a66ab8f5eda239e761d5a48741ea1f9d4">GetAddressPool</a>() {</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordflow">return</span> (<a class="code" href="class_address_pool.html">AddressPool</a>&amp;)addrPool;</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; };</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;</div>
<div class="line"><a name="l00217"></a><span class="lineno"><a class="line" href="class_u_s_b.html#a3f66bf622590413ef2e1864f93a3e0d2"> 217</a></span>&#160; uint8_t <a class="code" href="class_u_s_b.html#a3f66bf622590413ef2e1864f93a3e0d2">RegisterDeviceClass</a>(<a class="code" href="class_u_s_b_device_config.html">USBDeviceConfig</a> *pdev) {</div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keywordflow">for</span>(uint8_t i = 0; i &lt; <a class="code" href="_usb_core_8h.html#a0282f9f7a0313f957e02449d7313b7b5">USB_NUMDEVICES</a>; i++) {</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordflow">if</span>(!devConfig[i]) {</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; devConfig[i] = pdev;</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; }</div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; }</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#ad4929f74079f3bc22b00936ae84d18b0">USB_ERROR_UNABLE_TO_REGISTER_DEVICE_CLASS</a>;</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; };</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div>
<div class="line"><a name="l00227"></a><span class="lineno"><a class="line" href="class_u_s_b.html#a8346db8f2219f65257d735834940bc42"> 227</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_u_s_b.html#a8346db8f2219f65257d735834940bc42">ForEachUsbDevice</a>(<a class="code" href="address_8h.html#ae95131d8d03796566b00a312faa8360a">UsbDeviceHandleFunc</a> pfunc) {</div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; addrPool.<a class="code" href="class_address_pool_impl.html#a09e6dc797f82543eba0879369116182e">ForEachUsbDevice</a>(pfunc);</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; };</div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#a1c1aad8269403bf488e3bc4c79886ce4">getUsbTaskState</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_u_s_b.html#a8ff697d334dc611720419374acd1e5fb">setUsbTaskState</a>(uint8_t state);</div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;</div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#a618eedabc161d8315be45cae0c8b6f89">getConfDescr</a>(uint8_t addr, uint8_t ep, uint8_t conf, <a class="code" href="class_u_s_b_read_parser.html">USBReadParser</a> *p);</div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#a372ecbe1d23955e8b04b5e95e0e4a833">getStrDescr</a>(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t index, uint16_t langid, uint8_t* dataptr);</div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#a3aea534daed66b5606fa798df7ad3c47">setAddr</a>(uint8_t oldaddr, uint8_t ep, uint8_t newaddr);</div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#a31e2c132ec32ffdde94dff72be87c378">setConf</a>(uint8_t addr, uint8_t ep, uint8_t conf_value);</div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; </div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#a994f9488ac6f91040c42d9b816d202c6">ctrlData</a>(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t* dataptr, <span class="keywordtype">boolean</span> direction);</div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#ab18915ffbd8a70ac5bd6abc3e0f3c66a">ctrlStatus</a>(uint8_t ep, <span class="keywordtype">boolean</span> direction, uint16_t nak_limit);</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#ad75d64f648b102fab2bd75e53e1324a4">inTransfer</a>(uint8_t addr, uint8_t ep, uint16_t *nbytesptr, uint8_t* data);</div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#affbc018973a588995457d535b0ac7ee7">outTransfer</a>(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t* data);</div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#a343d4b321cf8e99f0504cb04c7ce8b10">dispatchPkt</a>(uint8_t token, uint8_t ep, uint16_t nak_limit);</div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;</div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_u_s_b.html#aff8d1b2009c760bc27fb12762bd3c9b6">Task</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;</div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#a5eb0d31372d26f0015a0d7be0b9ff4e1">DefaultAddressing</a>(uint8_t parent, uint8_t port, <span class="keywordtype">bool</span> lowspeed);</div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#af4008dfc1c2d15c23cf8a7815cc17765">Configuring</a>(uint8_t parent, uint8_t port, <span class="keywordtype">bool</span> lowspeed);</div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#ac681c6c98e1641f705bc14d670a2663a">ReleaseDevice</a>(uint8_t addr);</div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;</div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(uint8_t addr, uint8_t ep, uint8_t bmReqType, uint8_t bRequest, uint8_t wValLo, uint8_t wValHi,</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; uint16_t wInd, uint16_t total, uint16_t nbytes, uint8_t* dataptr, <a class="code" href="class_u_s_b_read_parser.html">USBReadParser</a> *p);</div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <a class="code" href="struct_ep_info.html">EpInfo</a>* <a class="code" href="class_u_s_b.html#a59ee57083ba492d87ff2947547848d58">getEpInfoEntry</a>(uint8_t addr, uint8_t ep);</div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#a6c3ba3f7e6dccb450267011ce783d7ea">setEpInfoEntry</a>(uint8_t addr, uint8_t epcount, <a class="code" href="struct_ep_info.html">EpInfo</a>* eprecord_ptr);</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;</div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="comment">/* Control requests */</span></div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#a193e63c149fad46adabd77ceb09b2b24">getDevDescr</a>(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t* dataptr);</div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#a618eedabc161d8315be45cae0c8b6f89">getConfDescr</a>(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t conf, uint8_t* dataptr);</div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;</div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#a618eedabc161d8315be45cae0c8b6f89">getConfDescr</a>(uint8_t addr, uint8_t ep, uint8_t conf, <a class="code" href="class_u_s_b_read_parser.html">USBReadParser</a> *p);</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;</div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#a372ecbe1d23955e8b04b5e95e0e4a833">getStrDescr</a>(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t index, uint16_t langid, uint8_t* dataptr);</div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#a3aea534daed66b5606fa798df7ad3c47">setAddr</a>(uint8_t oldaddr, uint8_t ep, uint8_t newaddr);</div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#a31e2c132ec32ffdde94dff72be87c378">setConf</a>(uint8_t addr, uint8_t ep, uint8_t conf_value);</div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; </div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#a102dab8571035757dd63ed3751993836">ctrlData</a>(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t* dataptr, <span class="keywordtype">bool</span> direction);</div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#aec793bc1f702174d80bca8c66b8c65e8">ctrlStatus</a>(uint8_t ep, <span class="keywordtype">bool</span> direction, uint16_t nak_limit);</div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#ad75d64f648b102fab2bd75e53e1324a4">inTransfer</a>(uint8_t addr, uint8_t ep, uint16_t *nbytesptr, uint8_t* data);</div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#affbc018973a588995457d535b0ac7ee7">outTransfer</a>(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t* data);</div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#a343d4b321cf8e99f0504cb04c7ce8b10">dispatchPkt</a>(uint8_t token, uint8_t ep, uint16_t nak_limit);</div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_u_s_b.html#aff8d1b2009c760bc27fb12762bd3c9b6">Task</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;</div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keywordtype">void</span> init();</div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; uint8_t SetAddress(uint8_t addr, uint8_t ep, <a class="code" href="struct_ep_info.html">EpInfo</a> **ppep, uint16_t &amp;nak_limit);</div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; uint8_t OutTransfer(<a class="code" href="struct_ep_info.html">EpInfo</a> *pep, uint16_t nak_limit, uint16_t nbytes, uint8_t *data);</div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; uint8_t InTransfer(<a class="code" href="struct_ep_info.html">EpInfo</a> *pep, uint16_t nak_limit, uint16_t *nbytesptr, uint8_t *data);</div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; uint8_t AttemptConfig(uint8_t driver, uint8_t parent, uint8_t port, <span class="keywordtype">bool</span> lowspeed);</div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;};</div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;</div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;<span class="preprocessor">#if 0 //defined(USB_METHODS_INLINE)</span></div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;<span class="comment">//get device descriptor</span></div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;</div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;<span class="keyword">inline</span> uint8_t <a class="code" href="class_u_s_b.html#a193e63c149fad46adabd77ceb09b2b24">USB::getDevDescr</a>(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t* dataptr) {</div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keywordflow">return</span> ( <a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(addr, ep, <a class="code" href="_usb_core_8h.html#a060f3a6423f1e3640aa7b14d5ce72285">bmREQ_GET_DESCR</a>, <a class="code" href="usb__ch9_8h.html#a3572226ee2137c7fbf7487a02b0f560f">USB_REQUEST_GET_DESCRIPTOR</a>, 0x00, <a class="code" href="usb__ch9_8h.html#ac6d0566773ed4549fe1a7a932e6c46de">USB_DESCRIPTOR_DEVICE</a>, 0x0000, nbytes, dataptr));</div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;}</div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<span class="comment">//get configuration descriptor</span></div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;</div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;<span class="keyword">inline</span> uint8_t <a class="code" href="class_u_s_b.html#a618eedabc161d8315be45cae0c8b6f89">USB::getConfDescr</a>(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t conf, uint8_t* dataptr) {</div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keywordflow">return</span> ( <a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(addr, ep, <a class="code" href="_usb_core_8h.html#a060f3a6423f1e3640aa7b14d5ce72285">bmREQ_GET_DESCR</a>, <a class="code" href="usb__ch9_8h.html#a3572226ee2137c7fbf7487a02b0f560f">USB_REQUEST_GET_DESCRIPTOR</a>, conf, <a class="code" href="usb__ch9_8h.html#aa17b365c4eb8bd2f6a4d4e4fb5f881c7">USB_DESCRIPTOR_CONFIGURATION</a>, 0x0000, nbytes, dataptr));</div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;}</div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;<span class="comment">//get string descriptor</span></div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;</div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;<span class="keyword">inline</span> uint8_t <a class="code" href="class_u_s_b.html#a372ecbe1d23955e8b04b5e95e0e4a833">USB::getStrDescr</a>(uint8_t addr, uint8_t ep, uint16_t nuint8_ts, uint8_t index, uint16_t langid, uint8_t* dataptr) {</div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keywordflow">return</span> ( <a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(addr, ep, <a class="code" href="_usb_core_8h.html#a060f3a6423f1e3640aa7b14d5ce72285">bmREQ_GET_DESCR</a>, <a class="code" href="usb__ch9_8h.html#a3572226ee2137c7fbf7487a02b0f560f">USB_REQUEST_GET_DESCRIPTOR</a>, index, <a class="code" href="usb__ch9_8h.html#abbad38caa1ca9c52f47adccd3a850aed">USB_DESCRIPTOR_STRING</a>, langid, nuint8_ts, dataptr));</div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;}</div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;<span class="comment">//set address</span></div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;</div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;<span class="keyword">inline</span> uint8_t <a class="code" href="class_u_s_b.html#a3aea534daed66b5606fa798df7ad3c47">USB::setAddr</a>(uint8_t oldaddr, uint8_t ep, uint8_t newaddr) {</div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keywordflow">return</span> ( <a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(oldaddr, ep, <a class="code" href="_usb_core_8h.html#af4965e768593007eacde7644979f56da">bmREQ_SET</a>, <a class="code" href="usb__ch9_8h.html#ac87659819bfd6491120c819fae2d46bc">USB_REQUEST_SET_ADDRESS</a>, newaddr, 0x00, 0x0000, 0x0000, NULL));</div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;}</div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;<span class="comment">//set configuration</span></div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;</div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;<span class="keyword">inline</span> uint8_t <a class="code" href="class_u_s_b.html#a31e2c132ec32ffdde94dff72be87c378">USB::setConf</a>(uint8_t addr, uint8_t ep, uint8_t conf_value) {</div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keywordflow">return</span> ( <a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(addr, ep, <a class="code" href="_usb_core_8h.html#af4965e768593007eacde7644979f56da">bmREQ_SET</a>, <a class="code" href="usb__ch9_8h.html#aadef005acc40340955d34d9767ef297c">USB_REQUEST_SET_CONFIGURATION</a>, conf_value, 0x00, 0x0000, 0x0000, NULL));</div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;}</div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;</div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;<span class="preprocessor">#endif // defined(USB_METHODS_INLINE)</span></div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;</div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* USBCORE_H */</span><span class="preprocessor"></span></div>
<div class="ttc" id="class_u_s_b_html_a618eedabc161d8315be45cae0c8b6f89"><div class="ttname"><a href="class_u_s_b.html#a618eedabc161d8315be45cae0c8b6f89">USB::getConfDescr</a></div><div class="ttdeci">uint8_t getConfDescr(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t conf, uint8_t *dataptr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00766">Usb.cpp:766</a></div></div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#a5eb0d31372d26f0015a0d7be0b9ff4e1">DefaultAddressing</a>(uint8_t parent, uint8_t port, <span class="keywordtype">bool</span> lowspeed);</div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#af4008dfc1c2d15c23cf8a7815cc17765">Configuring</a>(uint8_t parent, uint8_t port, <span class="keywordtype">bool</span> lowspeed);</div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#ac681c6c98e1641f705bc14d670a2663a">ReleaseDevice</a>(uint8_t addr);</div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;</div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(uint8_t addr, uint8_t ep, uint8_t bmReqType, uint8_t bRequest, uint8_t wValLo, uint8_t wValHi,</div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; uint16_t wInd, uint16_t total, uint16_t nbytes, uint8_t* dataptr, <a class="code" href="class_u_s_b_read_parser.html">USBReadParser</a> *p);</div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;</div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keywordtype">void</span> init();</div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; uint8_t SetAddress(uint8_t addr, uint8_t ep, <a class="code" href="struct_ep_info.html">EpInfo</a> **ppep, uint16_t *nak_limit);</div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; uint8_t OutTransfer(<a class="code" href="struct_ep_info.html">EpInfo</a> *pep, uint16_t nak_limit, uint16_t nbytes, uint8_t *data);</div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; uint8_t InTransfer(<a class="code" href="struct_ep_info.html">EpInfo</a> *pep, uint16_t nak_limit, uint16_t *nbytesptr, uint8_t *data);</div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; uint8_t AttemptConfig(uint8_t driver, uint8_t parent, uint8_t port, <span class="keywordtype">bool</span> lowspeed);</div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;};</div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;</div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;<span class="preprocessor">#if 0 //defined(USB_METHODS_INLINE)</span></div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;<span class="comment">//get device descriptor</span></div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;</div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;<span class="keyword">inline</span> uint8_t <a class="code" href="class_u_s_b.html#a193e63c149fad46adabd77ceb09b2b24">USB::getDevDescr</a>(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t* dataptr) {</div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keywordflow">return</span> ( <a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(addr, ep, <a class="code" href="_usb_core_8h.html#a060f3a6423f1e3640aa7b14d5ce72285">bmREQ_GET_DESCR</a>, <a class="code" href="usb__ch9_8h.html#a3572226ee2137c7fbf7487a02b0f560f">USB_REQUEST_GET_DESCRIPTOR</a>, 0x00, <a class="code" href="usb__ch9_8h.html#ac6d0566773ed4549fe1a7a932e6c46de">USB_DESCRIPTOR_DEVICE</a>, 0x0000, nbytes, dataptr));</div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;}</div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;<span class="comment">//get configuration descriptor</span></div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;</div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;<span class="keyword">inline</span> uint8_t <a class="code" href="class_u_s_b.html#a618eedabc161d8315be45cae0c8b6f89">USB::getConfDescr</a>(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t conf, uint8_t* dataptr) {</div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keywordflow">return</span> ( <a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(addr, ep, <a class="code" href="_usb_core_8h.html#a060f3a6423f1e3640aa7b14d5ce72285">bmREQ_GET_DESCR</a>, <a class="code" href="usb__ch9_8h.html#a3572226ee2137c7fbf7487a02b0f560f">USB_REQUEST_GET_DESCRIPTOR</a>, conf, <a class="code" href="usb__ch9_8h.html#aa17b365c4eb8bd2f6a4d4e4fb5f881c7">USB_DESCRIPTOR_CONFIGURATION</a>, 0x0000, nbytes, dataptr));</div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;}</div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;<span class="comment">//get string descriptor</span></div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;</div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;<span class="keyword">inline</span> uint8_t <a class="code" href="class_u_s_b.html#a372ecbe1d23955e8b04b5e95e0e4a833">USB::getStrDescr</a>(uint8_t addr, uint8_t ep, uint16_t nuint8_ts, uint8_t index, uint16_t langid, uint8_t* dataptr) {</div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keywordflow">return</span> ( <a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(addr, ep, <a class="code" href="_usb_core_8h.html#a060f3a6423f1e3640aa7b14d5ce72285">bmREQ_GET_DESCR</a>, <a class="code" href="usb__ch9_8h.html#a3572226ee2137c7fbf7487a02b0f560f">USB_REQUEST_GET_DESCRIPTOR</a>, index, <a class="code" href="usb__ch9_8h.html#abbad38caa1ca9c52f47adccd3a850aed">USB_DESCRIPTOR_STRING</a>, langid, nuint8_ts, dataptr));</div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;}</div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;<span class="comment">//set address</span></div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;</div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<span class="keyword">inline</span> uint8_t <a class="code" href="class_u_s_b.html#a3aea534daed66b5606fa798df7ad3c47">USB::setAddr</a>(uint8_t oldaddr, uint8_t ep, uint8_t newaddr) {</div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keywordflow">return</span> ( <a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(oldaddr, ep, <a class="code" href="_usb_core_8h.html#af4965e768593007eacde7644979f56da">bmREQ_SET</a>, <a class="code" href="usb__ch9_8h.html#ac87659819bfd6491120c819fae2d46bc">USB_REQUEST_SET_ADDRESS</a>, newaddr, 0x00, 0x0000, 0x0000, NULL));</div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;}</div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;<span class="comment">//set configuration</span></div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;</div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;<span class="keyword">inline</span> uint8_t <a class="code" href="class_u_s_b.html#a31e2c132ec32ffdde94dff72be87c378">USB::setConf</a>(uint8_t addr, uint8_t ep, uint8_t conf_value) {</div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keywordflow">return</span> ( <a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(addr, ep, <a class="code" href="_usb_core_8h.html#af4965e768593007eacde7644979f56da">bmREQ_SET</a>, <a class="code" href="usb__ch9_8h.html#aadef005acc40340955d34d9767ef297c">USB_REQUEST_SET_CONFIGURATION</a>, conf_value, 0x00, 0x0000, 0x0000, NULL));</div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;}</div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;</div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;<span class="preprocessor">#endif // defined(USB_METHODS_INLINE)</span></div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;</div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* USBCORE_H */</span><span class="preprocessor"></span></div>
<div class="ttc" id="class_u_s_b_html_a618eedabc161d8315be45cae0c8b6f89"><div class="ttname"><a href="class_u_s_b.html#a618eedabc161d8315be45cae0c8b6f89">USB::getConfDescr</a></div><div class="ttdeci">uint8_t getConfDescr(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t conf, uint8_t *dataptr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00769">Usb.cpp:769</a></div></div>
<div class="ttc" id="class_address_pool_html"><div class="ttname"><a href="class_address_pool.html">AddressPool</a></div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00083">address.h:83</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a1382f4a10a9b0774f803d1125dd9bb52"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a1382f4a10a9b0774f803d1125dd9bb52">SETUP_PKT::wValue</a></div><div class="ttdeci">uint16_t wValue</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00170">UsbCore.h:170</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_a893ea73deab98be837c257201e7da25a"><div class="ttname"><a href="class_u_s_b_device_config.html#a893ea73deab98be837c257201e7da25a">USBDeviceConfig::Poll</a></div><div class="ttdeci">virtual uint8_t Poll()</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00134">UsbCore.h:134</a></div></div>
<div class="ttc" id="max3421e_8h_html_a8816c259368604d0de57f31bcb6c1674"><div class="ttname"><a href="max3421e_8h.html#a8816c259368604d0de57f31bcb6c1674">bmHUBPRE</a></div><div class="ttdeci">#define bmHUBPRE</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00170">max3421e.h:170</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_a2bfde6c290d32888a6f4e97fa1e222f1"><div class="ttname"><a href="class_u_s_b_device_config.html#a2bfde6c290d32888a6f4e97fa1e222f1">USBDeviceConfig::GetAddress</a></div><div class="ttdeci">virtual uint8_t GetAddress()</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00138">UsbCore.h:138</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a1382f4a10a9b0774f803d1125dd9bb52"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a1382f4a10a9b0774f803d1125dd9bb52">SETUP_PKT::wValue</a></div><div class="ttdeci">uint16_t wValue</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00177">UsbCore.h:177</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_a893ea73deab98be837c257201e7da25a"><div class="ttname"><a href="class_u_s_b_device_config.html#a893ea73deab98be837c257201e7da25a">USBDeviceConfig::Poll</a></div><div class="ttdeci">virtual uint8_t Poll()</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00136">UsbCore.h:136</a></div></div>
<div class="ttc" id="max3421e_8h_html_a8816c259368604d0de57f31bcb6c1674"><div class="ttname"><a href="max3421e_8h.html#a8816c259368604d0de57f31bcb6c1674">bmHUBPRE</a></div><div class="ttdeci">#define bmHUBPRE</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00165">max3421e.h:165</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_a2bfde6c290d32888a6f4e97fa1e222f1"><div class="ttname"><a href="class_u_s_b_device_config.html#a2bfde6c290d32888a6f4e97fa1e222f1">USBDeviceConfig::GetAddress</a></div><div class="ttdeci">virtual uint8_t GetAddress()</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00140">UsbCore.h:140</a></div></div>
<div class="ttc" id="class_u_s_b_html_a59ee57083ba492d87ff2947547848d58"><div class="ttname"><a href="class_u_s_b.html#a59ee57083ba492d87ff2947547848d58">USB::getEpInfoEntry</a></div><div class="ttdeci">EpInfo * getEpInfoEntry(uint8_t addr, uint8_t ep)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00044">Usb.cpp:44</a></div></div>
<div class="ttc" id="usb__ch9_8h_html_abbad38caa1ca9c52f47adccd3a850aed"><div class="ttname"><a href="usb__ch9_8h.html#abbad38caa1ca9c52f47adccd3a850aed">USB_DESCRIPTOR_STRING</a></div><div class="ttdeci">#define USB_DESCRIPTOR_STRING</div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00065">usb_ch9.h:65</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a1ec9b19c0ed1e66e399ad9cf3c4a6537"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a1ec9b19c0ed1e66e399ad9cf3c4a6537">SETUP_PKT::wLength</a></div><div class="ttdeci">uint16_t wLength</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00178">UsbCore.h:178</a></div></div>
<div class="ttc" id="class_m_a_x3421e_html"><div class="ttname"><a href="class_m_a_x3421e.html">MAX3421e</a></div><div class="ttdef"><b>Definition:</b> <a href="usbhost_8h_source.html#l00086">usbhost.h:86</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a1ec9b19c0ed1e66e399ad9cf3c4a6537"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a1ec9b19c0ed1e66e399ad9cf3c4a6537">SETUP_PKT::wLength</a></div><div class="ttdeci">uint16_t wLength</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00185">UsbCore.h:185</a></div></div>
<div class="ttc" id="class_m_a_x3421e_html"><div class="ttname"><a href="class_m_a_x3421e.html">MAX3421e</a></div><div class="ttdef"><b>Definition:</b> <a href="usbhost_8h_source.html#l00109">usbhost.h:109</a></div></div>
<div class="ttc" id="usb__ch9_8h_html_a3572226ee2137c7fbf7487a02b0f560f"><div class="ttname"><a href="usb__ch9_8h.html#a3572226ee2137c7fbf7487a02b0f560f">USB_REQUEST_GET_DESCRIPTOR</a></div><div class="ttdeci">#define USB_REQUEST_GET_DESCRIPTOR</div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00037">usb_ch9.h:37</a></div></div>
<div class="ttc" id="usb__ch9_8h_html_ac6d0566773ed4549fe1a7a932e6c46de"><div class="ttname"><a href="usb__ch9_8h.html#ac6d0566773ed4549fe1a7a932e6c46de">USB_DESCRIPTOR_DEVICE</a></div><div class="ttdeci">#define USB_DESCRIPTOR_DEVICE</div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00063">usb_ch9.h:63</a></div></div>
<div class="ttc" id="class_u_s_b_html_a31e2c132ec32ffdde94dff72be87c378"><div class="ttname"><a href="class_u_s_b.html#a31e2c132ec32ffdde94dff72be87c378">USB::setConf</a></div><div class="ttdeci">uint8_t setConf(uint8_t addr, uint8_t ep, uint8_t conf_value)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00805">Usb.cpp:805</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a0282f9f7a0313f957e02449d7313b7b5"><div class="ttname"><a href="_usb_core_8h.html#a0282f9f7a0313f957e02449d7313b7b5">USB_NUMDEVICES</a></div><div class="ttdeci">#define USB_NUMDEVICES</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00097">UsbCore.h:97</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html"><div class="ttname"><a href="class_u_s_b_device_config.html">USBDeviceConfig</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00119">UsbCore.h:119</a></div></div>
<div class="ttc" id="class_u_s_b_html_a102dab8571035757dd63ed3751993836"><div class="ttname"><a href="class_u_s_b.html#a102dab8571035757dd63ed3751993836">USB::ctrlData</a></div><div class="ttdeci">uint8_t ctrlData(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t *dataptr, bool direction)</div></div>
<div class="ttc" id="class_u_s_b_html_a31e2c132ec32ffdde94dff72be87c378"><div class="ttname"><a href="class_u_s_b.html#a31e2c132ec32ffdde94dff72be87c378">USB::setConf</a></div><div class="ttdeci">uint8_t setConf(uint8_t addr, uint8_t ep, uint8_t conf_value)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00808">Usb.cpp:808</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a0282f9f7a0313f957e02449d7313b7b5"><div class="ttname"><a href="_usb_core_8h.html#a0282f9f7a0313f957e02449d7313b7b5">USB_NUMDEVICES</a></div><div class="ttdeci">#define USB_NUMDEVICES</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00099">UsbCore.h:99</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html"><div class="ttname"><a href="class_u_s_b_device_config.html">USBDeviceConfig</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00121">UsbCore.h:121</a></div></div>
<div class="ttc" id="class_u_s_b_html_a6c3ba3f7e6dccb450267011ce783d7ea"><div class="ttname"><a href="class_u_s_b.html#a6c3ba3f7e6dccb450267011ce783d7ea">USB::setEpInfoEntry</a></div><div class="ttdeci">uint8_t setEpInfoEntry(uint8_t addr, uint8_t epcount, EpInfo *eprecord_ptr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00064">Usb.cpp:64</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_aef77a1e62f78c04a1aad53e8795ec89e"><div class="ttname"><a href="class_u_s_b_device_config.html#aef77a1e62f78c04a1aad53e8795ec89e">USBDeviceConfig::ConfigureDevice</a></div><div class="ttdeci">virtual uint8_t ConfigureDevice(uint8_t parent, uint8_t port, bool lowspeed)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00126">UsbCore.h:126</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a9bbd6cf5a93a6433d2eb97c59b9102d5"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a9bbd6cf5a93a6433d2eb97c59b9102d5">SETUP_PKT::bmRequestType</a></div><div class="ttdeci">uint8_t bmRequestType</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00159">UsbCore.h:159</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_aef77a1e62f78c04a1aad53e8795ec89e"><div class="ttname"><a href="class_u_s_b_device_config.html#aef77a1e62f78c04a1aad53e8795ec89e">USBDeviceConfig::ConfigureDevice</a></div><div class="ttdeci">virtual uint8_t ConfigureDevice(uint8_t parent, uint8_t port, bool lowspeed)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00128">UsbCore.h:128</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a9bbd6cf5a93a6433d2eb97c59b9102d5"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a9bbd6cf5a93a6433d2eb97c59b9102d5">SETUP_PKT::bmRequestType</a></div><div class="ttdeci">uint8_t bmRequestType</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00166">UsbCore.h:166</a></div></div>
<div class="ttc" id="class_u_s_b_html_a636695a5c3d35cd6b9e31c54edfacd7c"><div class="ttname"><a href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">USB::ctrlReq</a></div><div class="ttdeci">uint8_t ctrlReq(uint8_t addr, uint8_t ep, uint8_t bmReqType, uint8_t bRequest, uint8_t wValLo, uint8_t wValHi, uint16_t wInd, uint16_t total, uint16_t nbytes, uint8_t *dataptr, USBReadParser *p)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00126">Usb.cpp:126</a></div></div>
<div class="ttc" id="usb__ch9_8h_html_aa17b365c4eb8bd2f6a4d4e4fb5f881c7"><div class="ttname"><a href="usb__ch9_8h.html#aa17b365c4eb8bd2f6a4d4e4fb5f881c7">USB_DESCRIPTOR_CONFIGURATION</a></div><div class="ttdeci">#define USB_DESCRIPTOR_CONFIGURATION</div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00064">usb_ch9.h:64</a></div></div>
<div class="ttc" id="class_u_s_b_html_a5b4de045ea7fefe0fab967ddf44c39b1"><div class="ttname"><a href="class_u_s_b.html#a5b4de045ea7fefe0fab967ddf44c39b1">USB::ResetHubPreMask</a></div><div class="ttdeci">void ResetHubPreMask()</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00202">UsbCore.h:202</a></div></div>
<div class="ttc" id="class_u_s_b_html_a3aea534daed66b5606fa798df7ad3c47"><div class="ttname"><a href="class_u_s_b.html#a3aea534daed66b5606fa798df7ad3c47">USB::setAddr</a></div><div class="ttdeci">uint8_t setAddr(uint8_t oldaddr, uint8_t ep, uint8_t newaddr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00796">Usb.cpp:796</a></div></div>
<div class="ttc" id="class_u_s_b_html_ab18915ffbd8a70ac5bd6abc3e0f3c66a"><div class="ttname"><a href="class_u_s_b.html#ab18915ffbd8a70ac5bd6abc3e0f3c66a">USB::ctrlStatus</a></div><div class="ttdeci">uint8_t ctrlStatus(uint8_t ep, boolean direction, uint16_t nak_limit)</div></div>
<div class="ttc" id="class_u_s_b_html_a5b4de045ea7fefe0fab967ddf44c39b1"><div class="ttname"><a href="class_u_s_b.html#a5b4de045ea7fefe0fab967ddf44c39b1">USB::ResetHubPreMask</a></div><div class="ttdeci">void ResetHubPreMask()</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00209">UsbCore.h:209</a></div></div>
<div class="ttc" id="class_u_s_b_html_a3aea534daed66b5606fa798df7ad3c47"><div class="ttname"><a href="class_u_s_b.html#a3aea534daed66b5606fa798df7ad3c47">USB::setAddr</a></div><div class="ttdeci">uint8_t setAddr(uint8_t oldaddr, uint8_t ep, uint8_t newaddr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00799">Usb.cpp:799</a></div></div>
<div class="ttc" id="class_u_s_b_html_a8ff8cd03496bdcb0ca26f18878ad299d"><div class="ttname"><a href="class_u_s_b.html#a8ff8cd03496bdcb0ca26f18878ad299d">USB::USB</a></div><div class="ttdeci">USB(void)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00025">Usb.cpp:25</a></div></div>
<div class="ttc" id="address_8h_html_a90edb051235924cb5280032df397f393"><div class="ttname"><a href="address_8h.html#a90edb051235924cb5280032df397f393">UsbDeviceHandleFunc</a></div><div class="ttdeci">void(* UsbDeviceHandleFunc)(UsbDevice *pdev)</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00090">address.h:90</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a299d9f88d294369ea88b48b5026f4c7e"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a299d9f88d294369ea88b48b5026f4c7e">SETUP_PKT::wIndex</a></div><div class="ttdeci">uint16_t wIndex</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00177">UsbCore.h:177</a></div></div>
<div class="ttc" id="class_u_s_b_html_aedcc6c06badd14b6fd3b0dda94269ad4"><div class="ttname"><a href="class_u_s_b.html#aedcc6c06badd14b6fd3b0dda94269ad4">USB::SetHubPreMask</a></div><div class="ttdeci">void SetHubPreMask()</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00198">UsbCore.h:198</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a299d9f88d294369ea88b48b5026f4c7e"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a299d9f88d294369ea88b48b5026f4c7e">SETUP_PKT::wIndex</a></div><div class="ttdeci">uint16_t wIndex</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00184">UsbCore.h:184</a></div></div>
<div class="ttc" id="class_u_s_b_html_aedcc6c06badd14b6fd3b0dda94269ad4"><div class="ttname"><a href="class_u_s_b.html#aedcc6c06badd14b6fd3b0dda94269ad4">USB::SetHubPreMask</a></div><div class="ttdeci">void SetHubPreMask()</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00205">UsbCore.h:205</a></div></div>
<div class="ttc" id="struct_ep_info_html"><div class="ttname"><a href="struct_ep_info.html">EpInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00032">address.h:32</a></div></div>
<div class="ttc" id="class_u_s_b_html_a8ff697d334dc611720419374acd1e5fb"><div class="ttname"><a href="class_u_s_b.html#a8ff697d334dc611720419374acd1e5fb">USB::setUsbTaskState</a></div><div class="ttdeci">void setUsbTaskState(uint8_t state)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00040">Usb.cpp:40</a></div></div>
<div class="ttc" id="class_u_s_b_html_affbc018973a588995457d535b0ac7ee7"><div class="ttname"><a href="class_u_s_b.html#affbc018973a588995457d535b0ac7ee7">USB::outTransfer</a></div><div class="ttdeci">uint8_t outTransfer(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t *data)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00292">Usb.cpp:292</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a060f3a6423f1e3640aa7b14d5ce72285"><div class="ttname"><a href="_usb_core_8h.html#a060f3a6423f1e3640aa7b14d5ce72285">bmREQ_GET_DESCR</a></div><div class="ttdeci">#define bmREQ_GET_DESCR</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00045">UsbCore.h:45</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_a12bb63558ded5bb6661bb173b07ff391"><div class="ttname"><a href="class_u_s_b_device_config.html#a12bb63558ded5bb6661bb173b07ff391">USBDeviceConfig::ResetHubPort</a></div><div class="ttdeci">virtual void ResetHubPort(uint8_t port)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00142">UsbCore.h:142</a></div></div>
<div class="ttc" id="_usb_core_8h_html_ad4929f74079f3bc22b00936ae84d18b0"><div class="ttname"><a href="_usb_core_8h.html#ad4929f74079f3bc22b00936ae84d18b0">USB_ERROR_UNABLE_TO_REGISTER_DEVICE_CLASS</a></div><div class="ttdeci">#define USB_ERROR_UNABLE_TO_REGISTER_DEVICE_CLASS</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00077">UsbCore.h:77</a></div></div>
<div class="ttc" id="class_u_s_b_html_a372ecbe1d23955e8b04b5e95e0e4a833"><div class="ttname"><a href="class_u_s_b.html#a372ecbe1d23955e8b04b5e95e0e4a833">USB::getStrDescr</a></div><div class="ttdeci">uint8_t getStrDescr(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t index, uint16_t langid, uint8_t *dataptr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00791">Usb.cpp:791</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a060f3a6423f1e3640aa7b14d5ce72285"><div class="ttname"><a href="_usb_core_8h.html#a060f3a6423f1e3640aa7b14d5ce72285">bmREQ_GET_DESCR</a></div><div class="ttdeci">#define bmREQ_GET_DESCR</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00047">UsbCore.h:47</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_a12bb63558ded5bb6661bb173b07ff391"><div class="ttname"><a href="class_u_s_b_device_config.html#a12bb63558ded5bb6661bb173b07ff391">USBDeviceConfig::ResetHubPort</a></div><div class="ttdeci">virtual void ResetHubPort(uint8_t port)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00144">UsbCore.h:144</a></div></div>
<div class="ttc" id="_usb_core_8h_html_ad4929f74079f3bc22b00936ae84d18b0"><div class="ttname"><a href="_usb_core_8h.html#ad4929f74079f3bc22b00936ae84d18b0">USB_ERROR_UNABLE_TO_REGISTER_DEVICE_CLASS</a></div><div class="ttdeci">#define USB_ERROR_UNABLE_TO_REGISTER_DEVICE_CLASS</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00079">UsbCore.h:79</a></div></div>
<div class="ttc" id="class_u_s_b_html_a372ecbe1d23955e8b04b5e95e0e4a833"><div class="ttname"><a href="class_u_s_b.html#a372ecbe1d23955e8b04b5e95e0e4a833">USB::getStrDescr</a></div><div class="ttdeci">uint8_t getStrDescr(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t index, uint16_t langid, uint8_t *dataptr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00794">Usb.cpp:794</a></div></div>
<div class="ttc" id="usb__ch9_8h_html_ac87659819bfd6491120c819fae2d46bc"><div class="ttname"><a href="usb__ch9_8h.html#ac87659819bfd6491120c819fae2d46bc">USB_REQUEST_SET_ADDRESS</a></div><div class="ttdeci">#define USB_REQUEST_SET_ADDRESS</div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00036">usb_ch9.h:36</a></div></div>
<div class="ttc" id="_usb_core_8h_html_ae8ea2a106e94f5bb20be2fcbd4e402fb"><div class="ttname"><a href="_usb_core_8h.html#ae8ea2a106e94f5bb20be2fcbd4e402fb">MAX3421E</a></div><div class="ttdeci">MAX3421e&lt; P10, P9 &gt; MAX3421E</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00041">UsbCore.h:41</a></div></div>
<div class="ttc" id="class_u_s_b_read_parser_html"><div class="ttname"><a href="class_u_s_b_read_parser.html">USBReadParser</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00185">UsbCore.h:185</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html">SETUP_PKT</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00156">UsbCore.h:156</a></div></div>
<div class="ttc" id="class_u_s_b_html_aec793bc1f702174d80bca8c66b8c65e8"><div class="ttname"><a href="class_u_s_b.html#aec793bc1f702174d80bca8c66b8c65e8">USB::ctrlStatus</a></div><div class="ttdeci">uint8_t ctrlStatus(uint8_t ep, bool direction, uint16_t nak_limit)</div></div>
<div class="ttc" id="_usb_core_8h_html_ae8ea2a106e94f5bb20be2fcbd4e402fb"><div class="ttname"><a href="_usb_core_8h.html#ae8ea2a106e94f5bb20be2fcbd4e402fb">MAX3421E</a></div><div class="ttdeci">MAX3421e&lt; P10, P9 &gt; MAX3421E</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00043">UsbCore.h:43</a></div></div>
<div class="ttc" id="class_u_s_b_read_parser_html"><div class="ttname"><a href="class_u_s_b_read_parser.html">USBReadParser</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00192">UsbCore.h:192</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html">SETUP_PKT</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00163">UsbCore.h:163</a></div></div>
<div class="ttc" id="class_u_s_b_html_a1c1aad8269403bf488e3bc4c79886ce4"><div class="ttname"><a href="class_u_s_b.html#a1c1aad8269403bf488e3bc4c79886ce4">USB::getUsbTaskState</a></div><div class="ttdeci">uint8_t getUsbTaskState(void)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00036">Usb.cpp:36</a></div></div>
<div class="ttc" id="class_u_s_b_html_ad75d64f648b102fab2bd75e53e1324a4"><div class="ttname"><a href="class_u_s_b.html#ad75d64f648b102fab2bd75e53e1324a4">USB::inTransfer</a></div><div class="ttdeci">uint8_t inTransfer(uint8_t addr, uint8_t ep, uint16_t *nbytesptr, uint8_t *data)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00206">Usb.cpp:206</a></div></div>
<div class="ttc" id="class_u_s_b_html_aff8d1b2009c760bc27fb12762bd3c9b6"><div class="ttname"><a href="class_u_s_b.html#aff8d1b2009c760bc27fb12762bd3c9b6">USB::Task</a></div><div class="ttdeci">void Task(void)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00424">Usb.cpp:424</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_ad2d535af92d0b97e4445a6bd51d35c57"><div class="ttname"><a href="class_u_s_b_device_config.html#ad2d535af92d0b97e4445a6bd51d35c57">USBDeviceConfig::DEVSUBCLASSOK</a></div><div class="ttdeci">virtual bool DEVSUBCLASSOK(uint8_t subklass)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00156">UsbCore.h:156</a></div></div>
<div class="ttc" id="class_address_pool_impl_html"><div class="ttname"><a href="class_address_pool_impl.html">AddressPoolImpl&lt; USB_NUMDEVICES &gt;</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_a7f13c42ed2c8e72e1f63562576ca82d2"><div class="ttname"><a href="class_u_s_b_device_config.html#a7f13c42ed2c8e72e1f63562576ca82d2">USBDeviceConfig::DEVCLASSOK</a></div><div class="ttdeci">virtual boolean DEVCLASSOK(uint8_t klass)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00150">UsbCore.h:150</a></div></div>
<div class="ttc" id="class_address_pool_impl_html_a09e6dc797f82543eba0879369116182e"><div class="ttname"><a href="class_address_pool_impl.html#a09e6dc797f82543eba0879369116182e">AddressPoolImpl::ForEachUsbDevice</a></div><div class="ttdeci">void ForEachUsbDevice(UsbDeviceHandleFunc pfunc)</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00191">address.h:191</a></div></div>
<div class="ttc" id="class_u_s_b_html_a994f9488ac6f91040c42d9b816d202c6"><div class="ttname"><a href="class_u_s_b.html#a994f9488ac6f91040c42d9b816d202c6">USB::ctrlData</a></div><div class="ttdeci">uint8_t ctrlData(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t *dataptr, boolean direction)</div></div>
<div class="ttc" id="class_u_s_b_html_a343d4b321cf8e99f0504cb04c7ce8b10"><div class="ttname"><a href="class_u_s_b.html#a343d4b321cf8e99f0504cb04c7ce8b10">USB::dispatchPkt</a></div><div class="ttdeci">uint8_t dispatchPkt(uint8_t token, uint8_t ep, uint16_t nak_limit)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00376">Usb.cpp:376</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_a3706cf6b18785aff823171e280bab738"><div class="ttname"><a href="class_u_s_b_device_config.html#a3706cf6b18785aff823171e280bab738">USBDeviceConfig::Init</a></div><div class="ttdeci">virtual uint8_t Init(uint8_t parent, uint8_t port, bool lowspeed)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00122">UsbCore.h:122</a></div></div>
<div class="ttc" id="class_u_s_b_html_a66ab8f5eda239e761d5a48741ea1f9d4"><div class="ttname"><a href="class_u_s_b.html#a66ab8f5eda239e761d5a48741ea1f9d4">USB::GetAddressPool</a></div><div class="ttdeci">AddressPool &amp; GetAddressPool()</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00206">UsbCore.h:206</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_a3706cf6b18785aff823171e280bab738"><div class="ttname"><a href="class_u_s_b_device_config.html#a3706cf6b18785aff823171e280bab738">USBDeviceConfig::Init</a></div><div class="ttdeci">virtual uint8_t Init(uint8_t parent, uint8_t port, bool lowspeed)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00124">UsbCore.h:124</a></div></div>
<div class="ttc" id="class_u_s_b_html_a66ab8f5eda239e761d5a48741ea1f9d4"><div class="ttname"><a href="class_u_s_b.html#a66ab8f5eda239e761d5a48741ea1f9d4">USB::GetAddressPool</a></div><div class="ttdeci">AddressPool &amp; GetAddressPool()</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00213">UsbCore.h:213</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_af920743379d8c133dda4335d11601141"><div class="ttname"><a href="class_u_s_b_device_config.html#af920743379d8c133dda4335d11601141">USBDeviceConfig::VIDPIDOK</a></div><div class="ttdeci">virtual bool VIDPIDOK(uint16_t vid, uint16_t pid)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00148">UsbCore.h:148</a></div></div>
<div class="ttc" id="class_u_s_b_html_af4008dfc1c2d15c23cf8a7815cc17765"><div class="ttname"><a href="class_u_s_b.html#af4008dfc1c2d15c23cf8a7815cc17765">USB::Configuring</a></div><div class="ttdeci">uint8_t Configuring(uint8_t parent, uint8_t port, bool lowspeed)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00652">Usb.cpp:652</a></div></div>
<div class="ttc" id="class_u_s_b_html"><div class="ttname"><a href="class_u_s_b.html">USB</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00190">UsbCore.h:190</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_a1cf695242e2e22893eea9c892282221b"><div class="ttname"><a href="class_u_s_b_device_config.html#a1cf695242e2e22893eea9c892282221b">USBDeviceConfig::VIDPIDOK</a></div><div class="ttdeci">virtual boolean VIDPIDOK(uint16_t vid, uint16_t pid)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00146">UsbCore.h:146</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a321b931277d6ce278416dc5d74059016"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a321b931277d6ce278416dc5d74059016">SETUP_PKT::bRequest</a></div><div class="ttdeci">uint8_t bRequest</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00167">UsbCore.h:167</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_a61e301efedae55c6ac12c6cce154e432"><div class="ttname"><a href="class_u_s_b_device_config.html#a61e301efedae55c6ac12c6cce154e432">USBDeviceConfig::Release</a></div><div class="ttdeci">virtual uint8_t Release()</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00130">UsbCore.h:130</a></div></div>
<div class="ttc" id="class_u_s_b_html_a3f66bf622590413ef2e1864f93a3e0d2"><div class="ttname"><a href="class_u_s_b.html#a3f66bf622590413ef2e1864f93a3e0d2">USB::RegisterDeviceClass</a></div><div class="ttdeci">uint8_t RegisterDeviceClass(USBDeviceConfig *pdev)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00210">UsbCore.h:210</a></div></div>
<div class="ttc" id="_usb_core_8h_html_af4965e768593007eacde7644979f56da"><div class="ttname"><a href="_usb_core_8h.html#af4965e768593007eacde7644979f56da">bmREQ_SET</a></div><div class="ttdeci">#define bmREQ_SET</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00046">UsbCore.h:46</a></div></div>
<div class="ttc" id="class_u_s_b_html_a8346db8f2219f65257d735834940bc42"><div class="ttname"><a href="class_u_s_b.html#a8346db8f2219f65257d735834940bc42">USB::ForEachUsbDevice</a></div><div class="ttdeci">void ForEachUsbDevice(UsbDeviceHandleFunc pfunc)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00220">UsbCore.h:220</a></div></div>
<div class="ttc" id="class_u_s_b_html"><div class="ttname"><a href="class_u_s_b.html">USB</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00197">UsbCore.h:197</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a321b931277d6ce278416dc5d74059016"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a321b931277d6ce278416dc5d74059016">SETUP_PKT::bRequest</a></div><div class="ttdeci">uint8_t bRequest</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00174">UsbCore.h:174</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_a61e301efedae55c6ac12c6cce154e432"><div class="ttname"><a href="class_u_s_b_device_config.html#a61e301efedae55c6ac12c6cce154e432">USBDeviceConfig::Release</a></div><div class="ttdeci">virtual uint8_t Release()</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00132">UsbCore.h:132</a></div></div>
<div class="ttc" id="class_u_s_b_html_a3f66bf622590413ef2e1864f93a3e0d2"><div class="ttname"><a href="class_u_s_b.html#a3f66bf622590413ef2e1864f93a3e0d2">USB::RegisterDeviceClass</a></div><div class="ttdeci">uint8_t RegisterDeviceClass(USBDeviceConfig *pdev)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00217">UsbCore.h:217</a></div></div>
<div class="ttc" id="_usb_core_8h_html_af4965e768593007eacde7644979f56da"><div class="ttname"><a href="_usb_core_8h.html#af4965e768593007eacde7644979f56da">bmREQ_SET</a></div><div class="ttdeci">#define bmREQ_SET</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00048">UsbCore.h:48</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_a2bb3e09cf128c8ecd04ea0dfce2126e1"><div class="ttname"><a href="class_u_s_b_device_config.html#a2bb3e09cf128c8ecd04ea0dfce2126e1">USBDeviceConfig::DEVCLASSOK</a></div><div class="ttdeci">virtual bool DEVCLASSOK(uint8_t klass)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00152">UsbCore.h:152</a></div></div>
<div class="ttc" id="class_u_s_b_html_a8346db8f2219f65257d735834940bc42"><div class="ttname"><a href="class_u_s_b.html#a8346db8f2219f65257d735834940bc42">USB::ForEachUsbDevice</a></div><div class="ttdeci">void ForEachUsbDevice(UsbDeviceHandleFunc pfunc)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00227">UsbCore.h:227</a></div></div>
<div class="ttc" id="usb__ch9_8h_html_aadef005acc40340955d34d9767ef297c"><div class="ttname"><a href="usb__ch9_8h.html#aadef005acc40340955d34d9767ef297c">USB_REQUEST_SET_CONFIGURATION</a></div><div class="ttdeci">#define USB_REQUEST_SET_CONFIGURATION</div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00040">usb_ch9.h:40</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a04ea2d151f9edb6575fc159a58f1e443"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a04ea2d151f9edb6575fc159a58f1e443">SETUP_PKT::wValueHi</a></div><div class="ttdeci">uint8_t wValueHi</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00174">UsbCore.h:174</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a04ea2d151f9edb6575fc159a58f1e443"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a04ea2d151f9edb6575fc159a58f1e443">SETUP_PKT::wValueHi</a></div><div class="ttdeci">uint8_t wValueHi</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00181">UsbCore.h:181</a></div></div>
<div class="ttc" id="class_u_s_b_html_a5eb0d31372d26f0015a0d7be0b9ff4e1"><div class="ttname"><a href="class_u_s_b.html#a5eb0d31372d26f0015a0d7be0b9ff4e1">USB::DefaultAddressing</a></div><div class="ttdeci">uint8_t DefaultAddressing(uint8_t parent, uint8_t port, bool lowspeed)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00530">Usb.cpp:530</a></div></div>
<div class="ttc" id="class_u_s_b_html_a193e63c149fad46adabd77ceb09b2b24"><div class="ttname"><a href="class_u_s_b.html#a193e63c149fad46adabd77ceb09b2b24">USB::getDevDescr</a></div><div class="ttdeci">uint8_t getDevDescr(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t *dataptr)</div><div class="ttdoc">defined(USB_METHODS_INLINE) </div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00761">Usb.cpp:761</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a68c9436c00560f96e044052c3fb681e9"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a68c9436c00560f96e044052c3fb681e9">SETUP_PKT::wValueLo</a></div><div class="ttdeci">uint8_t wValueLo</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00173">UsbCore.h:173</a></div></div>
<div class="ttc" id="class_u_s_b_html_ac681c6c98e1641f705bc14d670a2663a"><div class="ttname"><a href="class_u_s_b.html#ac681c6c98e1641f705bc14d670a2663a">USB::ReleaseDevice</a></div><div class="ttdeci">uint8_t ReleaseDevice(uint8_t addr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00746">Usb.cpp:746</a></div></div>
<div class="ttc" id="class_u_s_b_html_a193e63c149fad46adabd77ceb09b2b24"><div class="ttname"><a href="class_u_s_b.html#a193e63c149fad46adabd77ceb09b2b24">USB::getDevDescr</a></div><div class="ttdeci">uint8_t getDevDescr(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t *dataptr)</div><div class="ttdoc">defined(USB_METHODS_INLINE) </div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00764">Usb.cpp:764</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a68c9436c00560f96e044052c3fb681e9"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a68c9436c00560f96e044052c3fb681e9">SETUP_PKT::wValueLo</a></div><div class="ttdeci">uint8_t wValueLo</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00180">UsbCore.h:180</a></div></div>
<div class="ttc" id="address_8h_html_ae95131d8d03796566b00a312faa8360a"><div class="ttname"><a href="address_8h.html#ae95131d8d03796566b00a312faa8360a">UsbDeviceHandleFunc</a></div><div class="ttdeci">void(* UsbDeviceHandleFunc)(UsbDevice *pdev)</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00090">address.h:90</a></div></div>
<div class="ttc" id="class_u_s_b_html_ac681c6c98e1641f705bc14d670a2663a"><div class="ttname"><a href="class_u_s_b.html#ac681c6c98e1641f705bc14d670a2663a">USB::ReleaseDevice</a></div><div class="ttdeci">uint8_t ReleaseDevice(uint8_t addr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00749">Usb.cpp:749</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.7
</a> 1.8.9.1
</small></address>
</body>
</html>

View file

@ -3,15 +3,16 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<meta name="generator" content="Doxygen 1.8.9.1"/>
<title>USB Host Shield 2.0: Wii.cpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="imageStyle.css" rel="stylesheet" type="text/css"/>
@ -31,7 +32,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.7 -->
<!-- Generated by Doxygen 1.8.9.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -70,7 +71,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
@ -97,7 +98,7 @@ Include dependency graph for Wii.cpp:</div>
<div class="dyncontent">
<div class="center"><img src="_wii_8cpp__incl.png" border="0" usemap="#_wii_8cpp" alt=""/></div>
<map name="_wii_8cpp" id="_wii_8cpp">
<area shape="rect" id="node2" href="_wii_8h.html" title="Wii.h" alt="" coords="68,79,119,104"/><area shape="rect" id="node3" href="_b_t_d_8h.html" title="BTD.h" alt="" coords="5,152,64,177"/><area shape="rect" id="node5" href="controller_enums_8h.html" title="controllerEnums.h" alt="" coords="88,152,217,177"/><area shape="rect" id="node4" href="_usb_8h.html" title="Usb.h" alt="" coords="7,225,63,251"/></map>
<area shape="rect" id="node2" href="_wii_8h.html" title="Wii.h" alt="" coords="68,79,119,104"/><area shape="rect" id="node3" href="_b_t_d_8h.html" title="BTD.h" alt="" coords="5,152,64,177"/><area shape="rect" id="node7" href="controller_enums_8h.html" title="controllerEnums.h" alt="" coords="88,152,217,177"/><area shape="rect" id="node4" href="_usb_8h.html" title="Usb.h" alt="" coords="27,372,83,397"/><area shape="rect" id="node5" href="hid_8h.html" title="hid.h" alt="" coords="42,225,92,251"/><area shape="rect" id="node6" href="hidusagestr_8h.html" title="hidusagestr.h" alt="" coords="93,299,193,324"/></map>
</div>
</div>
<p><a href="_wii_8cpp_source.html">Go to the source code of this file.</a></p>
@ -217,7 +218,7 @@ Variables</h2></td></tr>
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.7
</a> 1.8.9.1
</small></address>
</body>
</html>

View file

@ -1,6 +1,8 @@
<map id="Wii.cpp" name="Wii.cpp">
<area shape="rect" id="node2" href="$_wii_8h.html" title="Wii.h" alt="" coords="68,79,119,104"/>
<area shape="rect" id="node3" href="$_b_t_d_8h.html" title="BTD.h" alt="" coords="5,152,64,177"/>
<area shape="rect" id="node5" href="$controller_enums_8h.html" title="controllerEnums.h" alt="" coords="88,152,217,177"/>
<area shape="rect" id="node4" href="$_usb_8h.html" title="Usb.h" alt="" coords="7,225,63,251"/>
<area shape="rect" id="node7" href="$controller_enums_8h.html" title="controllerEnums.h" alt="" coords="88,152,217,177"/>
<area shape="rect" id="node4" href="$_usb_8h.html" title="Usb.h" alt="" coords="27,372,83,397"/>
<area shape="rect" id="node5" href="$hid_8h.html" title="hid.h" alt="" coords="42,225,92,251"/>
<area shape="rect" id="node6" href="$hidusagestr_8h.html" title="hidusagestr.h" alt="" coords="93,299,193,324"/>
</map>

View file

@ -1 +1 @@
ea76bb891427717ec3bb9ab7b2d76881
083313d0770479906a6dbdca88768783

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.4 KiB

After

Width:  |  Height:  |  Size: 18 KiB

File diff suppressed because it is too large Load diff

View file

@ -3,15 +3,16 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<meta name="generator" content="Doxygen 1.8.9.1"/>
<title>USB Host Shield 2.0: Wii.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="imageStyle.css" rel="stylesheet" type="text/css"/>
@ -31,7 +32,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.7 -->
<!-- Generated by Doxygen 1.8.9.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -70,7 +71,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
@ -100,7 +101,7 @@ Include dependency graph for Wii.h:</div>
<div class="dyncontent">
<div class="center"><img src="_wii_8h__incl.png" border="0" usemap="#_wii_8h" alt=""/></div>
<map name="_wii_8h" id="_wii_8h">
<area shape="rect" id="node2" href="_b_t_d_8h.html" title="BTD.h" alt="" coords="5,79,64,104"/><area shape="rect" id="node4" href="controller_enums_8h.html" title="controllerEnums.h" alt="" coords="88,79,217,104"/><area shape="rect" id="node3" href="_usb_8h.html" title="Usb.h" alt="" coords="7,152,63,177"/></map>
<area shape="rect" id="node2" href="_b_t_d_8h.html" title="BTD.h" alt="" coords="5,79,64,104"/><area shape="rect" id="node6" href="controller_enums_8h.html" title="controllerEnums.h" alt="" coords="88,79,217,104"/><area shape="rect" id="node3" href="_usb_8h.html" title="Usb.h" alt="" coords="27,299,83,324"/><area shape="rect" id="node4" href="hid_8h.html" title="hid.h" alt="" coords="42,152,92,177"/><area shape="rect" id="node5" href="hidusagestr_8h.html" title="hidusagestr.h" alt="" coords="93,225,193,251"/></map>
</div>
</div><div class="textblock"><div class="dynheader">
This graph shows which files directly or indirectly include this file:</div>
@ -249,7 +250,7 @@ Enumerations</h2></td></tr>
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.7
</a> 1.8.9.1
</small></address>
</body>
</html>

Some files were not shown because too many files have changed in this diff Show more