diff --git a/README.md b/README.md index 0c6a98eb..ef752f0c 100644 --- a/README.md +++ b/README.md @@ -5,42 +5,26 @@ SdFat requires Arduino 1.6x or greater. Key changes: -The SPI divisor has been replaced by SPISettings in the begin() call. +Support for multiple SPI ports now uses a pointer to a SPIClass object. +See the STM32Test example. ``` -bool begin(uint8_t csPin = SS, SPISettings spiSettings = SPI_FULL_SPEED); +explicit SdFat(SPIClass* spiPort); +\\ or +explicit SdFatEX(SPIClass* spiPort); ``` -Several macros have been defined for backward compatibility. - -``` -#define SD_SCK_MHZ(maxMhz) SPISettings(1000000UL*maxMhz, MSBFIRST, SPI_MODE0) -// SPI divisor constants -/** Set SCK to max possible rate. */ -#define SPI_FULL_SPEED SD_SCK_MHZ(50) -/** Set SCK rate to F_CPU/3 for Due */ -#define SPI_DIV3_SPEED SD_SCK_HZ(F_CPU/3) -/** Set SCK rate to F_CPU/4. */ -#define SPI_HALF_SPEED SD_SCK_HZ(F_CPU/4) -// ... -``` +Open flags now follow POSIX conventions. O_RDONLY is the same as O_READ and O_WRONLY is the +same as O_WRITE. One and only one of of the mode flags, O_RDONLY, O_RDWR, or +O_WRONLY is required. + +Open flags for Particle Gen3 and ARM boards are now defined by fcntl.h. +See SdFatConfig.h for options. -There are two new classes, SdFatEX and SdFatSoftSpiEX. +Support for particle Gen3 devices. -Teensy 3.5/3.6 SDIO support has been added. Try the TeensySdioDemo example. -Many other example will work with Teensy SDIO if you use the SdFatSdio classes -and call begin with no parameters. +New cluster allocation algorithm. -``` - SdFatSdio sd; - - .... - - if (!sd.begin()) { - // Handle failure. - } - -``` Please read changes.txt and the html documentation in the extras folder for more information. Please report problems as issues. @@ -53,6 +37,6 @@ html/index.html and read the Main Page. Next go to the Classes tab and read the documentation for the classes SdFat, SdFatEX, SdBaseFile, SdFile, File, StdioStream, ifstream, ofstream, and others. -Please continue by reading the html documentation. +Please continue by reading the html documentation in SdFat/extras/html -Updated 26 Apr 2017 +Updated 28 Dec 2018 diff --git a/examples/#attic/fgetsRewrite/fgetsRewrite.ino b/examples/#attic/fgetsRewrite/fgetsRewrite.ino index cf0b729e..159445e0 100644 --- a/examples/#attic/fgetsRewrite/fgetsRewrite.ino +++ b/examples/#attic/fgetsRewrite/fgetsRewrite.ino @@ -66,7 +66,7 @@ void demoFgets() { //------------------------------------------------------------------------------ void makeTestFile() { // create or open test file - SdFile wrfile("fgets.txt", O_WRITE | O_CREAT | O_TRUNC); + SdFile wrfile("fgets.txt", O_WRONLY | O_CREAT | O_TRUNC); // check for open error if (!wrfile.isOpen()) { diff --git a/examples/DirectoryFunctions/DirectoryFunctions.ino b/examples/DirectoryFunctions/DirectoryFunctions.ino index 87b68871..d37ff5cd 100644 --- a/examples/DirectoryFunctions/DirectoryFunctions.ino +++ b/examples/DirectoryFunctions/DirectoryFunctions.ino @@ -53,7 +53,7 @@ void setup() { int rootFileCount = 0; sd.vwd()->rewind(); - while (file.openNext(sd.vwd(), O_READ)) { + while (file.openNext(sd.vwd(), O_RDONLY)) { if (!file.isHidden()) { rootFileCount++; } @@ -73,7 +73,7 @@ void setup() { cout << F("Created Folder1\n"); // Create a file in Folder1 using a path. - if (!file.open("Folder1/file1.txt", O_CREAT | O_WRITE)) { + if (!file.open("Folder1/file1.txt", O_WRONLY | O_CREAT)) { error("create Folder1/file1.txt failed"); } file.close(); @@ -86,7 +86,7 @@ void setup() { cout << F("chdir to Folder1\n"); // Create File2.txt in current directory. - if (!file.open("File2.txt", O_CREAT | O_WRITE)) { + if (!file.open("File2.txt", O_WRONLY | O_CREAT)) { error("create File2.txt failed"); } file.close(); diff --git a/examples/LongFileName/LongFileName.ino b/examples/LongFileName/LongFileName.ino index a3fb27ae..92d04a05 100644 --- a/examples/LongFileName/LongFileName.ino +++ b/examples/LongFileName/LongFileName.ino @@ -41,10 +41,10 @@ void setup() { Serial.println(); // List files in root directory. - if (!dirFile.open("/", O_READ)) { + if (!dirFile.open("/", O_RDONLY)) { sd.errorHalt("open root failed"); } - while (n < nMax && file.openNext(&dirFile, O_READ)) { + while (n < nMax && file.openNext(&dirFile, O_RDONLY)) { // Skip directories and hidden files. if (!file.isSubDir() && !file.isHidden()) { @@ -81,7 +81,7 @@ void loop() { return; } Serial.println(i); - if (!file.open(&dirFile, dirIndex[i], O_READ)) { + if (!file.open(&dirFile, dirIndex[i], O_RDONLY)) { sd.errorHalt(F("open")); } Serial.println(); diff --git a/examples/LowLatencyLogger/LowLatencyLogger.ino b/examples/LowLatencyLogger/LowLatencyLogger.ino index 35cd3821..a50a5305 100644 --- a/examples/LowLatencyLogger/LowLatencyLogger.ino +++ b/examples/LowLatencyLogger/LowLatencyLogger.ino @@ -197,7 +197,7 @@ void binaryToCsv() { strcpy(csvName, binName); strcpy(&csvName[BASE_NAME_SIZE + 3], "csv"); - if (!csvFile.open(csvName, O_WRITE | O_CREAT | O_TRUNC)) { + if (!csvFile.open(csvName, O_WRONLY | O_CREAT | O_TRUNC)) { error("open csvFile failed"); } binFile.rewind(); @@ -338,7 +338,7 @@ void openBinFile() { } binFile.close(); strcpy(binName, name); - if (!binFile.open(binName, O_READ)) { + if (!binFile.open(binName, O_RDONLY)) { Serial.println(F("open failed")); return; } diff --git a/examples/LowLatencyLoggerADXL345/LowLatencyLogger.ino b/examples/LowLatencyLoggerADXL345/LowLatencyLogger.ino index 35cd3821..a50a5305 100644 --- a/examples/LowLatencyLoggerADXL345/LowLatencyLogger.ino +++ b/examples/LowLatencyLoggerADXL345/LowLatencyLogger.ino @@ -197,7 +197,7 @@ void binaryToCsv() { strcpy(csvName, binName); strcpy(&csvName[BASE_NAME_SIZE + 3], "csv"); - if (!csvFile.open(csvName, O_WRITE | O_CREAT | O_TRUNC)) { + if (!csvFile.open(csvName, O_WRONLY | O_CREAT | O_TRUNC)) { error("open csvFile failed"); } binFile.rewind(); @@ -338,7 +338,7 @@ void openBinFile() { } binFile.close(); strcpy(binName, name); - if (!binFile.open(binName, O_READ)) { + if (!binFile.open(binName, O_RDONLY)) { Serial.println(F("open failed")); return; } diff --git a/examples/LowLatencyLoggerMPU6050/LowLatencyLogger.ino b/examples/LowLatencyLoggerMPU6050/LowLatencyLogger.ino index 35cd3821..a50a5305 100644 --- a/examples/LowLatencyLoggerMPU6050/LowLatencyLogger.ino +++ b/examples/LowLatencyLoggerMPU6050/LowLatencyLogger.ino @@ -197,7 +197,7 @@ void binaryToCsv() { strcpy(csvName, binName); strcpy(&csvName[BASE_NAME_SIZE + 3], "csv"); - if (!csvFile.open(csvName, O_WRITE | O_CREAT | O_TRUNC)) { + if (!csvFile.open(csvName, O_WRONLY | O_CREAT | O_TRUNC)) { error("open csvFile failed"); } binFile.rewind(); @@ -338,7 +338,7 @@ void openBinFile() { } binFile.close(); strcpy(binName, name); - if (!binFile.open(binName, O_READ)) { + if (!binFile.open(binName, O_RDONLY)) { Serial.println(F("open failed")); return; } diff --git a/examples/OpenNext/OpenNext.ino b/examples/OpenNext/OpenNext.ino index 65dee761..56329b4c 100644 --- a/examples/OpenNext/OpenNext.ino +++ b/examples/OpenNext/OpenNext.ino @@ -35,7 +35,7 @@ void setup() { // Warning, openNext starts at the current position of sd.vwd() so a // rewind may be neccessary in your application. sd.vwd()->rewind(); - while (file.openNext(sd.vwd(), O_READ)) { + while (file.openNext(sd.vwd(), O_RDONLY)) { file.printFileSize(&Serial); Serial.write(' '); file.printModifyDateTime(&Serial); diff --git a/examples/PrintBenchmark/PrintBenchmark.ino b/examples/PrintBenchmark/PrintBenchmark.ino index 9dab3f77..d7cc68d4 100644 --- a/examples/PrintBenchmark/PrintBenchmark.ino +++ b/examples/PrintBenchmark/PrintBenchmark.ino @@ -65,7 +65,7 @@ void loop() { char fileName[13] = "bench0.txt"; fileName[5] = '0' + test; // open or create file - truncate existing file. - if (!file.open(fileName, O_CREAT | O_TRUNC | O_RDWR)) { + if (!file.open(fileName, O_RDWR | O_CREAT | O_TRUNC)) { error("open failed"); } maxLatency = 0; diff --git a/examples/STM32Test/STM32Test.ino b/examples/STM32Test/STM32Test.ino index f8f2f9fa..ff784923 100644 --- a/examples/STM32Test/STM32Test.ino +++ b/examples/STM32Test/STM32Test.ino @@ -9,13 +9,15 @@ // set ENABLE_EXTENDED_TRANSFER_CLASS non-zero to use faster EX classes // Use first SPI port -SdFat sd1(1); -// SdFatEX sd1(1); +SdFat sd1; +// SdFatEX sd1; const uint8_t SD1_CS = PA4; // chip select for sd1 // Use second SPI port -SdFat sd2(2); -// SdFatEX sd2(2); +SPIClass SPI_2(2); +SdFat sd2(&SPI_2); +// SdFatEX sd2(&SPI_2); + const uint8_t SD2_CS = PB12; // chip select for sd2 const uint8_t BUF_DIM = 100; @@ -120,7 +122,7 @@ void setup() { // create or open /Dir2/copy.bin and truncate it to zero length SdFile file2; - if (!file2.open("copy.bin", O_WRITE | O_CREAT | O_TRUNC)) { + if (!file2.open("copy.bin", O_WRONLY | O_CREAT | O_TRUNC)) { sd2.errorExit("file2"); } Serial.println(F("Copying test.bin to copy.bin")); diff --git a/examples/SoftwareSpi/SoftwareSpi.ino b/examples/SoftwareSpi/SoftwareSpi.ino index 5d5846ac..7d34e24c 100644 --- a/examples/SoftwareSpi/SoftwareSpi.ino +++ b/examples/SoftwareSpi/SoftwareSpi.ino @@ -36,7 +36,7 @@ void setup() { sd.initErrorHalt(); } - if (!file.open("SoftSPI.txt", O_CREAT | O_RDWR)) { + if (!file.open("SoftSPI.txt", O_RDWR | O_CREAT)) { sd.errorHalt(F("open failed")); } file.println(F("This line was printed using software SPI.")); diff --git a/examples/StdioBench/StdioBench.ino b/examples/StdioBench/StdioBench.ino index d1461832..2afe836c 100644 --- a/examples/StdioBench/StdioBench.ino +++ b/examples/StdioBench/StdioBench.ino @@ -53,7 +53,7 @@ void setup() { for (uint8_t dataType = 0; dataType < 5; dataType++) { for (uint8_t fileType = 0; fileType < 2; fileType++) { if (!fileType) { - if (!printFile.open("print.txt", O_CREAT | O_RDWR | O_TRUNC)) { + if (!printFile.open("print.txt", O_RDWR | O_CREAT | O_TRUNC)) { Serial.println(F("open fail")); return; } diff --git a/examples/Timestamp/Timestamp.ino b/examples/Timestamp/Timestamp.ino index f62328e6..9a7fd2b7 100644 --- a/examples/Timestamp/Timestamp.ino +++ b/examples/Timestamp/Timestamp.ino @@ -96,7 +96,7 @@ void setup(void) { sd.remove("stamp.txt"); // create a new file with default timestamps - if (!file.open("default.txt", O_CREAT | O_WRITE)) { + if (!file.open("default.txt", O_WRONLY | O_CREAT)) { error("open default.txt failed"); } cout << F("\nOpen with default times\n"); @@ -119,7 +119,7 @@ void setup(void) { SdFile::dateTimeCallback(dateTime); // create a new file with callback timestamps - if (!file.open("callback.txt", O_CREAT | O_WRITE)) { + if (!file.open("callback.txt", O_WRONLY | O_CREAT)) { error("open callback.txt failed"); } cout << ("\nOpen with callback times\n"); @@ -151,7 +151,7 @@ void setup(void) { SdFile::dateTimeCallbackCancel(); // create a new file with default timestamps - if (!file.open("stamp.txt", O_CREAT | O_WRITE)) { + if (!file.open("stamp.txt", O_WRONLY | O_CREAT)) { error("open stamp.txt failed"); } // set creation date time diff --git a/examples/TwoCards/TwoCards.ino b/examples/TwoCards/TwoCards.ino index d77292c6..1adbdf24 100644 --- a/examples/TwoCards/TwoCards.ino +++ b/examples/TwoCards/TwoCards.ino @@ -117,7 +117,7 @@ void setup() { // create or open /Dir2/copy.bin and truncate it to zero length SdFile file2; - if (!file2.open("copy.bin", O_WRITE | O_CREAT | O_TRUNC)) { + if (!file2.open("copy.bin", O_WRONLY | O_CREAT | O_TRUNC)) { sd2.errorExit("file2"); } Serial.println(F("Copying test.bin to copy.bin")); diff --git a/examples/VolumeFreeSpace/VolumeFreeSpace.ino b/examples/VolumeFreeSpace/VolumeFreeSpace.ino index b9a43ff9..a64bb6fe 100644 --- a/examples/VolumeFreeSpace/VolumeFreeSpace.ino +++ b/examples/VolumeFreeSpace/VolumeFreeSpace.ino @@ -62,7 +62,7 @@ void setup() { printFreeSpace(); cout << F("Create and write to ") << TEST_FILE << endl; - if (!file.open(TEST_FILE, O_WRITE | O_CREAT)) { + if (!file.open(TEST_FILE, O_WRONLY | O_CREAT)) { sd.errorHalt(F("Create failed")); } file.print(F("Cause a cluster to be allocated")); diff --git a/examples/bench/bench.ino b/examples/bench/bench.ino index 7134159a..8e14dd66 100644 --- a/examples/bench/bench.ino +++ b/examples/bench/bench.ino @@ -110,7 +110,7 @@ void loop() { while (!Serial.available()) { SysCall::yield(); } - + cout << F("chipSelect: ") << int(chipSelect) << endl; cout << F("FreeStack: ") << FreeStack() << endl; #if USE_SDIO @@ -131,7 +131,7 @@ void loop() { cidDmp(); // open or create file - truncate existing file. - if (!file.open("bench.dat", O_CREAT | O_TRUNC | O_RDWR)) { + if (!file.open("bench.dat", O_RDWR | O_CREAT | O_TRUNC)) { error("open failed"); } diff --git a/examples/dataLogger/dataLogger.ino b/examples/dataLogger/dataLogger.ino index 390273db..665e77d6 100644 --- a/examples/dataLogger/dataLogger.ino +++ b/examples/dataLogger/dataLogger.ino @@ -99,7 +99,7 @@ void setup() { error("Can't create file name"); } } - if (!file.open(fileName, O_CREAT | O_WRITE | O_EXCL)) { + if (!file.open(fileName, O_WRONLY | O_CREAT | O_EXCL)) { error("file.open"); } // Read any Serial data. diff --git a/examples/fgets/fgets.ino b/examples/fgets/fgets.ino index 481f47c9..c1b06a61 100644 --- a/examples/fgets/fgets.ino +++ b/examples/fgets/fgets.ino @@ -17,7 +17,7 @@ void demoFgets() { char line[25]; int n; // open test file - SdFile rdfile("fgets.txt", O_READ); + SdFile rdfile("fgets.txt", O_RDONLY); // check for open error if (!rdfile.isOpen()) { @@ -41,7 +41,7 @@ void demoFgets() { //------------------------------------------------------------------------------ void makeTestFile() { // create or open test file - SdFile wrfile("fgets.txt", O_WRITE | O_CREAT | O_TRUNC); + SdFile wrfile("fgets.txt", O_WRONLY | O_CREAT | O_TRUNC); // check for open error if (!wrfile.isOpen()) { diff --git a/examples/rename/rename.ino b/examples/rename/rename.ino index 9457df70..829c6abb 100644 --- a/examples/rename/rename.ino +++ b/examples/rename/rename.ino @@ -46,7 +46,7 @@ void setup() { } } // create a file and write one line to the file - SdFile file("Name1.txt", O_WRITE | O_CREAT); + SdFile file("Name1.txt", O_WRONLY | O_CREAT); if (!file.isOpen()) { error("Name1.txt"); } @@ -92,7 +92,7 @@ void setup() { } // open file for append in new location and add a line - if (!file.open("dir2/DIR3/NAME3.txt", O_WRITE | O_APPEND)) { + if (!file.open("dir2/DIR3/NAME3.txt", O_WRONLY | O_APPEND)) { error("dir2/DIR3/NAME3.txt"); } file.println("A line for dir2/DIR3/NAME3.txt"); diff --git a/extras/MainPage/SdFatmainpage.h b/extras/MainPage/SdFatmainpage.h index 309b5511..faf0a405 100644 --- a/extras/MainPage/SdFatmainpage.h +++ b/extras/MainPage/SdFatmainpage.h @@ -1,5 +1,5 @@ /** - * Copyright (c) 20011-2017 Bill Greiman + * Copyright (c) 20011-2018 Bill Greiman * This file is part of the SdFat library for SD memory cards. * * MIT License @@ -24,7 +24,7 @@ */ /** \mainpage Arduino %SdFat Library -
Copyright © 2012, 2013, 2014, 2015, 2016 by William Greiman +
Copyright © 2012-2018 by William Greiman
\section Intro Introduction @@ -222,7 +222,7 @@ the bug or problem. The two example programs QuickStart, and SdInfo are useful for troubleshooting. -A message like this from SdInfo with erorCode 0X1 indicates the SD card +A message like this from SdInfo with errorCode 0X1 indicates the SD card is not seen by SdFat. This is often caused by a wiring error and reformatting the card will not solve the problem.
@@ -294,7 +294,7 @@ An application which writes to a file using print(), println() or
 write() must close the file or call sync() at the appropriate time to
 force data and directory information to be written to the SD Card.
 
-Applications must use care calling sync() sync()
+Applications must use care calling sync()
 since 2048 bytes of I/O is required to update file and
 directory information.  This includes writing the current data block, reading
 the block that contains the directory entry for update, writing the directory
diff --git a/extras/changes.txt b/extras/changes.txt
index b71dbd82..d11a7bb0 100644
--- a/extras/changes.txt
+++ b/extras/changes.txt
@@ -1,3 +1,54 @@
+28 Dec 2018
+
+Support for multiple SPI ports now uses a pointer to a SPIClass object.
+
+See the STM32Test example.
+
+explicit SdFat(SPIClass* spiPort);
+\\ or
+explicit SdFatEX(SPIClass* spiPort);
+
+
+Open flags for Particle Gen3 and ARM boards are now defined by fcntl.h.
+See SdFatConfig.h for options.
+
+Support for particle Gen3 devices.
+
+New cluster allocation algorithm.
+
+26 Apr 2017
+
+The SPI divisor has been replaced by SPISettings in the begin() call.
+
+bool begin(uint8_t csPin = SS, SPISettings spiSettings = SPI_FULL_SPEED);
+
+Several macros have been defined for backward compatibility. 
+
+#define SD_SCK_MHZ(maxMhz) SPISettings(1000000UL*maxMhz, MSBFIRST, SPI_MODE0)
+// SPI divisor constants
+/** Set SCK to max possible rate. */
+#define SPI_FULL_SPEED SD_SCK_MHZ(50)
+/** Set SCK rate to F_CPU/3 for Due */
+#define SPI_DIV3_SPEED SD_SCK_HZ(F_CPU/3)
+/** Set SCK rate to F_CPU/4. */
+#define SPI_HALF_SPEED SD_SCK_HZ(F_CPU/4)
+// ...
+
+There are two new classes, SdFatEX and SdFatSoftSpiEX.
+
+Teensy 3.5/3.6 SDIO support has been added.  Try the TeensySdioDemo example.
+Many other example will work with Teensy SDIO if you use the SdFatSdio classes
+and call begin with no parameters.
+
+ SdFatSdio sd;
+ 
+ ....
+ 
+  if (!sd.begin()) {
+    // Handle failure.
+  }
+ 
+
 13 Sep 2016
 
 Added SdFatSdioEX class with Extended SD I/O.  
diff --git a/extras/cpplint.bat b/extras/cpplint.bat
new file mode 100644
index 00000000..0685bd6f
--- /dev/null
+++ b/extras/cpplint.bat
@@ -0,0 +1,2 @@
+sh cpplint.sh
+pause
diff --git a/extras/cpplint.py b/extras/cpplint.py
new file mode 100644
index 00000000..52cb7d0c
--- /dev/null
+++ b/extras/cpplint.py
@@ -0,0 +1,6123 @@
+#!/usr/bin/env python
+#
+# Copyright (c) 2009 Google Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#    * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#    * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#    * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+"""Does google-lint on c++ files.
+
+The goal of this script is to identify places in the code that *may*
+be in non-compliance with google style.  It does not attempt to fix
+up these problems -- the point is to educate.  It does also not
+attempt to find all problems, or to ensure that everything it does
+find is legitimately a problem.
+
+In particular, we can get very confused by /* and // inside strings!
+We do a small hack, which is to ignore //'s with "'s after them on the
+same line, but it is far from perfect (in either direction).
+"""
+
+import codecs
+import copy
+import getopt
+import math  # for log
+import os
+import re
+import sre_compile
+import string
+import sys
+import unicodedata
+
+
+_USAGE = """
+Syntax: cpplint.py [--verbose=#] [--output=vs7] [--filter=-x,+y,...]
+                   [--counting=total|toplevel|detailed] [--root=subdir]
+                   [--linelength=digits] [--headers=x,y,...]
+         [file] ...
+
+  The style guidelines this tries to follow are those in
+    https://google-styleguide.googlecode.com/svn/trunk/cppguide.xml
+
+  Every problem is given a confidence score from 1-5, with 5 meaning we are
+  certain of the problem, and 1 meaning it could be a legitimate construct.
+  This will miss some errors, and is not a substitute for a code review.
+
+  To suppress false-positive errors of a certain category, add a
+  'NOLINT(category)' comment to the line.  NOLINT or NOLINT(*)
+  suppresses errors of all categories on that line.
+
+  The files passed in will be linted; at least one file must be provided.
+  Default linted extensions are .cc, .cpp, .cu, .cuh and .h.  Change the
+  extensions with the --extensions flag.
+
+  Flags:
+
+    output=vs7
+      By default, the output is formatted to ease emacs parsing.  Visual Studio
+      compatible output (vs7) may also be used.  Other formats are unsupported.
+
+    verbose=#
+      Specify a number 0-5 to restrict errors to certain verbosity levels.
+
+    filter=-x,+y,...
+      Specify a comma-separated list of category-filters to apply: only
+      error messages whose category names pass the filters will be printed.
+      (Category names are printed with the message and look like
+      "[whitespace/indent]".)  Filters are evaluated left to right.
+      "-FOO" and "FOO" means "do not print categories that start with FOO".
+      "+FOO" means "do print categories that start with FOO".
+
+      Examples: --filter=-whitespace,+whitespace/braces
+                --filter=whitespace,runtime/printf,+runtime/printf_format
+                --filter=-,+build/include_what_you_use
+
+      To see a list of all the categories used in cpplint, pass no arg:
+         --filter=
+
+    counting=total|toplevel|detailed
+      The total number of errors found is always printed. If
+      'toplevel' is provided, then the count of errors in each of
+      the top-level categories like 'build' and 'whitespace' will
+      also be printed. If 'detailed' is provided, then a count
+      is provided for each category like 'build/class'.
+
+    root=subdir
+      The root directory used for deriving header guard CPP variable.
+      By default, the header guard CPP variable is calculated as the relative
+      path to the directory that contains .git, .hg, or .svn.  When this flag
+      is specified, the relative path is calculated from the specified
+      directory. If the specified directory does not exist, this flag is
+      ignored.
+
+      Examples:
+        Assuming that src/.git exists, the header guard CPP variables for
+        src/chrome/browser/ui/browser.h are:
+
+        No flag => CHROME_BROWSER_UI_BROWSER_H_
+        --root=chrome => BROWSER_UI_BROWSER_H_
+        --root=chrome/browser => UI_BROWSER_H_
+
+    linelength=digits
+      This is the allowed line length for the project. The default value is
+      80 characters.
+
+      Examples:
+        --linelength=120
+
+    extensions=extension,extension,...
+      The allowed file extensions that cpplint will check
+
+      Examples:
+        --extensions=hpp,cpp
+
+    headers=x,y,...
+      The header extensions that cpplint will treat as .h in checks. Values are
+      automatically added to --extensions list.
+
+      Examples:
+        --headers=hpp,hxx
+        --headers=hpp
+
+    cpplint.py supports per-directory configurations specified in CPPLINT.cfg
+    files. CPPLINT.cfg file can contain a number of key=value pairs.
+    Currently the following options are supported:
+
+      set noparent
+      filter=+filter1,-filter2,...
+      exclude_files=regex
+      linelength=80
+      root=subdir
+      headers=x,y,...
+
+    "set noparent" option prevents cpplint from traversing directory tree
+    upwards looking for more .cfg files in parent directories. This option
+    is usually placed in the top-level project directory.
+
+    The "filter" option is similar in function to --filter flag. It specifies
+    message filters in addition to the |_DEFAULT_FILTERS| and those specified
+    through --filter command-line flag.
+
+    "exclude_files" allows to specify a regular expression to be matched against
+    a file name. If the expression matches, the file is skipped and not run
+    through liner.
+
+    "linelength" allows to specify the allowed line length for the project.
+
+    The "root" option is similar in function to the --root flag (see example
+    above).
+    
+    The "headers" option is similar in function to the --headers flag 
+    (see example above).
+
+    CPPLINT.cfg has an effect on files in the same directory and all
+    sub-directories, unless overridden by a nested configuration file.
+
+      Example file:
+        filter=-build/include_order,+build/include_alpha
+        exclude_files=.*\.cc
+
+    The above example disables build/include_order warning and enables
+    build/include_alpha as well as excludes all .cc from being
+    processed by linter, in the current directory (where the .cfg
+    file is located) and all sub-directories.
+"""
+
+# We categorize each error message we print.  Here are the categories.
+# We want an explicit list so we can list them all in cpplint --filter=.
+# If you add a new error message with a new category, add it to the list
+# here!  cpplint_unittest.py should tell you if you forget to do this.
+_ERROR_CATEGORIES = [
+    'build/class',
+    'build/c++11',
+    'build/c++14',
+    'build/c++tr1',
+    'build/deprecated',
+    'build/endif_comment',
+    'build/explicit_make_pair',
+    'build/forward_decl',
+    'build/header_guard',
+    'build/include',
+    'build/include_alpha',
+    'build/include_order',
+    'build/include_what_you_use',
+    'build/namespaces',
+    'build/printf_format',
+    'build/storage_class',
+    'legal/copyright',
+    'readability/alt_tokens',
+    'readability/braces',
+    'readability/casting',
+    'readability/check',
+    'readability/constructors',
+    'readability/fn_size',
+    'readability/inheritance',
+    'readability/multiline_comment',
+    'readability/multiline_string',
+    'readability/namespace',
+    'readability/nolint',
+    'readability/nul',
+    'readability/strings',
+    'readability/todo',
+    'readability/utf8',
+    'runtime/arrays',
+    'runtime/casting',
+    'runtime/explicit',
+    'runtime/int',
+    'runtime/init',
+    'runtime/invalid_increment',
+    'runtime/member_string_references',
+    'runtime/memset',
+    'runtime/indentation_namespace',
+    'runtime/operator',
+    'runtime/printf',
+    'runtime/printf_format',
+    'runtime/references',
+    'runtime/string',
+    'runtime/threadsafe_fn',
+    'runtime/vlog',
+    'whitespace/blank_line',
+    'whitespace/braces',
+    'whitespace/comma',
+    'whitespace/comments',
+    'whitespace/empty_conditional_body',
+    'whitespace/empty_if_body',
+    'whitespace/empty_loop_body',
+    'whitespace/end_of_line',
+    'whitespace/ending_newline',
+    'whitespace/forcolon',
+    'whitespace/indent',
+    'whitespace/line_length',
+    'whitespace/newline',
+    'whitespace/operators',
+    'whitespace/parens',
+    'whitespace/semicolon',
+    'whitespace/tab',
+    'whitespace/todo',
+    ]
+
+# These error categories are no longer enforced by cpplint, but for backwards-
+# compatibility they may still appear in NOLINT comments.
+_LEGACY_ERROR_CATEGORIES = [
+    'readability/streams',
+    'readability/function',
+    ]
+
+# The default state of the category filter. This is overridden by the --filter=
+# flag. By default all errors are on, so only add here categories that should be
+# off by default (i.e., categories that must be enabled by the --filter= flags).
+# All entries here should start with a '-' or '+', as in the --filter= flag.
+_DEFAULT_FILTERS = ['-build/include_alpha']
+
+# The default list of categories suppressed for C (not C++) files.
+_DEFAULT_C_SUPPRESSED_CATEGORIES = [
+    'readability/casting',
+    ]
+
+# The default list of categories suppressed for Linux Kernel files.
+_DEFAULT_KERNEL_SUPPRESSED_CATEGORIES = [
+    'whitespace/tab',
+    ]
+
+# We used to check for high-bit characters, but after much discussion we
+# decided those were OK, as long as they were in UTF-8 and didn't represent
+# hard-coded international strings, which belong in a separate i18n file.
+
+# C++ headers
+_CPP_HEADERS = frozenset([
+    # Legacy
+    'algobase.h',
+    'algo.h',
+    'alloc.h',
+    'builtinbuf.h',
+    'bvector.h',
+    'complex.h',
+    'defalloc.h',
+    'deque.h',
+    'editbuf.h',
+    'fstream.h',
+    'function.h',
+    'hash_map',
+    'hash_map.h',
+    'hash_set',
+    'hash_set.h',
+    'hashtable.h',
+    'heap.h',
+    'indstream.h',
+    'iomanip.h',
+    'iostream.h',
+    'istream.h',
+    'iterator.h',
+    'list.h',
+    'map.h',
+    'multimap.h',
+    'multiset.h',
+    'ostream.h',
+    'pair.h',
+    'parsestream.h',
+    'pfstream.h',
+    'procbuf.h',
+    'pthread_alloc',
+    'pthread_alloc.h',
+    'rope',
+    'rope.h',
+    'ropeimpl.h',
+    'set.h',
+    'slist',
+    'slist.h',
+    'stack.h',
+    'stdiostream.h',
+    'stl_alloc.h',
+    'stl_relops.h',
+    'streambuf.h',
+    'stream.h',
+    'strfile.h',
+    'strstream.h',
+    'tempbuf.h',
+    'tree.h',
+    'type_traits.h',
+    'vector.h',
+    # 17.6.1.2 C++ library headers
+    'algorithm',
+    'array',
+    'atomic',
+    'bitset',
+    'chrono',
+    'codecvt',
+    'complex',
+    'condition_variable',
+    'deque',
+    'exception',
+    'forward_list',
+    'fstream',
+    'functional',
+    'future',
+    'initializer_list',
+    'iomanip',
+    'ios',
+    'iosfwd',
+    'iostream',
+    'istream',
+    'iterator',
+    'limits',
+    'list',
+    'locale',
+    'map',
+    'memory',
+    'mutex',
+    'new',
+    'numeric',
+    'ostream',
+    'queue',
+    'random',
+    'ratio',
+    'regex',
+    'scoped_allocator',
+    'set',
+    'sstream',
+    'stack',
+    'stdexcept',
+    'streambuf',
+    'string',
+    'strstream',
+    'system_error',
+    'thread',
+    'tuple',
+    'typeindex',
+    'typeinfo',
+    'type_traits',
+    'unordered_map',
+    'unordered_set',
+    'utility',
+    'valarray',
+    'vector',
+    # 17.6.1.2 C++ headers for C library facilities
+    'cassert',
+    'ccomplex',
+    'cctype',
+    'cerrno',
+    'cfenv',
+    'cfloat',
+    'cinttypes',
+    'ciso646',
+    'climits',
+    'clocale',
+    'cmath',
+    'csetjmp',
+    'csignal',
+    'cstdalign',
+    'cstdarg',
+    'cstdbool',
+    'cstddef',
+    'cstdint',
+    'cstdio',
+    'cstdlib',
+    'cstring',
+    'ctgmath',
+    'ctime',
+    'cuchar',
+    'cwchar',
+    'cwctype',
+    ])
+
+# Type names
+_TYPES = re.compile(
+    r'^(?:'
+    # [dcl.type.simple]
+    r'(char(16_t|32_t)?)|wchar_t|'
+    r'bool|short|int|long|signed|unsigned|float|double|'
+    # [support.types]
+    r'(ptrdiff_t|size_t|max_align_t|nullptr_t)|'
+    # [cstdint.syn]
+    r'(u?int(_fast|_least)?(8|16|32|64)_t)|'
+    r'(u?int(max|ptr)_t)|'
+    r')$')
+
+
+# These headers are excluded from [build/include] and [build/include_order]
+# checks:
+# - Anything not following google file name conventions (containing an
+#   uppercase character, such as Python.h or nsStringAPI.h, for example).
+# - Lua headers.
+_THIRD_PARTY_HEADERS_PATTERN = re.compile(
+    r'^(?:[^/]*[A-Z][^/]*\.h|lua\.h|lauxlib\.h|lualib\.h)$')
+
+# Pattern for matching FileInfo.BaseName() against test file name
+_TEST_FILE_SUFFIX = r'(_test|_unittest|_regtest)$'
+
+# Pattern that matches only complete whitespace, possibly across multiple lines.
+_EMPTY_CONDITIONAL_BODY_PATTERN = re.compile(r'^\s*$', re.DOTALL)
+
+# Assertion macros.  These are defined in base/logging.h and
+# testing/base/public/gunit.h.
+_CHECK_MACROS = [
+    'DCHECK', 'CHECK',
+    'EXPECT_TRUE', 'ASSERT_TRUE',
+    'EXPECT_FALSE', 'ASSERT_FALSE',
+    ]
+
+# Replacement macros for CHECK/DCHECK/EXPECT_TRUE/EXPECT_FALSE
+_CHECK_REPLACEMENT = dict([(m, {}) for m in _CHECK_MACROS])
+
+for op, replacement in [('==', 'EQ'), ('!=', 'NE'),
+                        ('>=', 'GE'), ('>', 'GT'),
+                        ('<=', 'LE'), ('<', 'LT')]:
+  _CHECK_REPLACEMENT['DCHECK'][op] = 'DCHECK_%s' % replacement
+  _CHECK_REPLACEMENT['CHECK'][op] = 'CHECK_%s' % replacement
+  _CHECK_REPLACEMENT['EXPECT_TRUE'][op] = 'EXPECT_%s' % replacement
+  _CHECK_REPLACEMENT['ASSERT_TRUE'][op] = 'ASSERT_%s' % replacement
+
+for op, inv_replacement in [('==', 'NE'), ('!=', 'EQ'),
+                            ('>=', 'LT'), ('>', 'LE'),
+                            ('<=', 'GT'), ('<', 'GE')]:
+  _CHECK_REPLACEMENT['EXPECT_FALSE'][op] = 'EXPECT_%s' % inv_replacement
+  _CHECK_REPLACEMENT['ASSERT_FALSE'][op] = 'ASSERT_%s' % inv_replacement
+
+# Alternative tokens and their replacements.  For full list, see section 2.5
+# Alternative tokens [lex.digraph] in the C++ standard.
+#
+# Digraphs (such as '%:') are not included here since it's a mess to
+# match those on a word boundary.
+_ALT_TOKEN_REPLACEMENT = {
+    'and': '&&',
+    'bitor': '|',
+    'or': '||',
+    'xor': '^',
+    'compl': '~',
+    'bitand': '&',
+    'and_eq': '&=',
+    'or_eq': '|=',
+    'xor_eq': '^=',
+    'not': '!',
+    'not_eq': '!='
+    }
+
+# Compile regular expression that matches all the above keywords.  The "[ =()]"
+# bit is meant to avoid matching these keywords outside of boolean expressions.
+#
+# False positives include C-style multi-line comments and multi-line strings
+# but those have always been troublesome for cpplint.
+_ALT_TOKEN_REPLACEMENT_PATTERN = re.compile(
+    r'[ =()](' + ('|'.join(_ALT_TOKEN_REPLACEMENT.keys())) + r')(?=[ (]|$)')
+
+
+# These constants define types of headers for use with
+# _IncludeState.CheckNextIncludeOrder().
+_C_SYS_HEADER = 1
+_CPP_SYS_HEADER = 2
+_LIKELY_MY_HEADER = 3
+_POSSIBLE_MY_HEADER = 4
+_OTHER_HEADER = 5
+
+# These constants define the current inline assembly state
+_NO_ASM = 0       # Outside of inline assembly block
+_INSIDE_ASM = 1   # Inside inline assembly block
+_END_ASM = 2      # Last line of inline assembly block
+_BLOCK_ASM = 3    # The whole block is an inline assembly block
+
+# Match start of assembly blocks
+_MATCH_ASM = re.compile(r'^\s*(?:asm|_asm|__asm|__asm__)'
+                        r'(?:\s+(volatile|__volatile__))?'
+                        r'\s*[{(]')
+
+# Match strings that indicate we're working on a C (not C++) file.
+_SEARCH_C_FILE = re.compile(r'\b(?:LINT_C_FILE|'
+                            r'vim?:\s*.*(\s*|:)filetype=c(\s*|:|$))')
+
+# Match string that indicates we're working on a Linux Kernel file.
+_SEARCH_KERNEL_FILE = re.compile(r'\b(?:LINT_KERNEL_FILE)')
+
+_regexp_compile_cache = {}
+
+# {str, set(int)}: a map from error categories to sets of linenumbers
+# on which those errors are expected and should be suppressed.
+_error_suppressions = {}
+
+# The root directory used for deriving header guard CPP variable.
+# This is set by --root flag.
+_root = None
+
+# The allowed line length of files.
+# This is set by --linelength flag.
+_line_length = 80
+
+# The allowed extensions for file names
+# This is set by --extensions flag.
+_valid_extensions = set(['cc', 'h', 'cpp', 'cu', 'cuh'])
+
+# Treat all headers starting with 'h' equally: .h, .hpp, .hxx etc.
+# This is set by --headers flag.
+_hpp_headers = set(['h'])
+
+# {str, bool}: a map from error categories to booleans which indicate if the
+# category should be suppressed for every line.
+_global_error_suppressions = {}
+
+def ProcessHppHeadersOption(val):
+  global _hpp_headers
+  try:
+    _hpp_headers = set(val.split(','))
+    # Automatically append to extensions list so it does not have to be set 2 times
+    _valid_extensions.update(_hpp_headers)
+  except ValueError:
+    PrintUsage('Header extensions must be comma seperated list.')
+
+def IsHeaderExtension(file_extension):
+  return file_extension in _hpp_headers
+
+def ParseNolintSuppressions(filename, raw_line, linenum, error):
+  """Updates the global list of line error-suppressions.
+
+  Parses any NOLINT comments on the current line, updating the global
+  error_suppressions store.  Reports an error if the NOLINT comment
+  was malformed.
+
+  Args:
+    filename: str, the name of the input file.
+    raw_line: str, the line of input text, with comments.
+    linenum: int, the number of the current line.
+    error: function, an error handler.
+  """
+  matched = Search(r'\bNOLINT(NEXTLINE)?\b(\([^)]+\))?', raw_line)
+  if matched:
+    if matched.group(1):
+      suppressed_line = linenum + 1
+    else:
+      suppressed_line = linenum
+    category = matched.group(2)
+    if category in (None, '(*)'):  # => "suppress all"
+      _error_suppressions.setdefault(None, set()).add(suppressed_line)
+    else:
+      if category.startswith('(') and category.endswith(')'):
+        category = category[1:-1]
+        if category in _ERROR_CATEGORIES:
+          _error_suppressions.setdefault(category, set()).add(suppressed_line)
+        elif category not in _LEGACY_ERROR_CATEGORIES:
+          error(filename, linenum, 'readability/nolint', 5,
+                'Unknown NOLINT error category: %s' % category)
+
+
+def ProcessGlobalSuppresions(lines):
+  """Updates the list of global error suppressions.
+
+  Parses any lint directives in the file that have global effect.
+
+  Args:
+    lines: An array of strings, each representing a line of the file, with the
+           last element being empty if the file is terminated with a newline.
+  """
+  for line in lines:
+    if _SEARCH_C_FILE.search(line):
+      for category in _DEFAULT_C_SUPPRESSED_CATEGORIES:
+        _global_error_suppressions[category] = True
+    if _SEARCH_KERNEL_FILE.search(line):
+      for category in _DEFAULT_KERNEL_SUPPRESSED_CATEGORIES:
+        _global_error_suppressions[category] = True
+
+
+def ResetNolintSuppressions():
+  """Resets the set of NOLINT suppressions to empty."""
+  _error_suppressions.clear()
+  _global_error_suppressions.clear()
+
+
+def IsErrorSuppressedByNolint(category, linenum):
+  """Returns true if the specified error category is suppressed on this line.
+
+  Consults the global error_suppressions map populated by
+  ParseNolintSuppressions/ProcessGlobalSuppresions/ResetNolintSuppressions.
+
+  Args:
+    category: str, the category of the error.
+    linenum: int, the current line number.
+  Returns:
+    bool, True iff the error should be suppressed due to a NOLINT comment or
+    global suppression.
+  """
+  return (_global_error_suppressions.get(category, False) or
+          linenum in _error_suppressions.get(category, set()) or
+          linenum in _error_suppressions.get(None, set()))
+
+
+def Match(pattern, s):
+  """Matches the string with the pattern, caching the compiled regexp."""
+  # The regexp compilation caching is inlined in both Match and Search for
+  # performance reasons; factoring it out into a separate function turns out
+  # to be noticeably expensive.
+  if pattern not in _regexp_compile_cache:
+    _regexp_compile_cache[pattern] = sre_compile.compile(pattern)
+  return _regexp_compile_cache[pattern].match(s)
+
+
+def ReplaceAll(pattern, rep, s):
+  """Replaces instances of pattern in a string with a replacement.
+
+  The compiled regex is kept in a cache shared by Match and Search.
+
+  Args:
+    pattern: regex pattern
+    rep: replacement text
+    s: search string
+
+  Returns:
+    string with replacements made (or original string if no replacements)
+  """
+  if pattern not in _regexp_compile_cache:
+    _regexp_compile_cache[pattern] = sre_compile.compile(pattern)
+  return _regexp_compile_cache[pattern].sub(rep, s)
+
+
+def Search(pattern, s):
+  """Searches the string for the pattern, caching the compiled regexp."""
+  if pattern not in _regexp_compile_cache:
+    _regexp_compile_cache[pattern] = sre_compile.compile(pattern)
+  return _regexp_compile_cache[pattern].search(s)
+
+
+def _IsSourceExtension(s):
+  """File extension (excluding dot) matches a source file extension."""
+  return s in ('c', 'cc', 'cpp', 'cxx')
+
+
+class _IncludeState(object):
+  """Tracks line numbers for includes, and the order in which includes appear.
+
+  include_list contains list of lists of (header, line number) pairs.
+  It's a lists of lists rather than just one flat list to make it
+  easier to update across preprocessor boundaries.
+
+  Call CheckNextIncludeOrder() once for each header in the file, passing
+  in the type constants defined above. Calls in an illegal order will
+  raise an _IncludeError with an appropriate error message.
+
+  """
+  # self._section will move monotonically through this set. If it ever
+  # needs to move backwards, CheckNextIncludeOrder will raise an error.
+  _INITIAL_SECTION = 0
+  _MY_H_SECTION = 1
+  _C_SECTION = 2
+  _CPP_SECTION = 3
+  _OTHER_H_SECTION = 4
+
+  _TYPE_NAMES = {
+      _C_SYS_HEADER: 'C system header',
+      _CPP_SYS_HEADER: 'C++ system header',
+      _LIKELY_MY_HEADER: 'header this file implements',
+      _POSSIBLE_MY_HEADER: 'header this file may implement',
+      _OTHER_HEADER: 'other header',
+      }
+  _SECTION_NAMES = {
+      _INITIAL_SECTION: "... nothing. (This can't be an error.)",
+      _MY_H_SECTION: 'a header this file implements',
+      _C_SECTION: 'C system header',
+      _CPP_SECTION: 'C++ system header',
+      _OTHER_H_SECTION: 'other header',
+      }
+
+  def __init__(self):
+    self.include_list = [[]]
+    self.ResetSection('')
+
+  def FindHeader(self, header):
+    """Check if a header has already been included.
+
+    Args:
+      header: header to check.
+    Returns:
+      Line number of previous occurrence, or -1 if the header has not
+      been seen before.
+    """
+    for section_list in self.include_list:
+      for f in section_list:
+        if f[0] == header:
+          return f[1]
+    return -1
+
+  def ResetSection(self, directive):
+    """Reset section checking for preprocessor directive.
+
+    Args:
+      directive: preprocessor directive (e.g. "if", "else").
+    """
+    # The name of the current section.
+    self._section = self._INITIAL_SECTION
+    # The path of last found header.
+    self._last_header = ''
+
+    # Update list of includes.  Note that we never pop from the
+    # include list.
+    if directive in ('if', 'ifdef', 'ifndef'):
+      self.include_list.append([])
+    elif directive in ('else', 'elif'):
+      self.include_list[-1] = []
+
+  def SetLastHeader(self, header_path):
+    self._last_header = header_path
+
+  def CanonicalizeAlphabeticalOrder(self, header_path):
+    """Returns a path canonicalized for alphabetical comparison.
+
+    - replaces "-" with "_" so they both cmp the same.
+    - removes '-inl' since we don't require them to be after the main header.
+    - lowercase everything, just in case.
+
+    Args:
+      header_path: Path to be canonicalized.
+
+    Returns:
+      Canonicalized path.
+    """
+    return header_path.replace('-inl.h', '.h').replace('-', '_').lower()
+
+  def IsInAlphabeticalOrder(self, clean_lines, linenum, header_path):
+    """Check if a header is in alphabetical order with the previous header.
+
+    Args:
+      clean_lines: A CleansedLines instance containing the file.
+      linenum: The number of the line to check.
+      header_path: Canonicalized header to be checked.
+
+    Returns:
+      Returns true if the header is in alphabetical order.
+    """
+    # If previous section is different from current section, _last_header will
+    # be reset to empty string, so it's always less than current header.
+    #
+    # If previous line was a blank line, assume that the headers are
+    # intentionally sorted the way they are.
+    if (self._last_header > header_path and
+        Match(r'^\s*#\s*include\b', clean_lines.elided[linenum - 1])):
+      return False
+    return True
+
+  def CheckNextIncludeOrder(self, header_type):
+    """Returns a non-empty error message if the next header is out of order.
+
+    This function also updates the internal state to be ready to check
+    the next include.
+
+    Args:
+      header_type: One of the _XXX_HEADER constants defined above.
+
+    Returns:
+      The empty string if the header is in the right order, or an
+      error message describing what's wrong.
+
+    """
+    error_message = ('Found %s after %s' %
+                     (self._TYPE_NAMES[header_type],
+                      self._SECTION_NAMES[self._section]))
+
+    last_section = self._section
+
+    if header_type == _C_SYS_HEADER:
+      if self._section <= self._C_SECTION:
+        self._section = self._C_SECTION
+      else:
+        self._last_header = ''
+        return error_message
+    elif header_type == _CPP_SYS_HEADER:
+      if self._section <= self._CPP_SECTION:
+        self._section = self._CPP_SECTION
+      else:
+        self._last_header = ''
+        return error_message
+    elif header_type == _LIKELY_MY_HEADER:
+      if self._section <= self._MY_H_SECTION:
+        self._section = self._MY_H_SECTION
+      else:
+        self._section = self._OTHER_H_SECTION
+    elif header_type == _POSSIBLE_MY_HEADER:
+      if self._section <= self._MY_H_SECTION:
+        self._section = self._MY_H_SECTION
+      else:
+        # This will always be the fallback because we're not sure
+        # enough that the header is associated with this file.
+        self._section = self._OTHER_H_SECTION
+    else:
+      assert header_type == _OTHER_HEADER
+      self._section = self._OTHER_H_SECTION
+
+    if last_section != self._section:
+      self._last_header = ''
+
+    return ''
+
+
+class _CppLintState(object):
+  """Maintains module-wide state.."""
+
+  def __init__(self):
+    self.verbose_level = 1  # global setting.
+    self.error_count = 0    # global count of reported errors
+    # filters to apply when emitting error messages
+    self.filters = _DEFAULT_FILTERS[:]
+    # backup of filter list. Used to restore the state after each file.
+    self._filters_backup = self.filters[:]
+    self.counting = 'total'  # In what way are we counting errors?
+    self.errors_by_category = {}  # string to int dict storing error counts
+
+    # output format:
+    # "emacs" - format that emacs can parse (default)
+    # "vs7" - format that Microsoft Visual Studio 7 can parse
+    self.output_format = 'emacs'
+
+  def SetOutputFormat(self, output_format):
+    """Sets the output format for errors."""
+    self.output_format = output_format
+
+  def SetVerboseLevel(self, level):
+    """Sets the module's verbosity, and returns the previous setting."""
+    last_verbose_level = self.verbose_level
+    self.verbose_level = level
+    return last_verbose_level
+
+  def SetCountingStyle(self, counting_style):
+    """Sets the module's counting options."""
+    self.counting = counting_style
+
+  def SetFilters(self, filters):
+    """Sets the error-message filters.
+
+    These filters are applied when deciding whether to emit a given
+    error message.
+
+    Args:
+      filters: A string of comma-separated filters (eg "+whitespace/indent").
+               Each filter should start with + or -; else we die.
+
+    Raises:
+      ValueError: The comma-separated filters did not all start with '+' or '-'.
+                  E.g. "-,+whitespace,-whitespace/indent,whitespace/badfilter"
+    """
+    # Default filters always have less priority than the flag ones.
+    self.filters = _DEFAULT_FILTERS[:]
+    self.AddFilters(filters)
+
+  def AddFilters(self, filters):
+    """ Adds more filters to the existing list of error-message filters. """
+    for filt in filters.split(','):
+      clean_filt = filt.strip()
+      if clean_filt:
+        self.filters.append(clean_filt)
+    for filt in self.filters:
+      if not (filt.startswith('+') or filt.startswith('-')):
+        raise ValueError('Every filter in --filters must start with + or -'
+                         ' (%s does not)' % filt)
+
+  def BackupFilters(self):
+    """ Saves the current filter list to backup storage."""
+    self._filters_backup = self.filters[:]
+
+  def RestoreFilters(self):
+    """ Restores filters previously backed up."""
+    self.filters = self._filters_backup[:]
+
+  def ResetErrorCounts(self):
+    """Sets the module's error statistic back to zero."""
+    self.error_count = 0
+    self.errors_by_category = {}
+
+  def IncrementErrorCount(self, category):
+    """Bumps the module's error statistic."""
+    self.error_count += 1
+    if self.counting in ('toplevel', 'detailed'):
+      if self.counting != 'detailed':
+        category = category.split('/')[0]
+      if category not in self.errors_by_category:
+        self.errors_by_category[category] = 0
+      self.errors_by_category[category] += 1
+
+  def PrintErrorCounts(self):
+    """Print a summary of errors by category, and the total."""
+    for category, count in self.errors_by_category.iteritems():
+      sys.stderr.write('Category \'%s\' errors found: %d\n' %
+                       (category, count))
+    sys.stdout.write('Total errors found: %d\n' % self.error_count)
+
+_cpplint_state = _CppLintState()
+
+
+def _OutputFormat():
+  """Gets the module's output format."""
+  return _cpplint_state.output_format
+
+
+def _SetOutputFormat(output_format):
+  """Sets the module's output format."""
+  _cpplint_state.SetOutputFormat(output_format)
+
+
+def _VerboseLevel():
+  """Returns the module's verbosity setting."""
+  return _cpplint_state.verbose_level
+
+
+def _SetVerboseLevel(level):
+  """Sets the module's verbosity, and returns the previous setting."""
+  return _cpplint_state.SetVerboseLevel(level)
+
+
+def _SetCountingStyle(level):
+  """Sets the module's counting options."""
+  _cpplint_state.SetCountingStyle(level)
+
+
+def _Filters():
+  """Returns the module's list of output filters, as a list."""
+  return _cpplint_state.filters
+
+
+def _SetFilters(filters):
+  """Sets the module's error-message filters.
+
+  These filters are applied when deciding whether to emit a given
+  error message.
+
+  Args:
+    filters: A string of comma-separated filters (eg "whitespace/indent").
+             Each filter should start with + or -; else we die.
+  """
+  _cpplint_state.SetFilters(filters)
+
+def _AddFilters(filters):
+  """Adds more filter overrides.
+
+  Unlike _SetFilters, this function does not reset the current list of filters
+  available.
+
+  Args:
+    filters: A string of comma-separated filters (eg "whitespace/indent").
+             Each filter should start with + or -; else we die.
+  """
+  _cpplint_state.AddFilters(filters)
+
+def _BackupFilters():
+  """ Saves the current filter list to backup storage."""
+  _cpplint_state.BackupFilters()
+
+def _RestoreFilters():
+  """ Restores filters previously backed up."""
+  _cpplint_state.RestoreFilters()
+
+class _FunctionState(object):
+  """Tracks current function name and the number of lines in its body."""
+
+  _NORMAL_TRIGGER = 250  # for --v=0, 500 for --v=1, etc.
+  _TEST_TRIGGER = 400    # about 50% more than _NORMAL_TRIGGER.
+
+  def __init__(self):
+    self.in_a_function = False
+    self.lines_in_function = 0
+    self.current_function = ''
+
+  def Begin(self, function_name):
+    """Start analyzing function body.
+
+    Args:
+      function_name: The name of the function being tracked.
+    """
+    self.in_a_function = True
+    self.lines_in_function = 0
+    self.current_function = function_name
+
+  def Count(self):
+    """Count line in current function body."""
+    if self.in_a_function:
+      self.lines_in_function += 1
+
+  def Check(self, error, filename, linenum):
+    """Report if too many lines in function body.
+
+    Args:
+      error: The function to call with any errors found.
+      filename: The name of the current file.
+      linenum: The number of the line to check.
+    """
+    if not self.in_a_function:
+      return
+
+    if Match(r'T(EST|est)', self.current_function):
+      base_trigger = self._TEST_TRIGGER
+    else:
+      base_trigger = self._NORMAL_TRIGGER
+    trigger = base_trigger * 2**_VerboseLevel()
+
+    if self.lines_in_function > trigger:
+      error_level = int(math.log(self.lines_in_function / base_trigger, 2))
+      # 50 => 0, 100 => 1, 200 => 2, 400 => 3, 800 => 4, 1600 => 5, ...
+      if error_level > 5:
+        error_level = 5
+      error(filename, linenum, 'readability/fn_size', error_level,
+            'Small and focused functions are preferred:'
+            ' %s has %d non-comment lines'
+            ' (error triggered by exceeding %d lines).'  % (
+                self.current_function, self.lines_in_function, trigger))
+
+  def End(self):
+    """Stop analyzing function body."""
+    self.in_a_function = False
+
+
+class _IncludeError(Exception):
+  """Indicates a problem with the include order in a file."""
+  pass
+
+
+class FileInfo(object):
+  """Provides utility functions for filenames.
+
+  FileInfo provides easy access to the components of a file's path
+  relative to the project root.
+  """
+
+  def __init__(self, filename):
+    self._filename = filename
+
+  def FullName(self):
+    """Make Windows paths like Unix."""
+    return os.path.abspath(self._filename).replace('\\', '/')
+
+  def RepositoryName(self):
+    """FullName after removing the local path to the repository.
+
+    If we have a real absolute path name here we can try to do something smart:
+    detecting the root of the checkout and truncating /path/to/checkout from
+    the name so that we get header guards that don't include things like
+    "C:\Documents and Settings\..." or "/home/username/..." in them and thus
+    people on different computers who have checked the source out to different
+    locations won't see bogus errors.
+    """
+    fullname = self.FullName()
+
+    if os.path.exists(fullname):
+      project_dir = os.path.dirname(fullname)
+
+      if os.path.exists(os.path.join(project_dir, ".svn")):
+        # If there's a .svn file in the current directory, we recursively look
+        # up the directory tree for the top of the SVN checkout
+        root_dir = project_dir
+        one_up_dir = os.path.dirname(root_dir)
+        while os.path.exists(os.path.join(one_up_dir, ".svn")):
+          root_dir = os.path.dirname(root_dir)
+          one_up_dir = os.path.dirname(one_up_dir)
+
+        prefix = os.path.commonprefix([root_dir, project_dir])
+        return fullname[len(prefix) + 1:]
+
+      # Not SVN <= 1.6? Try to find a git, hg, or svn top level directory by
+      # searching up from the current path.
+      root_dir = current_dir = os.path.dirname(fullname)
+      while current_dir != os.path.dirname(current_dir):
+        if (os.path.exists(os.path.join(current_dir, ".git")) or
+            os.path.exists(os.path.join(current_dir, ".hg")) or
+            os.path.exists(os.path.join(current_dir, ".svn"))):
+          root_dir = current_dir
+        current_dir = os.path.dirname(current_dir)
+
+      if (os.path.exists(os.path.join(root_dir, ".git")) or
+          os.path.exists(os.path.join(root_dir, ".hg")) or
+          os.path.exists(os.path.join(root_dir, ".svn"))):
+        prefix = os.path.commonprefix([root_dir, project_dir])
+        return fullname[len(prefix) + 1:]
+
+    # Don't know what to do; header guard warnings may be wrong...
+    return fullname
+
+  def Split(self):
+    """Splits the file into the directory, basename, and extension.
+
+    For 'chrome/browser/browser.cc', Split() would
+    return ('chrome/browser', 'browser', '.cc')
+
+    Returns:
+      A tuple of (directory, basename, extension).
+    """
+
+    googlename = self.RepositoryName()
+    project, rest = os.path.split(googlename)
+    return (project,) + os.path.splitext(rest)
+
+  def BaseName(self):
+    """File base name - text after the final slash, before the final period."""
+    return self.Split()[1]
+
+  def Extension(self):
+    """File extension - text following the final period."""
+    return self.Split()[2]
+
+  def NoExtension(self):
+    """File has no source file extension."""
+    return '/'.join(self.Split()[0:2])
+
+  def IsSource(self):
+    """File has a source file extension."""
+    return _IsSourceExtension(self.Extension()[1:])
+
+
+def _ShouldPrintError(category, confidence, linenum):
+  """If confidence >= verbose, category passes filter and is not suppressed."""
+
+  # There are three ways we might decide not to print an error message:
+  # a "NOLINT(category)" comment appears in the source,
+  # the verbosity level isn't high enough, or the filters filter it out.
+  if IsErrorSuppressedByNolint(category, linenum):
+    return False
+
+  if confidence < _cpplint_state.verbose_level:
+    return False
+
+  is_filtered = False
+  for one_filter in _Filters():
+    if one_filter.startswith('-'):
+      if category.startswith(one_filter[1:]):
+        is_filtered = True
+    elif one_filter.startswith('+'):
+      if category.startswith(one_filter[1:]):
+        is_filtered = False
+    else:
+      assert False  # should have been checked for in SetFilter.
+  if is_filtered:
+    return False
+
+  return True
+
+
+def Error(filename, linenum, category, confidence, message):
+  """Logs the fact we've found a lint error.
+
+  We log where the error was found, and also our confidence in the error,
+  that is, how certain we are this is a legitimate style regression, and
+  not a misidentification or a use that's sometimes justified.
+
+  False positives can be suppressed by the use of
+  "cpplint(category)"  comments on the offending line.  These are
+  parsed into _error_suppressions.
+
+  Args:
+    filename: The name of the file containing the error.
+    linenum: The number of the line containing the error.
+    category: A string used to describe the "category" this bug
+      falls under: "whitespace", say, or "runtime".  Categories
+      may have a hierarchy separated by slashes: "whitespace/indent".
+    confidence: A number from 1-5 representing a confidence score for
+      the error, with 5 meaning that we are certain of the problem,
+      and 1 meaning that it could be a legitimate construct.
+    message: The error message.
+  """
+  if _ShouldPrintError(category, confidence, linenum):
+    _cpplint_state.IncrementErrorCount(category)
+    if _cpplint_state.output_format == 'vs7':
+      sys.stderr.write('%s(%s): error cpplint: [%s] %s [%d]\n' % (
+          filename, linenum, category, message, confidence))
+    elif _cpplint_state.output_format == 'eclipse':
+      sys.stderr.write('%s:%s: warning: %s  [%s] [%d]\n' % (
+          filename, linenum, message, category, confidence))
+    else:
+      sys.stderr.write('%s:%s:  %s  [%s] [%d]\n' % (
+          filename, linenum, message, category, confidence))
+
+
+# Matches standard C++ escape sequences per 2.13.2.3 of the C++ standard.
+_RE_PATTERN_CLEANSE_LINE_ESCAPES = re.compile(
+    r'\\([abfnrtv?"\\\']|\d+|x[0-9a-fA-F]+)')
+# Match a single C style comment on the same line.
+_RE_PATTERN_C_COMMENTS = r'/\*(?:[^*]|\*(?!/))*\*/'
+# Matches multi-line C style comments.
+# This RE is a little bit more complicated than one might expect, because we
+# have to take care of space removals tools so we can handle comments inside
+# statements better.
+# The current rule is: We only clear spaces from both sides when we're at the
+# end of the line. Otherwise, we try to remove spaces from the right side,
+# if this doesn't work we try on left side but only if there's a non-character
+# on the right.
+_RE_PATTERN_CLEANSE_LINE_C_COMMENTS = re.compile(
+    r'(\s*' + _RE_PATTERN_C_COMMENTS + r'\s*$|' +
+    _RE_PATTERN_C_COMMENTS + r'\s+|' +
+    r'\s+' + _RE_PATTERN_C_COMMENTS + r'(?=\W)|' +
+    _RE_PATTERN_C_COMMENTS + r')')
+
+
+def IsCppString(line):
+  """Does line terminate so, that the next symbol is in string constant.
+
+  This function does not consider single-line nor multi-line comments.
+
+  Args:
+    line: is a partial line of code starting from the 0..n.
+
+  Returns:
+    True, if next character appended to 'line' is inside a
+    string constant.
+  """
+
+  line = line.replace(r'\\', 'XX')  # after this, \\" does not match to \"
+  return ((line.count('"') - line.count(r'\"') - line.count("'\"'")) & 1) == 1
+
+
+def CleanseRawStrings(raw_lines):
+  """Removes C++11 raw strings from lines.
+
+    Before:
+      static const char kData[] = R"(
+          multi-line string
+          )";
+
+    After:
+      static const char kData[] = ""
+          (replaced by blank line)
+          "";
+
+  Args:
+    raw_lines: list of raw lines.
+
+  Returns:
+    list of lines with C++11 raw strings replaced by empty strings.
+  """
+
+  delimiter = None
+  lines_without_raw_strings = []
+  for line in raw_lines:
+    if delimiter:
+      # Inside a raw string, look for the end
+      end = line.find(delimiter)
+      if end >= 0:
+        # Found the end of the string, match leading space for this
+        # line and resume copying the original lines, and also insert
+        # a "" on the last line.
+        leading_space = Match(r'^(\s*)\S', line)
+        line = leading_space.group(1) + '""' + line[end + len(delimiter):]
+        delimiter = None
+      else:
+        # Haven't found the end yet, append a blank line.
+        line = '""'
+
+    # Look for beginning of a raw string, and replace them with
+    # empty strings.  This is done in a loop to handle multiple raw
+    # strings on the same line.
+    while delimiter is None:
+      # Look for beginning of a raw string.
+      # See 2.14.15 [lex.string] for syntax.
+      #
+      # Once we have matched a raw string, we check the prefix of the
+      # line to make sure that the line is not part of a single line
+      # comment.  It's done this way because we remove raw strings
+      # before removing comments as opposed to removing comments
+      # before removing raw strings.  This is because there are some
+      # cpplint checks that requires the comments to be preserved, but
+      # we don't want to check comments that are inside raw strings.
+      matched = Match(r'^(.*?)\b(?:R|u8R|uR|UR|LR)"([^\s\\()]*)\((.*)$', line)
+      if (matched and
+          not Match(r'^([^\'"]|\'(\\.|[^\'])*\'|"(\\.|[^"])*")*//',
+                    matched.group(1))):
+        delimiter = ')' + matched.group(2) + '"'
+
+        end = matched.group(3).find(delimiter)
+        if end >= 0:
+          # Raw string ended on same line
+          line = (matched.group(1) + '""' +
+                  matched.group(3)[end + len(delimiter):])
+          delimiter = None
+        else:
+          # Start of a multi-line raw string
+          line = matched.group(1) + '""'
+      else:
+        break
+
+    lines_without_raw_strings.append(line)
+
+  # TODO(unknown): if delimiter is not None here, we might want to
+  # emit a warning for unterminated string.
+  return lines_without_raw_strings
+
+
+def FindNextMultiLineCommentStart(lines, lineix):
+  """Find the beginning marker for a multiline comment."""
+  while lineix < len(lines):
+    if lines[lineix].strip().startswith('/*'):
+      # Only return this marker if the comment goes beyond this line
+      if lines[lineix].strip().find('*/', 2) < 0:
+        return lineix
+    lineix += 1
+  return len(lines)
+
+
+def FindNextMultiLineCommentEnd(lines, lineix):
+  """We are inside a comment, find the end marker."""
+  while lineix < len(lines):
+    if lines[lineix].strip().endswith('*/'):
+      return lineix
+    lineix += 1
+  return len(lines)
+
+
+def RemoveMultiLineCommentsFromRange(lines, begin, end):
+  """Clears a range of lines for multi-line comments."""
+  # Having // dummy comments makes the lines non-empty, so we will not get
+  # unnecessary blank line warnings later in the code.
+  for i in range(begin, end):
+    lines[i] = '/**/'
+
+
+def RemoveMultiLineComments(filename, lines, error):
+  """Removes multiline (c-style) comments from lines."""
+  lineix = 0
+  while lineix < len(lines):
+    lineix_begin = FindNextMultiLineCommentStart(lines, lineix)
+    if lineix_begin >= len(lines):
+      return
+    lineix_end = FindNextMultiLineCommentEnd(lines, lineix_begin)
+    if lineix_end >= len(lines):
+      error(filename, lineix_begin + 1, 'readability/multiline_comment', 5,
+            'Could not find end of multi-line comment')
+      return
+    RemoveMultiLineCommentsFromRange(lines, lineix_begin, lineix_end + 1)
+    lineix = lineix_end + 1
+
+
+def CleanseComments(line):
+  """Removes //-comments and single-line C-style /* */ comments.
+
+  Args:
+    line: A line of C++ source.
+
+  Returns:
+    The line with single-line comments removed.
+  """
+  commentpos = line.find('//')
+  if commentpos != -1 and not IsCppString(line[:commentpos]):
+    line = line[:commentpos].rstrip()
+  # get rid of /* ... */
+  return _RE_PATTERN_CLEANSE_LINE_C_COMMENTS.sub('', line)
+
+
+class CleansedLines(object):
+  """Holds 4 copies of all lines with different preprocessing applied to them.
+
+  1) elided member contains lines without strings and comments.
+  2) lines member contains lines without comments.
+  3) raw_lines member contains all the lines without processing.
+  4) lines_without_raw_strings member is same as raw_lines, but with C++11 raw
+     strings removed.
+  All these members are of , and of the same length.
+  """
+
+  def __init__(self, lines):
+    self.elided = []
+    self.lines = []
+    self.raw_lines = lines
+    self.num_lines = len(lines)
+    self.lines_without_raw_strings = CleanseRawStrings(lines)
+    for linenum in range(len(self.lines_without_raw_strings)):
+      self.lines.append(CleanseComments(
+          self.lines_without_raw_strings[linenum]))
+      elided = self._CollapseStrings(self.lines_without_raw_strings[linenum])
+      self.elided.append(CleanseComments(elided))
+
+  def NumLines(self):
+    """Returns the number of lines represented."""
+    return self.num_lines
+
+  @staticmethod
+  def _CollapseStrings(elided):
+    """Collapses strings and chars on a line to simple "" or '' blocks.
+
+    We nix strings first so we're not fooled by text like '"http://"'
+
+    Args:
+      elided: The line being processed.
+
+    Returns:
+      The line with collapsed strings.
+    """
+    if _RE_PATTERN_INCLUDE.match(elided):
+      return elided
+
+    # Remove escaped characters first to make quote/single quote collapsing
+    # basic.  Things that look like escaped characters shouldn't occur
+    # outside of strings and chars.
+    elided = _RE_PATTERN_CLEANSE_LINE_ESCAPES.sub('', elided)
+
+    # Replace quoted strings and digit separators.  Both single quotes
+    # and double quotes are processed in the same loop, otherwise
+    # nested quotes wouldn't work.
+    collapsed = ''
+    while True:
+      # Find the first quote character
+      match = Match(r'^([^\'"]*)([\'"])(.*)$', elided)
+      if not match:
+        collapsed += elided
+        break
+      head, quote, tail = match.groups()
+
+      if quote == '"':
+        # Collapse double quoted strings
+        second_quote = tail.find('"')
+        if second_quote >= 0:
+          collapsed += head + '""'
+          elided = tail[second_quote + 1:]
+        else:
+          # Unmatched double quote, don't bother processing the rest
+          # of the line since this is probably a multiline string.
+          collapsed += elided
+          break
+      else:
+        # Found single quote, check nearby text to eliminate digit separators.
+        #
+        # There is no special handling for floating point here, because
+        # the integer/fractional/exponent parts would all be parsed
+        # correctly as long as there are digits on both sides of the
+        # separator.  So we are fine as long as we don't see something
+        # like "0.'3" (gcc 4.9.0 will not allow this literal).
+        if Search(r'\b(?:0[bBxX]?|[1-9])[0-9a-fA-F]*$', head):
+          match_literal = Match(r'^((?:\'?[0-9a-zA-Z_])*)(.*)$', "'" + tail)
+          collapsed += head + match_literal.group(1).replace("'", '')
+          elided = match_literal.group(2)
+        else:
+          second_quote = tail.find('\'')
+          if second_quote >= 0:
+            collapsed += head + "''"
+            elided = tail[second_quote + 1:]
+          else:
+            # Unmatched single quote
+            collapsed += elided
+            break
+
+    return collapsed
+
+
+def FindEndOfExpressionInLine(line, startpos, stack):
+  """Find the position just after the end of current parenthesized expression.
+
+  Args:
+    line: a CleansedLines line.
+    startpos: start searching at this position.
+    stack: nesting stack at startpos.
+
+  Returns:
+    On finding matching end: (index just after matching end, None)
+    On finding an unclosed expression: (-1, None)
+    Otherwise: (-1, new stack at end of this line)
+  """
+  for i in xrange(startpos, len(line)):
+    char = line[i]
+    if char in '([{':
+      # Found start of parenthesized expression, push to expression stack
+      stack.append(char)
+    elif char == '<':
+      # Found potential start of template argument list
+      if i > 0 and line[i - 1] == '<':
+        # Left shift operator
+        if stack and stack[-1] == '<':
+          stack.pop()
+          if not stack:
+            return (-1, None)
+      elif i > 0 and Search(r'\boperator\s*$', line[0:i]):
+        # operator<, don't add to stack
+        continue
+      else:
+        # Tentative start of template argument list
+        stack.append('<')
+    elif char in ')]}':
+      # Found end of parenthesized expression.
+      #
+      # If we are currently expecting a matching '>', the pending '<'
+      # must have been an operator.  Remove them from expression stack.
+      while stack and stack[-1] == '<':
+        stack.pop()
+      if not stack:
+        return (-1, None)
+      if ((stack[-1] == '(' and char == ')') or
+          (stack[-1] == '[' and char == ']') or
+          (stack[-1] == '{' and char == '}')):
+        stack.pop()
+        if not stack:
+          return (i + 1, None)
+      else:
+        # Mismatched parentheses
+        return (-1, None)
+    elif char == '>':
+      # Found potential end of template argument list.
+
+      # Ignore "->" and operator functions
+      if (i > 0 and
+          (line[i - 1] == '-' or Search(r'\boperator\s*$', line[0:i - 1]))):
+        continue
+
+      # Pop the stack if there is a matching '<'.  Otherwise, ignore
+      # this '>' since it must be an operator.
+      if stack:
+        if stack[-1] == '<':
+          stack.pop()
+          if not stack:
+            return (i + 1, None)
+    elif char == ';':
+      # Found something that look like end of statements.  If we are currently
+      # expecting a '>', the matching '<' must have been an operator, since
+      # template argument list should not contain statements.
+      while stack and stack[-1] == '<':
+        stack.pop()
+      if not stack:
+        return (-1, None)
+
+  # Did not find end of expression or unbalanced parentheses on this line
+  return (-1, stack)
+
+
+def CloseExpression(clean_lines, linenum, pos):
+  """If input points to ( or { or [ or <, finds the position that closes it.
+
+  If lines[linenum][pos] points to a '(' or '{' or '[' or '<', finds the
+  linenum/pos that correspond to the closing of the expression.
+
+  TODO(unknown): cpplint spends a fair bit of time matching parentheses.
+  Ideally we would want to index all opening and closing parentheses once
+  and have CloseExpression be just a simple lookup, but due to preprocessor
+  tricks, this is not so easy.
+
+  Args:
+    clean_lines: A CleansedLines instance containing the file.
+    linenum: The number of the line to check.
+    pos: A position on the line.
+
+  Returns:
+    A tuple (line, linenum, pos) pointer *past* the closing brace, or
+    (line, len(lines), -1) if we never find a close.  Note we ignore
+    strings and comments when matching; and the line we return is the
+    'cleansed' line at linenum.
+  """
+
+  line = clean_lines.elided[linenum]
+  if (line[pos] not in '({[<') or Match(r'<[<=]', line[pos:]):
+    return (line, clean_lines.NumLines(), -1)
+
+  # Check first line
+  (end_pos, stack) = FindEndOfExpressionInLine(line, pos, [])
+  if end_pos > -1:
+    return (line, linenum, end_pos)
+
+  # Continue scanning forward
+  while stack and linenum < clean_lines.NumLines() - 1:
+    linenum += 1
+    line = clean_lines.elided[linenum]
+    (end_pos, stack) = FindEndOfExpressionInLine(line, 0, stack)
+    if end_pos > -1:
+      return (line, linenum, end_pos)
+
+  # Did not find end of expression before end of file, give up
+  return (line, clean_lines.NumLines(), -1)
+
+
+def FindStartOfExpressionInLine(line, endpos, stack):
+  """Find position at the matching start of current expression.
+
+  This is almost the reverse of FindEndOfExpressionInLine, but note
+  that the input position and returned position differs by 1.
+
+  Args:
+    line: a CleansedLines line.
+    endpos: start searching at this position.
+    stack: nesting stack at endpos.
+
+  Returns:
+    On finding matching start: (index at matching start, None)
+    On finding an unclosed expression: (-1, None)
+    Otherwise: (-1, new stack at beginning of this line)
+  """
+  i = endpos
+  while i >= 0:
+    char = line[i]
+    if char in ')]}':
+      # Found end of expression, push to expression stack
+      stack.append(char)
+    elif char == '>':
+      # Found potential end of template argument list.
+      #
+      # Ignore it if it's a "->" or ">=" or "operator>"
+      if (i > 0 and
+          (line[i - 1] == '-' or
+           Match(r'\s>=\s', line[i - 1:]) or
+           Search(r'\boperator\s*$', line[0:i]))):
+        i -= 1
+      else:
+        stack.append('>')
+    elif char == '<':
+      # Found potential start of template argument list
+      if i > 0 and line[i - 1] == '<':
+        # Left shift operator
+        i -= 1
+      else:
+        # If there is a matching '>', we can pop the expression stack.
+        # Otherwise, ignore this '<' since it must be an operator.
+        if stack and stack[-1] == '>':
+          stack.pop()
+          if not stack:
+            return (i, None)
+    elif char in '([{':
+      # Found start of expression.
+      #
+      # If there are any unmatched '>' on the stack, they must be
+      # operators.  Remove those.
+      while stack and stack[-1] == '>':
+        stack.pop()
+      if not stack:
+        return (-1, None)
+      if ((char == '(' and stack[-1] == ')') or
+          (char == '[' and stack[-1] == ']') or
+          (char == '{' and stack[-1] == '}')):
+        stack.pop()
+        if not stack:
+          return (i, None)
+      else:
+        # Mismatched parentheses
+        return (-1, None)
+    elif char == ';':
+      # Found something that look like end of statements.  If we are currently
+      # expecting a '<', the matching '>' must have been an operator, since
+      # template argument list should not contain statements.
+      while stack and stack[-1] == '>':
+        stack.pop()
+      if not stack:
+        return (-1, None)
+
+    i -= 1
+
+  return (-1, stack)
+
+
+def ReverseCloseExpression(clean_lines, linenum, pos):
+  """If input points to ) or } or ] or >, finds the position that opens it.
+
+  If lines[linenum][pos] points to a ')' or '}' or ']' or '>', finds the
+  linenum/pos that correspond to the opening of the expression.
+
+  Args:
+    clean_lines: A CleansedLines instance containing the file.
+    linenum: The number of the line to check.
+    pos: A position on the line.
+
+  Returns:
+    A tuple (line, linenum, pos) pointer *at* the opening brace, or
+    (line, 0, -1) if we never find the matching opening brace.  Note
+    we ignore strings and comments when matching; and the line we
+    return is the 'cleansed' line at linenum.
+  """
+  line = clean_lines.elided[linenum]
+  if line[pos] not in ')}]>':
+    return (line, 0, -1)
+
+  # Check last line
+  (start_pos, stack) = FindStartOfExpressionInLine(line, pos, [])
+  if start_pos > -1:
+    return (line, linenum, start_pos)
+
+  # Continue scanning backward
+  while stack and linenum > 0:
+    linenum -= 1
+    line = clean_lines.elided[linenum]
+    (start_pos, stack) = FindStartOfExpressionInLine(line, len(line) - 1, stack)
+    if start_pos > -1:
+      return (line, linenum, start_pos)
+
+  # Did not find start of expression before beginning of file, give up
+  return (line, 0, -1)
+
+
+def CheckForCopyright(filename, lines, error):
+  """Logs an error if no Copyright message appears at the top of the file."""
+
+  # We'll say it should occur by line 10. Don't forget there's a
+  # dummy line at the front.
+  for line in xrange(1, min(len(lines), 11)):
+    if re.search(r'Copyright', lines[line], re.I): break
+  else:                       # means no copyright line was found
+    error(filename, 0, 'legal/copyright', 5,
+          'No copyright message found.  '
+          'You should have a line: "Copyright [year] "')
+
+
+def GetIndentLevel(line):
+  """Return the number of leading spaces in line.
+
+  Args:
+    line: A string to check.
+
+  Returns:
+    An integer count of leading spaces, possibly zero.
+  """
+  indent = Match(r'^( *)\S', line)
+  if indent:
+    return len(indent.group(1))
+  else:
+    return 0
+
+
+def GetHeaderGuardCPPVariable(filename):
+  """Returns the CPP variable that should be used as a header guard.
+
+  Args:
+    filename: The name of a C++ header file.
+
+  Returns:
+    The CPP variable that should be used as a header guard in the
+    named file.
+
+  """
+
+  # Restores original filename in case that cpplint is invoked from Emacs's
+  # flymake.
+  filename = re.sub(r'_flymake\.h$', '.h', filename)
+  filename = re.sub(r'/\.flymake/([^/]*)$', r'/\1', filename)
+  # Replace 'c++' with 'cpp'.
+  filename = filename.replace('C++', 'cpp').replace('c++', 'cpp')
+
+  fileinfo = FileInfo(filename)
+  file_path_from_root = fileinfo.RepositoryName()
+  if _root:
+    suffix = os.sep
+    # On Windows using directory separator will leave us with
+    # "bogus escape error" unless we properly escape regex.
+    if suffix == '\\':
+      suffix += '\\'
+    file_path_from_root = re.sub('^' + _root + suffix, '', file_path_from_root)
+  return re.sub(r'[^a-zA-Z0-9]', '_', file_path_from_root).upper() + '_'
+
+
+def CheckForHeaderGuard(filename, clean_lines, error):
+  """Checks that the file contains a header guard.
+
+  Logs an error if no #ifndef header guard is present.  For other
+  headers, checks that the full pathname is used.
+
+  Args:
+    filename: The name of the C++ header file.
+    clean_lines: A CleansedLines instance containing the file.
+    error: The function to call with any errors found.
+  """
+
+  # Don't check for header guards if there are error suppression
+  # comments somewhere in this file.
+  #
+  # Because this is silencing a warning for a nonexistent line, we
+  # only support the very specific NOLINT(build/header_guard) syntax,
+  # and not the general NOLINT or NOLINT(*) syntax.
+  raw_lines = clean_lines.lines_without_raw_strings
+  for i in raw_lines:
+    if Search(r'//\s*NOLINT\(build/header_guard\)', i):
+      return
+
+  cppvar = GetHeaderGuardCPPVariable(filename)
+
+  ifndef = ''
+  ifndef_linenum = 0
+  define = ''
+  endif = ''
+  endif_linenum = 0
+  for linenum, line in enumerate(raw_lines):
+    linesplit = line.split()
+    if len(linesplit) >= 2:
+      # find the first occurrence of #ifndef and #define, save arg
+      if not ifndef and linesplit[0] == '#ifndef':
+        # set ifndef to the header guard presented on the #ifndef line.
+        ifndef = linesplit[1]
+        ifndef_linenum = linenum
+      if not define and linesplit[0] == '#define':
+        define = linesplit[1]
+    # find the last occurrence of #endif, save entire line
+    if line.startswith('#endif'):
+      endif = line
+      endif_linenum = linenum
+
+  if not ifndef or not define or ifndef != define:
+    error(filename, 0, 'build/header_guard', 5,
+          'No #ifndef header guard found, suggested CPP variable is: %s' %
+          cppvar)
+    return
+
+  # The guard should be PATH_FILE_H_, but we also allow PATH_FILE_H__
+  # for backward compatibility.
+  if ifndef != cppvar:
+    error_level = 0
+    if ifndef != cppvar + '_':
+      error_level = 5
+
+    ParseNolintSuppressions(filename, raw_lines[ifndef_linenum], ifndef_linenum,
+                            error)
+    error(filename, ifndef_linenum, 'build/header_guard', error_level,
+          '#ifndef header guard has wrong style, please use: %s' % cppvar)
+
+  # Check for "//" comments on endif line.
+  ParseNolintSuppressions(filename, raw_lines[endif_linenum], endif_linenum,
+                          error)
+  match = Match(r'#endif\s*//\s*' + cppvar + r'(_)?\b', endif)
+  if match:
+    if match.group(1) == '_':
+      # Issue low severity warning for deprecated double trailing underscore
+      error(filename, endif_linenum, 'build/header_guard', 0,
+            '#endif line should be "#endif  // %s"' % cppvar)
+    return
+
+  # Didn't find the corresponding "//" comment.  If this file does not
+  # contain any "//" comments at all, it could be that the compiler
+  # only wants "/**/" comments, look for those instead.
+  no_single_line_comments = True
+  for i in xrange(1, len(raw_lines) - 1):
+    line = raw_lines[i]
+    if Match(r'^(?:(?:\'(?:\.|[^\'])*\')|(?:"(?:\.|[^"])*")|[^\'"])*//', line):
+      no_single_line_comments = False
+      break
+
+  if no_single_line_comments:
+    match = Match(r'#endif\s*/\*\s*' + cppvar + r'(_)?\s*\*/', endif)
+    if match:
+      if match.group(1) == '_':
+        # Low severity warning for double trailing underscore
+        error(filename, endif_linenum, 'build/header_guard', 0,
+              '#endif line should be "#endif  /* %s */"' % cppvar)
+      return
+
+  # Didn't find anything
+  error(filename, endif_linenum, 'build/header_guard', 5,
+        '#endif line should be "#endif  // %s"' % cppvar)
+
+
+def CheckHeaderFileIncluded(filename, include_state, error):
+  """Logs an error if a .cc file does not include its header."""
+
+  # Do not check test files
+  fileinfo = FileInfo(filename)
+  if Search(_TEST_FILE_SUFFIX, fileinfo.BaseName()):
+    return
+
+  headerfile = filename[0:len(filename) - len(fileinfo.Extension())] + '.h'
+  if not os.path.exists(headerfile):
+    return
+  headername = FileInfo(headerfile).RepositoryName()
+  first_include = 0
+  for section_list in include_state.include_list:
+    for f in section_list:
+      if headername in f[0] or f[0] in headername:
+        return
+      if not first_include:
+        first_include = f[1]
+
+  error(filename, first_include, 'build/include', 5,
+        '%s should include its header file %s' % (fileinfo.RepositoryName(),
+                                                  headername))
+
+
+def CheckForBadCharacters(filename, lines, error):
+  """Logs an error for each line containing bad characters.
+
+  Two kinds of bad characters:
+
+  1. Unicode replacement characters: These indicate that either the file
+  contained invalid UTF-8 (likely) or Unicode replacement characters (which
+  it shouldn't).  Note that it's possible for this to throw off line
+  numbering if the invalid UTF-8 occurred adjacent to a newline.
+
+  2. NUL bytes.  These are problematic for some tools.
+
+  Args:
+    filename: The name of the current file.
+    lines: An array of strings, each representing a line of the file.
+    error: The function to call with any errors found.
+  """
+  for linenum, line in enumerate(lines):
+    if u'\ufffd' in line:
+      error(filename, linenum, 'readability/utf8', 5,
+            'Line contains invalid UTF-8 (or Unicode replacement character).')
+    if '\0' in line:
+      error(filename, linenum, 'readability/nul', 5, 'Line contains NUL byte.')
+
+
+def CheckForNewlineAtEOF(filename, lines, error):
+  """Logs an error if there is no newline char at the end of the file.
+
+  Args:
+    filename: The name of the current file.
+    lines: An array of strings, each representing a line of the file.
+    error: The function to call with any errors found.
+  """
+
+  # The array lines() was created by adding two newlines to the
+  # original file (go figure), then splitting on \n.
+  # To verify that the file ends in \n, we just have to make sure the
+  # last-but-two element of lines() exists and is empty.
+  if len(lines) < 3 or lines[-2]:
+    error(filename, len(lines) - 2, 'whitespace/ending_newline', 5,
+          'Could not find a newline character at the end of the file.')
+
+
+def CheckForMultilineCommentsAndStrings(filename, clean_lines, linenum, error):
+  """Logs an error if we see /* ... */ or "..." that extend past one line.
+
+  /* ... */ comments are legit inside macros, for one line.
+  Otherwise, we prefer // comments, so it's ok to warn about the
+  other.  Likewise, it's ok for strings to extend across multiple
+  lines, as long as a line continuation character (backslash)
+  terminates each line. Although not currently prohibited by the C++
+  style guide, it's ugly and unnecessary. We don't do well with either
+  in this lint program, so we warn about both.
+
+  Args:
+    filename: The name of the current file.
+    clean_lines: A CleansedLines instance containing the file.
+    linenum: The number of the line to check.
+    error: The function to call with any errors found.
+  """
+  line = clean_lines.elided[linenum]
+
+  # Remove all \\ (escaped backslashes) from the line. They are OK, and the
+  # second (escaped) slash may trigger later \" detection erroneously.
+  line = line.replace('\\\\', '')
+
+  if line.count('/*') > line.count('*/'):
+    error(filename, linenum, 'readability/multiline_comment', 5,
+          'Complex multi-line /*...*/-style comment found. '
+          'Lint may give bogus warnings.  '
+          'Consider replacing these with //-style comments, '
+          'with #if 0...#endif, '
+          'or with more clearly structured multi-line comments.')
+
+  if (line.count('"') - line.count('\\"')) % 2:
+    error(filename, linenum, 'readability/multiline_string', 5,
+          'Multi-line string ("...") found.  This lint script doesn\'t '
+          'do well with such strings, and may give bogus warnings.  '
+          'Use C++11 raw strings or concatenation instead.')
+
+
+# (non-threadsafe name, thread-safe alternative, validation pattern)
+#
+# The validation pattern is used to eliminate false positives such as:
+#  _rand();               // false positive due to substring match.
+#  ->rand();              // some member function rand().
+#  ACMRandom rand(seed);  // some variable named rand.
+#  ISAACRandom rand();    // another variable named rand.
+#
+# Basically we require the return value of these functions to be used
+# in some expression context on the same line by matching on some
+# operator before the function name.  This eliminates constructors and
+# member function calls.
+_UNSAFE_FUNC_PREFIX = r'(?:[-+*/=%^&|(<]\s*|>\s+)'
+_THREADING_LIST = (
+    ('asctime(', 'asctime_r(', _UNSAFE_FUNC_PREFIX + r'asctime\([^)]+\)'),
+    ('ctime(', 'ctime_r(', _UNSAFE_FUNC_PREFIX + r'ctime\([^)]+\)'),
+    ('getgrgid(', 'getgrgid_r(', _UNSAFE_FUNC_PREFIX + r'getgrgid\([^)]+\)'),
+    ('getgrnam(', 'getgrnam_r(', _UNSAFE_FUNC_PREFIX + r'getgrnam\([^)]+\)'),
+    ('getlogin(', 'getlogin_r(', _UNSAFE_FUNC_PREFIX + r'getlogin\(\)'),
+    ('getpwnam(', 'getpwnam_r(', _UNSAFE_FUNC_PREFIX + r'getpwnam\([^)]+\)'),
+    ('getpwuid(', 'getpwuid_r(', _UNSAFE_FUNC_PREFIX + r'getpwuid\([^)]+\)'),
+    ('gmtime(', 'gmtime_r(', _UNSAFE_FUNC_PREFIX + r'gmtime\([^)]+\)'),
+    ('localtime(', 'localtime_r(', _UNSAFE_FUNC_PREFIX + r'localtime\([^)]+\)'),
+    ('rand(', 'rand_r(', _UNSAFE_FUNC_PREFIX + r'rand\(\)'),
+    ('strtok(', 'strtok_r(',
+     _UNSAFE_FUNC_PREFIX + r'strtok\([^)]+\)'),
+    ('ttyname(', 'ttyname_r(', _UNSAFE_FUNC_PREFIX + r'ttyname\([^)]+\)'),
+    )
+
+
+def CheckPosixThreading(filename, clean_lines, linenum, error):
+  """Checks for calls to thread-unsafe functions.
+
+  Much code has been originally written without consideration of
+  multi-threading. Also, engineers are relying on their old experience;
+  they have learned posix before threading extensions were added. These
+  tests guide the engineers to use thread-safe functions (when using
+  posix directly).
+
+  Args:
+    filename: The name of the current file.
+    clean_lines: A CleansedLines instance containing the file.
+    linenum: The number of the line to check.
+    error: The function to call with any errors found.
+  """
+  line = clean_lines.elided[linenum]
+  for single_thread_func, multithread_safe_func, pattern in _THREADING_LIST:
+    # Additional pattern matching check to confirm that this is the
+    # function we are looking for
+    if Search(pattern, line):
+      error(filename, linenum, 'runtime/threadsafe_fn', 2,
+            'Consider using ' + multithread_safe_func +
+            '...) instead of ' + single_thread_func +
+            '...) for improved thread safety.')
+
+
+def CheckVlogArguments(filename, clean_lines, linenum, error):
+  """Checks that VLOG() is only used for defining a logging level.
+
+  For example, VLOG(2) is correct. VLOG(INFO), VLOG(WARNING), VLOG(ERROR), and
+  VLOG(FATAL) are not.
+
+  Args:
+    filename: The name of the current file.
+    clean_lines: A CleansedLines instance containing the file.
+    linenum: The number of the line to check.
+    error: The function to call with any errors found.
+  """
+  line = clean_lines.elided[linenum]
+  if Search(r'\bVLOG\((INFO|ERROR|WARNING|DFATAL|FATAL)\)', line):
+    error(filename, linenum, 'runtime/vlog', 5,
+          'VLOG() should be used with numeric verbosity level.  '
+          'Use LOG() if you want symbolic severity levels.')
+
+# Matches invalid increment: *count++, which moves pointer instead of
+# incrementing a value.
+_RE_PATTERN_INVALID_INCREMENT = re.compile(
+    r'^\s*\*\w+(\+\+|--);')
+
+
+def CheckInvalidIncrement(filename, clean_lines, linenum, error):
+  """Checks for invalid increment *count++.
+
+  For example following function:
+  void increment_counter(int* count) {
+    *count++;
+  }
+  is invalid, because it effectively does count++, moving pointer, and should
+  be replaced with ++*count, (*count)++ or *count += 1.
+
+  Args:
+    filename: The name of the current file.
+    clean_lines: A CleansedLines instance containing the file.
+    linenum: The number of the line to check.
+    error: The function to call with any errors found.
+  """
+  line = clean_lines.elided[linenum]
+  if _RE_PATTERN_INVALID_INCREMENT.match(line):
+    error(filename, linenum, 'runtime/invalid_increment', 5,
+          'Changing pointer instead of value (or unused value of operator*).')
+
+
+def IsMacroDefinition(clean_lines, linenum):
+  if Search(r'^#define', clean_lines[linenum]):
+    return True
+
+  if linenum > 0 and Search(r'\\$', clean_lines[linenum - 1]):
+    return True
+
+  return False
+
+
+def IsForwardClassDeclaration(clean_lines, linenum):
+  return Match(r'^\s*(\btemplate\b)*.*class\s+\w+;\s*$', clean_lines[linenum])
+
+
+class _BlockInfo(object):
+  """Stores information about a generic block of code."""
+
+  def __init__(self, linenum, seen_open_brace):
+    self.starting_linenum = linenum
+    self.seen_open_brace = seen_open_brace
+    self.open_parentheses = 0
+    self.inline_asm = _NO_ASM
+    self.check_namespace_indentation = False
+
+  def CheckBegin(self, filename, clean_lines, linenum, error):
+    """Run checks that applies to text up to the opening brace.
+
+    This is mostly for checking the text after the class identifier
+    and the "{", usually where the base class is specified.  For other
+    blocks, there isn't much to check, so we always pass.
+
+    Args:
+      filename: The name of the current file.
+      clean_lines: A CleansedLines instance containing the file.
+      linenum: The number of the line to check.
+      error: The function to call with any errors found.
+    """
+    pass
+
+  def CheckEnd(self, filename, clean_lines, linenum, error):
+    """Run checks that applies to text after the closing brace.
+
+    This is mostly used for checking end of namespace comments.
+
+    Args:
+      filename: The name of the current file.
+      clean_lines: A CleansedLines instance containing the file.
+      linenum: The number of the line to check.
+      error: The function to call with any errors found.
+    """
+    pass
+
+  def IsBlockInfo(self):
+    """Returns true if this block is a _BlockInfo.
+
+    This is convenient for verifying that an object is an instance of
+    a _BlockInfo, but not an instance of any of the derived classes.
+
+    Returns:
+      True for this class, False for derived classes.
+    """
+    return self.__class__ == _BlockInfo
+
+
+class _ExternCInfo(_BlockInfo):
+  """Stores information about an 'extern "C"' block."""
+
+  def __init__(self, linenum):
+    _BlockInfo.__init__(self, linenum, True)
+
+
+class _ClassInfo(_BlockInfo):
+  """Stores information about a class."""
+
+  def __init__(self, name, class_or_struct, clean_lines, linenum):
+    _BlockInfo.__init__(self, linenum, False)
+    self.name = name
+    self.is_derived = False
+    self.check_namespace_indentation = True
+    if class_or_struct == 'struct':
+      self.access = 'public'
+      self.is_struct = True
+    else:
+      self.access = 'private'
+      self.is_struct = False
+
+    # Remember initial indentation level for this class.  Using raw_lines here
+    # instead of elided to account for leading comments.
+    self.class_indent = GetIndentLevel(clean_lines.raw_lines[linenum])
+
+    # Try to find the end of the class.  This will be confused by things like:
+    #   class A {
+    #   } *x = { ...
+    #
+    # But it's still good enough for CheckSectionSpacing.
+    self.last_line = 0
+    depth = 0
+    for i in range(linenum, clean_lines.NumLines()):
+      line = clean_lines.elided[i]
+      depth += line.count('{') - line.count('}')
+      if not depth:
+        self.last_line = i
+        break
+
+  def CheckBegin(self, filename, clean_lines, linenum, error):
+    # Look for a bare ':'
+    if Search('(^|[^:]):($|[^:])', clean_lines.elided[linenum]):
+      self.is_derived = True
+
+  def CheckEnd(self, filename, clean_lines, linenum, error):
+    # If there is a DISALLOW macro, it should appear near the end of
+    # the class.
+    seen_last_thing_in_class = False
+    for i in xrange(linenum - 1, self.starting_linenum, -1):
+      match = Search(
+          r'\b(DISALLOW_COPY_AND_ASSIGN|DISALLOW_IMPLICIT_CONSTRUCTORS)\(' +
+          self.name + r'\)',
+          clean_lines.elided[i])
+      if match:
+        if seen_last_thing_in_class:
+          error(filename, i, 'readability/constructors', 3,
+                match.group(1) + ' should be the last thing in the class')
+        break
+
+      if not Match(r'^\s*$', clean_lines.elided[i]):
+        seen_last_thing_in_class = True
+
+    # Check that closing brace is aligned with beginning of the class.
+    # Only do this if the closing brace is indented by only whitespaces.
+    # This means we will not check single-line class definitions.
+    indent = Match(r'^( *)\}', clean_lines.elided[linenum])
+    if indent and len(indent.group(1)) != self.class_indent:
+      if self.is_struct:
+        parent = 'struct ' + self.name
+      else:
+        parent = 'class ' + self.name
+      error(filename, linenum, 'whitespace/indent', 3,
+            'Closing brace should be aligned with beginning of %s' % parent)
+
+
+class _NamespaceInfo(_BlockInfo):
+  """Stores information about a namespace."""
+
+  def __init__(self, name, linenum):
+    _BlockInfo.__init__(self, linenum, False)
+    self.name = name or ''
+    self.check_namespace_indentation = True
+
+  def CheckEnd(self, filename, clean_lines, linenum, error):
+    """Check end of namespace comments."""
+    line = clean_lines.raw_lines[linenum]
+
+    # Check how many lines is enclosed in this namespace.  Don't issue
+    # warning for missing namespace comments if there aren't enough
+    # lines.  However, do apply checks if there is already an end of
+    # namespace comment and it's incorrect.
+    #
+    # TODO(unknown): We always want to check end of namespace comments
+    # if a namespace is large, but sometimes we also want to apply the
+    # check if a short namespace contained nontrivial things (something
+    # other than forward declarations).  There is currently no logic on
+    # deciding what these nontrivial things are, so this check is
+    # triggered by namespace size only, which works most of the time.
+    if (linenum - self.starting_linenum < 10
+        and not Match(r'^\s*};*\s*(//|/\*).*\bnamespace\b', line)):
+      return
+
+    # Look for matching comment at end of namespace.
+    #
+    # Note that we accept C style "/* */" comments for terminating
+    # namespaces, so that code that terminate namespaces inside
+    # preprocessor macros can be cpplint clean.
+    #
+    # We also accept stuff like "// end of namespace ." with the
+    # period at the end.
+    #
+    # Besides these, we don't accept anything else, otherwise we might
+    # get false negatives when existing comment is a substring of the
+    # expected namespace.
+    if self.name:
+      # Named namespace
+      if not Match((r'^\s*};*\s*(//|/\*).*\bnamespace\s+' +
+                    re.escape(self.name) + r'[\*/\.\\\s]*$'),
+                   line):
+        error(filename, linenum, 'readability/namespace', 5,
+              'Namespace should be terminated with "// namespace %s"' %
+              self.name)
+    else:
+      # Anonymous namespace
+      if not Match(r'^\s*};*\s*(//|/\*).*\bnamespace[\*/\.\\\s]*$', line):
+        # If "// namespace anonymous" or "// anonymous namespace (more text)",
+        # mention "// anonymous namespace" as an acceptable form
+        if Match(r'^\s*}.*\b(namespace anonymous|anonymous namespace)\b', line):
+          error(filename, linenum, 'readability/namespace', 5,
+                'Anonymous namespace should be terminated with "// namespace"'
+                ' or "// anonymous namespace"')
+        else:
+          error(filename, linenum, 'readability/namespace', 5,
+                'Anonymous namespace should be terminated with "// namespace"')
+
+
+class _PreprocessorInfo(object):
+  """Stores checkpoints of nesting stacks when #if/#else is seen."""
+
+  def __init__(self, stack_before_if):
+    # The entire nesting stack before #if
+    self.stack_before_if = stack_before_if
+
+    # The entire nesting stack up to #else
+    self.stack_before_else = []
+
+    # Whether we have already seen #else or #elif
+    self.seen_else = False
+
+
+class NestingState(object):
+  """Holds states related to parsing braces."""
+
+  def __init__(self):
+    # Stack for tracking all braces.  An object is pushed whenever we
+    # see a "{", and popped when we see a "}".  Only 3 types of
+    # objects are possible:
+    # - _ClassInfo: a class or struct.
+    # - _NamespaceInfo: a namespace.
+    # - _BlockInfo: some other type of block.
+    self.stack = []
+
+    # Top of the previous stack before each Update().
+    #
+    # Because the nesting_stack is updated at the end of each line, we
+    # had to do some convoluted checks to find out what is the current
+    # scope at the beginning of the line.  This check is simplified by
+    # saving the previous top of nesting stack.
+    #
+    # We could save the full stack, but we only need the top.  Copying
+    # the full nesting stack would slow down cpplint by ~10%.
+    self.previous_stack_top = []
+
+    # Stack of _PreprocessorInfo objects.
+    self.pp_stack = []
+
+  def SeenOpenBrace(self):
+    """Check if we have seen the opening brace for the innermost block.
+
+    Returns:
+      True if we have seen the opening brace, False if the innermost
+      block is still expecting an opening brace.
+    """
+    return (not self.stack) or self.stack[-1].seen_open_brace
+
+  def InNamespaceBody(self):
+    """Check if we are currently one level inside a namespace body.
+
+    Returns:
+      True if top of the stack is a namespace block, False otherwise.
+    """
+    return self.stack and isinstance(self.stack[-1], _NamespaceInfo)
+
+  def InExternC(self):
+    """Check if we are currently one level inside an 'extern "C"' block.
+
+    Returns:
+      True if top of the stack is an extern block, False otherwise.
+    """
+    return self.stack and isinstance(self.stack[-1], _ExternCInfo)
+
+  def InClassDeclaration(self):
+    """Check if we are currently one level inside a class or struct declaration.
+
+    Returns:
+      True if top of the stack is a class/struct, False otherwise.
+    """
+    return self.stack and isinstance(self.stack[-1], _ClassInfo)
+
+  def InAsmBlock(self):
+    """Check if we are currently one level inside an inline ASM block.
+
+    Returns:
+      True if the top of the stack is a block containing inline ASM.
+    """
+    return self.stack and self.stack[-1].inline_asm != _NO_ASM
+
+  def InTemplateArgumentList(self, clean_lines, linenum, pos):
+    """Check if current position is inside template argument list.
+
+    Args:
+      clean_lines: A CleansedLines instance containing the file.
+      linenum: The number of the line to check.
+      pos: position just after the suspected template argument.
+    Returns:
+      True if (linenum, pos) is inside template arguments.
+    """
+    while linenum < clean_lines.NumLines():
+      # Find the earliest character that might indicate a template argument
+      line = clean_lines.elided[linenum]
+      match = Match(r'^[^{};=\[\]\.<>]*(.)', line[pos:])
+      if not match:
+        linenum += 1
+        pos = 0
+        continue
+      token = match.group(1)
+      pos += len(match.group(0))
+
+      # These things do not look like template argument list:
+      #   class Suspect {
+      #   class Suspect x; }
+      if token in ('{', '}', ';'): return False
+
+      # These things look like template argument list:
+      #   template 
+      #   template 
+      #   template 
+      #   template 
+      if token in ('>', '=', '[', ']', '.'): return True
+
+      # Check if token is an unmatched '<'.
+      # If not, move on to the next character.
+      if token != '<':
+        pos += 1
+        if pos >= len(line):
+          linenum += 1
+          pos = 0
+        continue
+
+      # We can't be sure if we just find a single '<', and need to
+      # find the matching '>'.
+      (_, end_line, end_pos) = CloseExpression(clean_lines, linenum, pos - 1)
+      if end_pos < 0:
+        # Not sure if template argument list or syntax error in file
+        return False
+      linenum = end_line
+      pos = end_pos
+    return False
+
+  def UpdatePreprocessor(self, line):
+    """Update preprocessor stack.
+
+    We need to handle preprocessors due to classes like this:
+      #ifdef SWIG
+      struct ResultDetailsPageElementExtensionPoint {
+      #else
+      struct ResultDetailsPageElementExtensionPoint : public Extension {
+      #endif
+
+    We make the following assumptions (good enough for most files):
+    - Preprocessor condition evaluates to true from #if up to first
+      #else/#elif/#endif.
+
+    - Preprocessor condition evaluates to false from #else/#elif up
+      to #endif.  We still perform lint checks on these lines, but
+      these do not affect nesting stack.
+
+    Args:
+      line: current line to check.
+    """
+    if Match(r'^\s*#\s*(if|ifdef|ifndef)\b', line):
+      # Beginning of #if block, save the nesting stack here.  The saved
+      # stack will allow us to restore the parsing state in the #else case.
+      self.pp_stack.append(_PreprocessorInfo(copy.deepcopy(self.stack)))
+    elif Match(r'^\s*#\s*(else|elif)\b', line):
+      # Beginning of #else block
+      if self.pp_stack:
+        if not self.pp_stack[-1].seen_else:
+          # This is the first #else or #elif block.  Remember the
+          # whole nesting stack up to this point.  This is what we
+          # keep after the #endif.
+          self.pp_stack[-1].seen_else = True
+          self.pp_stack[-1].stack_before_else = copy.deepcopy(self.stack)
+
+        # Restore the stack to how it was before the #if
+        self.stack = copy.deepcopy(self.pp_stack[-1].stack_before_if)
+      else:
+        # TODO(unknown): unexpected #else, issue warning?
+        pass
+    elif Match(r'^\s*#\s*endif\b', line):
+      # End of #if or #else blocks.
+      if self.pp_stack:
+        # If we saw an #else, we will need to restore the nesting
+        # stack to its former state before the #else, otherwise we
+        # will just continue from where we left off.
+        if self.pp_stack[-1].seen_else:
+          # Here we can just use a shallow copy since we are the last
+          # reference to it.
+          self.stack = self.pp_stack[-1].stack_before_else
+        # Drop the corresponding #if
+        self.pp_stack.pop()
+      else:
+        # TODO(unknown): unexpected #endif, issue warning?
+        pass
+
+  # TODO(unknown): Update() is too long, but we will refactor later.
+  def Update(self, filename, clean_lines, linenum, error):
+    """Update nesting state with current line.
+
+    Args:
+      filename: The name of the current file.
+      clean_lines: A CleansedLines instance containing the file.
+      linenum: The number of the line to check.
+      error: The function to call with any errors found.
+    """
+    line = clean_lines.elided[linenum]
+
+    # Remember top of the previous nesting stack.
+    #
+    # The stack is always pushed/popped and not modified in place, so
+    # we can just do a shallow copy instead of copy.deepcopy.  Using
+    # deepcopy would slow down cpplint by ~28%.
+    if self.stack:
+      self.previous_stack_top = self.stack[-1]
+    else:
+      self.previous_stack_top = None
+
+    # Update pp_stack
+    self.UpdatePreprocessor(line)
+
+    # Count parentheses.  This is to avoid adding struct arguments to
+    # the nesting stack.
+    if self.stack:
+      inner_block = self.stack[-1]
+      depth_change = line.count('(') - line.count(')')
+      inner_block.open_parentheses += depth_change
+
+      # Also check if we are starting or ending an inline assembly block.
+      if inner_block.inline_asm in (_NO_ASM, _END_ASM):
+        if (depth_change != 0 and
+            inner_block.open_parentheses == 1 and
+            _MATCH_ASM.match(line)):
+          # Enter assembly block
+          inner_block.inline_asm = _INSIDE_ASM
+        else:
+          # Not entering assembly block.  If previous line was _END_ASM,
+          # we will now shift to _NO_ASM state.
+          inner_block.inline_asm = _NO_ASM
+      elif (inner_block.inline_asm == _INSIDE_ASM and
+            inner_block.open_parentheses == 0):
+        # Exit assembly block
+        inner_block.inline_asm = _END_ASM
+
+    # Consume namespace declaration at the beginning of the line.  Do
+    # this in a loop so that we catch same line declarations like this:
+    #   namespace proto2 { namespace bridge { class MessageSet; } }
+    while True:
+      # Match start of namespace.  The "\b\s*" below catches namespace
+      # declarations even if it weren't followed by a whitespace, this
+      # is so that we don't confuse our namespace checker.  The
+      # missing spaces will be flagged by CheckSpacing.
+      namespace_decl_match = Match(r'^\s*namespace\b\s*([:\w]+)?(.*)$', line)
+      if not namespace_decl_match:
+        break
+
+      new_namespace = _NamespaceInfo(namespace_decl_match.group(1), linenum)
+      self.stack.append(new_namespace)
+
+      line = namespace_decl_match.group(2)
+      if line.find('{') != -1:
+        new_namespace.seen_open_brace = True
+        line = line[line.find('{') + 1:]
+
+    # Look for a class declaration in whatever is left of the line
+    # after parsing namespaces.  The regexp accounts for decorated classes
+    # such as in:
+    #   class LOCKABLE API Object {
+    #   };
+    class_decl_match = Match(
+        r'^(\s*(?:template\s*<[\w\s<>,:]*>\s*)?'
+        r'(class|struct)\s+(?:[A-Z_]+\s+)*(\w+(?:::\w+)*))'
+        r'(.*)$', line)
+    if (class_decl_match and
+        (not self.stack or self.stack[-1].open_parentheses == 0)):
+      # We do not want to accept classes that are actually template arguments:
+      #   template ,
+      #             template  class Ignore3>
+      #   void Function() {};
+      #
+      # To avoid template argument cases, we scan forward and look for
+      # an unmatched '>'.  If we see one, assume we are inside a
+      # template argument list.
+      end_declaration = len(class_decl_match.group(1))
+      if not self.InTemplateArgumentList(clean_lines, linenum, end_declaration):
+        self.stack.append(_ClassInfo(
+            class_decl_match.group(3), class_decl_match.group(2),
+            clean_lines, linenum))
+        line = class_decl_match.group(4)
+
+    # If we have not yet seen the opening brace for the innermost block,
+    # run checks here.
+    if not self.SeenOpenBrace():
+      self.stack[-1].CheckBegin(filename, clean_lines, linenum, error)
+
+    # Update access control if we are inside a class/struct
+    if self.stack and isinstance(self.stack[-1], _ClassInfo):
+      classinfo = self.stack[-1]
+      access_match = Match(
+          r'^(.*)\b(public|private|protected|signals)(\s+(?:slots\s*)?)?'
+          r':(?:[^:]|$)',
+          line)
+      if access_match:
+        classinfo.access = access_match.group(2)
+
+        # Check that access keywords are indented +1 space.  Skip this
+        # check if the keywords are not preceded by whitespaces.
+        indent = access_match.group(1)
+        if (len(indent) != classinfo.class_indent + 1 and
+            Match(r'^\s*$', indent)):
+          if classinfo.is_struct:
+            parent = 'struct ' + classinfo.name
+          else:
+            parent = 'class ' + classinfo.name
+          slots = ''
+          if access_match.group(3):
+            slots = access_match.group(3)
+          error(filename, linenum, 'whitespace/indent', 3,
+                '%s%s: should be indented +1 space inside %s' % (
+                    access_match.group(2), slots, parent))
+
+    # Consume braces or semicolons from what's left of the line
+    while True:
+      # Match first brace, semicolon, or closed parenthesis.
+      matched = Match(r'^[^{;)}]*([{;)}])(.*)$', line)
+      if not matched:
+        break
+
+      token = matched.group(1)
+      if token == '{':
+        # If namespace or class hasn't seen a opening brace yet, mark
+        # namespace/class head as complete.  Push a new block onto the
+        # stack otherwise.
+        if not self.SeenOpenBrace():
+          self.stack[-1].seen_open_brace = True
+        elif Match(r'^extern\s*"[^"]*"\s*\{', line):
+          self.stack.append(_ExternCInfo(linenum))
+        else:
+          self.stack.append(_BlockInfo(linenum, True))
+          if _MATCH_ASM.match(line):
+            self.stack[-1].inline_asm = _BLOCK_ASM
+
+      elif token == ';' or token == ')':
+        # If we haven't seen an opening brace yet, but we already saw
+        # a semicolon, this is probably a forward declaration.  Pop
+        # the stack for these.
+        #
+        # Similarly, if we haven't seen an opening brace yet, but we
+        # already saw a closing parenthesis, then these are probably
+        # function arguments with extra "class" or "struct" keywords.
+        # Also pop these stack for these.
+        if not self.SeenOpenBrace():
+          self.stack.pop()
+      else:  # token == '}'
+        # Perform end of block checks and pop the stack.
+        if self.stack:
+          self.stack[-1].CheckEnd(filename, clean_lines, linenum, error)
+          self.stack.pop()
+      line = matched.group(2)
+
+  def InnermostClass(self):
+    """Get class info on the top of the stack.
+
+    Returns:
+      A _ClassInfo object if we are inside a class, or None otherwise.
+    """
+    for i in range(len(self.stack), 0, -1):
+      classinfo = self.stack[i - 1]
+      if isinstance(classinfo, _ClassInfo):
+        return classinfo
+    return None
+
+  def CheckCompletedBlocks(self, filename, error):
+    """Checks that all classes and namespaces have been completely parsed.
+
+    Call this when all lines in a file have been processed.
+    Args:
+      filename: The name of the current file.
+      error: The function to call with any errors found.
+    """
+    # Note: This test can result in false positives if #ifdef constructs
+    # get in the way of brace matching. See the testBuildClass test in
+    # cpplint_unittest.py for an example of this.
+    for obj in self.stack:
+      if isinstance(obj, _ClassInfo):
+        error(filename, obj.starting_linenum, 'build/class', 5,
+              'Failed to find complete declaration of class %s' %
+              obj.name)
+      elif isinstance(obj, _NamespaceInfo):
+        error(filename, obj.starting_linenum, 'build/namespaces', 5,
+              'Failed to find complete declaration of namespace %s' %
+              obj.name)
+
+
+def CheckForNonStandardConstructs(filename, clean_lines, linenum,
+                                  nesting_state, error):
+  r"""Logs an error if we see certain non-ANSI constructs ignored by gcc-2.
+
+  Complain about several constructs which gcc-2 accepts, but which are
+  not standard C++.  Warning about these in lint is one way to ease the
+  transition to new compilers.
+  - put storage class first (e.g. "static const" instead of "const static").
+  - "%lld" instead of %qd" in printf-type functions.
+  - "%1$d" is non-standard in printf-type functions.
+  - "\%" is an undefined character escape sequence.
+  - text after #endif is not allowed.
+  - invalid inner-style forward declaration.
+  - >? and ?= and )\?=?\s*(\w+|[+-]?\d+)(\.\d*)?',
+            line):
+    error(filename, linenum, 'build/deprecated', 3,
+          '>? and ))?'
+    # r'\s*const\s*' + type_name + '\s*&\s*\w+\s*;'
+    error(filename, linenum, 'runtime/member_string_references', 2,
+          'const string& members are dangerous. It is much better to use '
+          'alternatives, such as pointers or simple constants.')
+
+  # Everything else in this function operates on class declarations.
+  # Return early if the top of the nesting stack is not a class, or if
+  # the class head is not completed yet.
+  classinfo = nesting_state.InnermostClass()
+  if not classinfo or not classinfo.seen_open_brace:
+    return
+
+  # The class may have been declared with namespace or classname qualifiers.
+  # The constructor and destructor will not have those qualifiers.
+  base_classname = classinfo.name.split('::')[-1]
+
+  # Look for single-argument constructors that aren't marked explicit.
+  # Technically a valid construct, but against style.
+  explicit_constructor_match = Match(
+      r'\s+(?:(?:inline|constexpr)\s+)*(explicit\s+)?'
+      r'(?:(?:inline|constexpr)\s+)*%s\s*'
+      r'\(((?:[^()]|\([^()]*\))*)\)'
+      % re.escape(base_classname),
+      line)
+
+  if explicit_constructor_match:
+    is_marked_explicit = explicit_constructor_match.group(1)
+
+    if not explicit_constructor_match.group(2):
+      constructor_args = []
+    else:
+      constructor_args = explicit_constructor_match.group(2).split(',')
+
+    # collapse arguments so that commas in template parameter lists and function
+    # argument parameter lists don't split arguments in two
+    i = 0
+    while i < len(constructor_args):
+      constructor_arg = constructor_args[i]
+      while (constructor_arg.count('<') > constructor_arg.count('>') or
+             constructor_arg.count('(') > constructor_arg.count(')')):
+        constructor_arg += ',' + constructor_args[i + 1]
+        del constructor_args[i + 1]
+      constructor_args[i] = constructor_arg
+      i += 1
+
+    defaulted_args = [arg for arg in constructor_args if '=' in arg]
+    noarg_constructor = (not constructor_args or  # empty arg list
+                         # 'void' arg specifier
+                         (len(constructor_args) == 1 and
+                          constructor_args[0].strip() == 'void'))
+    onearg_constructor = ((len(constructor_args) == 1 and  # exactly one arg
+                           not noarg_constructor) or
+                          # all but at most one arg defaulted
+                          (len(constructor_args) >= 1 and
+                           not noarg_constructor and
+                           len(defaulted_args) >= len(constructor_args) - 1))
+    initializer_list_constructor = bool(
+        onearg_constructor and
+        Search(r'\bstd\s*::\s*initializer_list\b', constructor_args[0]))
+    copy_constructor = bool(
+        onearg_constructor and
+        Match(r'(const\s+)?%s(\s*<[^>]*>)?(\s+const)?\s*(?:<\w+>\s*)?&'
+              % re.escape(base_classname), constructor_args[0].strip()))
+
+    if (not is_marked_explicit and
+        onearg_constructor and
+        not initializer_list_constructor and
+        not copy_constructor):
+      if defaulted_args:
+        error(filename, linenum, 'runtime/explicit', 5,
+              'Constructors callable with one argument '
+              'should be marked explicit.')
+      else:
+        error(filename, linenum, 'runtime/explicit', 5,
+              'Single-parameter constructors should be marked explicit.')
+    elif is_marked_explicit and not onearg_constructor:
+      if noarg_constructor:
+        error(filename, linenum, 'runtime/explicit', 5,
+              'Zero-parameter constructors should not be marked explicit.')
+
+
+def CheckSpacingForFunctionCall(filename, clean_lines, linenum, error):
+  """Checks for the correctness of various spacing around function calls.
+
+  Args:
+    filename: The name of the current file.
+    clean_lines: A CleansedLines instance containing the file.
+    linenum: The number of the line to check.
+    error: The function to call with any errors found.
+  """
+  line = clean_lines.elided[linenum]
+
+  # Since function calls often occur inside if/for/while/switch
+  # expressions - which have their own, more liberal conventions - we
+  # first see if we should be looking inside such an expression for a
+  # function call, to which we can apply more strict standards.
+  fncall = line    # if there's no control flow construct, look at whole line
+  for pattern in (r'\bif\s*\((.*)\)\s*{',
+                  r'\bfor\s*\((.*)\)\s*{',
+                  r'\bwhile\s*\((.*)\)\s*[{;]',
+                  r'\bswitch\s*\((.*)\)\s*{'):
+    match = Search(pattern, line)
+    if match:
+      fncall = match.group(1)    # look inside the parens for function calls
+      break
+
+  # Except in if/for/while/switch, there should never be space
+  # immediately inside parens (eg "f( 3, 4 )").  We make an exception
+  # for nested parens ( (a+b) + c ).  Likewise, there should never be
+  # a space before a ( when it's a function argument.  I assume it's a
+  # function argument when the char before the whitespace is legal in
+  # a function name (alnum + _) and we're not starting a macro. Also ignore
+  # pointers and references to arrays and functions coz they're too tricky:
+  # we use a very simple way to recognize these:
+  # " (something)(maybe-something)" or
+  # " (something)(maybe-something," or
+  # " (something)[something]"
+  # Note that we assume the contents of [] to be short enough that
+  # they'll never need to wrap.
+  if (  # Ignore control structures.
+      not Search(r'\b(if|for|while|switch|return|new|delete|catch|sizeof)\b',
+                 fncall) and
+      # Ignore pointers/references to functions.
+      not Search(r' \([^)]+\)\([^)]*(\)|,$)', fncall) and
+      # Ignore pointers/references to arrays.
+      not Search(r' \([^)]+\)\[[^\]]+\]', fncall)):
+    if Search(r'\w\s*\(\s(?!\s*\\$)', fncall):      # a ( used for a fn call
+      error(filename, linenum, 'whitespace/parens', 4,
+            'Extra space after ( in function call')
+    elif Search(r'\(\s+(?!(\s*\\)|\()', fncall):
+      error(filename, linenum, 'whitespace/parens', 2,
+            'Extra space after (')
+    if (Search(r'\w\s+\(', fncall) and
+        not Search(r'_{0,2}asm_{0,2}\s+_{0,2}volatile_{0,2}\s+\(', fncall) and
+        not Search(r'#\s*define|typedef|using\s+\w+\s*=', fncall) and
+        not Search(r'\w\s+\((\w+::)*\*\w+\)\(', fncall) and
+        not Search(r'\bcase\s+\(', fncall)):
+      # TODO(unknown): Space after an operator function seem to be a common
+      # error, silence those for now by restricting them to highest verbosity.
+      if Search(r'\boperator_*\b', line):
+        error(filename, linenum, 'whitespace/parens', 0,
+              'Extra space before ( in function call')
+      else:
+        error(filename, linenum, 'whitespace/parens', 4,
+              'Extra space before ( in function call')
+    # If the ) is followed only by a newline or a { + newline, assume it's
+    # part of a control statement (if/while/etc), and don't complain
+    if Search(r'[^)]\s+\)\s*[^{\s]', fncall):
+      # If the closing parenthesis is preceded by only whitespaces,
+      # try to give a more descriptive error message.
+      if Search(r'^\s+\)', fncall):
+        error(filename, linenum, 'whitespace/parens', 2,
+              'Closing ) should be moved to the previous line')
+      else:
+        error(filename, linenum, 'whitespace/parens', 2,
+              'Extra space before )')
+
+
+def IsBlankLine(line):
+  """Returns true if the given line is blank.
+
+  We consider a line to be blank if the line is empty or consists of
+  only white spaces.
+
+  Args:
+    line: A line of a string.
+
+  Returns:
+    True, if the given line is blank.
+  """
+  return not line or line.isspace()
+
+
+def CheckForNamespaceIndentation(filename, nesting_state, clean_lines, line,
+                                 error):
+  is_namespace_indent_item = (
+      len(nesting_state.stack) > 1 and
+      nesting_state.stack[-1].check_namespace_indentation and
+      isinstance(nesting_state.previous_stack_top, _NamespaceInfo) and
+      nesting_state.previous_stack_top == nesting_state.stack[-2])
+
+  if ShouldCheckNamespaceIndentation(nesting_state, is_namespace_indent_item,
+                                     clean_lines.elided, line):
+    CheckItemIndentationInNamespace(filename, clean_lines.elided,
+                                    line, error)
+
+
+def CheckForFunctionLengths(filename, clean_lines, linenum,
+                            function_state, error):
+  """Reports for long function bodies.
+
+  For an overview why this is done, see:
+  https://google-styleguide.googlecode.com/svn/trunk/cppguide.xml#Write_Short_Functions
+
+  Uses a simplistic algorithm assuming other style guidelines
+  (especially spacing) are followed.
+  Only checks unindented functions, so class members are unchecked.
+  Trivial bodies are unchecked, so constructors with huge initializer lists
+  may be missed.
+  Blank/comment lines are not counted so as to avoid encouraging the removal
+  of vertical space and comments just to get through a lint check.
+  NOLINT *on the last line of a function* disables this check.
+
+  Args:
+    filename: The name of the current file.
+    clean_lines: A CleansedLines instance containing the file.
+    linenum: The number of the line to check.
+    function_state: Current function name and lines in body so far.
+    error: The function to call with any errors found.
+  """
+  lines = clean_lines.lines
+  line = lines[linenum]
+  joined_line = ''
+
+  starting_func = False
+  regexp = r'(\w(\w|::|\*|\&|\s)*)\('  # decls * & space::name( ...
+  match_result = Match(regexp, line)
+  if match_result:
+    # If the name is all caps and underscores, figure it's a macro and
+    # ignore it, unless it's TEST or TEST_F.
+    function_name = match_result.group(1).split()[-1]
+    if function_name == 'TEST' or function_name == 'TEST_F' or (
+        not Match(r'[A-Z_]+$', function_name)):
+      starting_func = True
+
+  if starting_func:
+    body_found = False
+    for start_linenum in xrange(linenum, clean_lines.NumLines()):
+      start_line = lines[start_linenum]
+      joined_line += ' ' + start_line.lstrip()
+      if Search(r'(;|})', start_line):  # Declarations and trivial functions
+        body_found = True
+        break                              # ... ignore
+      elif Search(r'{', start_line):
+        body_found = True
+        function = Search(r'((\w|:)*)\(', line).group(1)
+        if Match(r'TEST', function):    # Handle TEST... macros
+          parameter_regexp = Search(r'(\(.*\))', joined_line)
+          if parameter_regexp:             # Ignore bad syntax
+            function += parameter_regexp.group(1)
+        else:
+          function += '()'
+        function_state.Begin(function)
+        break
+    if not body_found:
+      # No body for the function (or evidence of a non-function) was found.
+      error(filename, linenum, 'readability/fn_size', 5,
+            'Lint failed to find start of function body.')
+  elif Match(r'^\}\s*$', line):  # function end
+    function_state.Check(error, filename, linenum)
+    function_state.End()
+  elif not Match(r'^\s*$', line):
+    function_state.Count()  # Count non-blank/non-comment lines.
+
+
+_RE_PATTERN_TODO = re.compile(r'^//(\s*)TODO(\(.+?\))?:?(\s|$)?')
+
+
+def CheckComment(line, filename, linenum, next_line_start, error):
+  """Checks for common mistakes in comments.
+
+  Args:
+    line: The line in question.
+    filename: The name of the current file.
+    linenum: The number of the line to check.
+    next_line_start: The first non-whitespace column of the next line.
+    error: The function to call with any errors found.
+  """
+  commentpos = line.find('//')
+  if commentpos != -1:
+    # Check if the // may be in quotes.  If so, ignore it
+    if re.sub(r'\\.', '', line[0:commentpos]).count('"') % 2 == 0:
+      # Allow one space for new scopes, two spaces otherwise:
+      if (not (Match(r'^.*{ *//', line) and next_line_start == commentpos) and
+          ((commentpos >= 1 and
+            line[commentpos-1] not in string.whitespace) or
+           (commentpos >= 2 and
+            line[commentpos-2] not in string.whitespace))):
+        error(filename, linenum, 'whitespace/comments', 2,
+              'At least two spaces is best between code and comments')
+
+      # Checks for common mistakes in TODO comments.
+      comment = line[commentpos:]
+      match = _RE_PATTERN_TODO.match(comment)
+      if match:
+        # One whitespace is correct; zero whitespace is handled elsewhere.
+        leading_whitespace = match.group(1)
+        if len(leading_whitespace) > 1:
+          error(filename, linenum, 'whitespace/todo', 2,
+                'Too many spaces before TODO')
+
+        username = match.group(2)
+        if not username:
+          error(filename, linenum, 'readability/todo', 2,
+                'Missing username in TODO; it should look like '
+                '"// TODO(my_username): Stuff."')
+
+        middle_whitespace = match.group(3)
+        # Comparisons made explicit for correctness -- pylint: disable=g-explicit-bool-comparison
+        if middle_whitespace != ' ' and middle_whitespace != '':
+          error(filename, linenum, 'whitespace/todo', 2,
+                'TODO(my_username) should be followed by a space')
+
+      # If the comment contains an alphanumeric character, there
+      # should be a space somewhere between it and the // unless
+      # it's a /// or //! Doxygen comment.
+      if (Match(r'//[^ ]*\w', comment) and
+          not Match(r'(///|//\!)(\s+|$)', comment)):
+        error(filename, linenum, 'whitespace/comments', 4,
+              'Should have a space between // and comment')
+
+
+def CheckSpacing(filename, clean_lines, linenum, nesting_state, error):
+  """Checks for the correctness of various spacing issues in the code.
+
+  Things we check for: spaces around operators, spaces after
+  if/for/while/switch, no spaces around parens in function calls, two
+  spaces between code and comment, don't start a block with a blank
+  line, don't end a function with a blank line, don't add a blank line
+  after public/protected/private, don't have too many blank lines in a row.
+
+  Args:
+    filename: The name of the current file.
+    clean_lines: A CleansedLines instance containing the file.
+    linenum: The number of the line to check.
+    nesting_state: A NestingState instance which maintains information about
+                   the current stack of nested blocks being parsed.
+    error: The function to call with any errors found.
+  """
+
+  # Don't use "elided" lines here, otherwise we can't check commented lines.
+  # Don't want to use "raw" either, because we don't want to check inside C++11
+  # raw strings,
+  raw = clean_lines.lines_without_raw_strings
+  line = raw[linenum]
+
+  # Before nixing comments, check if the line is blank for no good
+  # reason.  This includes the first line after a block is opened, and
+  # blank lines at the end of a function (ie, right before a line like '}'
+  #
+  # Skip all the blank line checks if we are immediately inside a
+  # namespace body.  In other words, don't issue blank line warnings
+  # for this block:
+  #   namespace {
+  #
+  #   }
+  #
+  # A warning about missing end of namespace comments will be issued instead.
+  #
+  # Also skip blank line checks for 'extern "C"' blocks, which are formatted
+  # like namespaces.
+  if (IsBlankLine(line) and
+      not nesting_state.InNamespaceBody() and
+      not nesting_state.InExternC()):
+    elided = clean_lines.elided
+    prev_line = elided[linenum - 1]
+    prevbrace = prev_line.rfind('{')
+    # TODO(unknown): Don't complain if line before blank line, and line after,
+    #                both start with alnums and are indented the same amount.
+    #                This ignores whitespace at the start of a namespace block
+    #                because those are not usually indented.
+    if prevbrace != -1 and prev_line[prevbrace:].find('}') == -1:
+      # OK, we have a blank line at the start of a code block.  Before we
+      # complain, we check if it is an exception to the rule: The previous
+      # non-empty line has the parameters of a function header that are indented
+      # 4 spaces (because they did not fit in a 80 column line when placed on
+      # the same line as the function name).  We also check for the case where
+      # the previous line is indented 6 spaces, which may happen when the
+      # initializers of a constructor do not fit into a 80 column line.
+      exception = False
+      if Match(r' {6}\w', prev_line):  # Initializer list?
+        # We are looking for the opening column of initializer list, which
+        # should be indented 4 spaces to cause 6 space indentation afterwards.
+        search_position = linenum-2
+        while (search_position >= 0
+               and Match(r' {6}\w', elided[search_position])):
+          search_position -= 1
+        exception = (search_position >= 0
+                     and elided[search_position][:5] == '    :')
+      else:
+        # Search for the function arguments or an initializer list.  We use a
+        # simple heuristic here: If the line is indented 4 spaces; and we have a
+        # closing paren, without the opening paren, followed by an opening brace
+        # or colon (for initializer lists) we assume that it is the last line of
+        # a function header.  If we have a colon indented 4 spaces, it is an
+        # initializer list.
+        exception = (Match(r' {4}\w[^\(]*\)\s*(const\s*)?(\{\s*$|:)',
+                           prev_line)
+                     or Match(r' {4}:', prev_line))
+
+      if not exception:
+        error(filename, linenum, 'whitespace/blank_line', 2,
+              'Redundant blank line at the start of a code block '
+              'should be deleted.')
+    # Ignore blank lines at the end of a block in a long if-else
+    # chain, like this:
+    #   if (condition1) {
+    #     // Something followed by a blank line
+    #
+    #   } else if (condition2) {
+    #     // Something else
+    #   }
+    if linenum + 1 < clean_lines.NumLines():
+      next_line = raw[linenum + 1]
+      if (next_line
+          and Match(r'\s*}', next_line)
+          and next_line.find('} else ') == -1):
+        error(filename, linenum, 'whitespace/blank_line', 3,
+              'Redundant blank line at the end of a code block '
+              'should be deleted.')
+
+    matched = Match(r'\s*(public|protected|private):', prev_line)
+    if matched:
+      error(filename, linenum, 'whitespace/blank_line', 3,
+            'Do not leave a blank line after "%s:"' % matched.group(1))
+
+  # Next, check comments
+  next_line_start = 0
+  if linenum + 1 < clean_lines.NumLines():
+    next_line = raw[linenum + 1]
+    next_line_start = len(next_line) - len(next_line.lstrip())
+  CheckComment(line, filename, linenum, next_line_start, error)
+
+  # get rid of comments and strings
+  line = clean_lines.elided[linenum]
+
+  # You shouldn't have spaces before your brackets, except maybe after
+  # 'delete []' or 'return []() {};'
+  if Search(r'\w\s+\[', line) and not Search(r'(?:delete|return)\s+\[', line):
+    error(filename, linenum, 'whitespace/braces', 5,
+          'Extra space before [')
+
+  # In range-based for, we wanted spaces before and after the colon, but
+  # not around "::" tokens that might appear.
+  if (Search(r'for *\(.*[^:]:[^: ]', line) or
+      Search(r'for *\(.*[^: ]:[^:]', line)):
+    error(filename, linenum, 'whitespace/forcolon', 2,
+          'Missing space around colon in range-based for loop')
+
+
+def CheckOperatorSpacing(filename, clean_lines, linenum, error):
+  """Checks for horizontal spacing around operators.
+
+  Args:
+    filename: The name of the current file.
+    clean_lines: A CleansedLines instance containing the file.
+    linenum: The number of the line to check.
+    error: The function to call with any errors found.
+  """
+  line = clean_lines.elided[linenum]
+
+  # Don't try to do spacing checks for operator methods.  Do this by
+  # replacing the troublesome characters with something else,
+  # preserving column position for all other characters.
+  #
+  # The replacement is done repeatedly to avoid false positives from
+  # operators that call operators.
+  while True:
+    match = Match(r'^(.*\boperator\b)(\S+)(\s*\(.*)$', line)
+    if match:
+      line = match.group(1) + ('_' * len(match.group(2))) + match.group(3)
+    else:
+      break
+
+  # We allow no-spaces around = within an if: "if ( (a=Foo()) == 0 )".
+  # Otherwise not.  Note we only check for non-spaces on *both* sides;
+  # sometimes people put non-spaces on one side when aligning ='s among
+  # many lines (not that this is behavior that I approve of...)
+  if ((Search(r'[\w.]=', line) or
+       Search(r'=[\w.]', line))
+      and not Search(r'\b(if|while|for) ', line)
+      # Operators taken from [lex.operators] in C++11 standard.
+      and not Search(r'(>=|<=|==|!=|&=|\^=|\|=|\+=|\*=|\/=|\%=)', line)
+      and not Search(r'operator=', line)):
+    error(filename, linenum, 'whitespace/operators', 4,
+          'Missing spaces around =')
+
+  # It's ok not to have spaces around binary operators like + - * /, but if
+  # there's too little whitespace, we get concerned.  It's hard to tell,
+  # though, so we punt on this one for now.  TODO.
+
+  # You should always have whitespace around binary operators.
+  #
+  # Check <= and >= first to avoid false positives with < and >, then
+  # check non-include lines for spacing around < and >.
+  #
+  # If the operator is followed by a comma, assume it's be used in a
+  # macro context and don't do any checks.  This avoids false
+  # positives.
+  #
+  # Note that && is not included here.  This is because there are too
+  # many false positives due to RValue references.
+  match = Search(r'[^<>=!\s](==|!=|<=|>=|\|\|)[^<>=!\s,;\)]', line)
+  if match:
+    error(filename, linenum, 'whitespace/operators', 3,
+          'Missing spaces around %s' % match.group(1))
+  elif not Match(r'#.*include', line):
+    # Look for < that is not surrounded by spaces.  This is only
+    # triggered if both sides are missing spaces, even though
+    # technically should should flag if at least one side is missing a
+    # space.  This is done to avoid some false positives with shifts.
+    match = Match(r'^(.*[^\s<])<[^\s=<,]', line)
+    if match:
+      (_, _, end_pos) = CloseExpression(
+          clean_lines, linenum, len(match.group(1)))
+      if end_pos <= -1:
+        error(filename, linenum, 'whitespace/operators', 3,
+              'Missing spaces around <')
+
+    # Look for > that is not surrounded by spaces.  Similar to the
+    # above, we only trigger if both sides are missing spaces to avoid
+    # false positives with shifts.
+    match = Match(r'^(.*[^-\s>])>[^\s=>,]', line)
+    if match:
+      (_, _, start_pos) = ReverseCloseExpression(
+          clean_lines, linenum, len(match.group(1)))
+      if start_pos <= -1:
+        error(filename, linenum, 'whitespace/operators', 3,
+              'Missing spaces around >')
+
+  # We allow no-spaces around << when used like this: 10<<20, but
+  # not otherwise (particularly, not when used as streams)
+  #
+  # We also allow operators following an opening parenthesis, since
+  # those tend to be macros that deal with operators.
+  match = Search(r'(operator|[^\s(<])(?:L|UL|LL|ULL|l|ul|ll|ull)?<<([^\s,=<])', line)
+  if (match and not (match.group(1).isdigit() and match.group(2).isdigit()) and
+      not (match.group(1) == 'operator' and match.group(2) == ';')):
+    error(filename, linenum, 'whitespace/operators', 3,
+          'Missing spaces around <<')
+
+  # We allow no-spaces around >> for almost anything.  This is because
+  # C++11 allows ">>" to close nested templates, which accounts for
+  # most cases when ">>" is not followed by a space.
+  #
+  # We still warn on ">>" followed by alpha character, because that is
+  # likely due to ">>" being used for right shifts, e.g.:
+  #   value >> alpha
+  #
+  # When ">>" is used to close templates, the alphanumeric letter that
+  # follows would be part of an identifier, and there should still be
+  # a space separating the template type and the identifier.
+  #   type> alpha
+  match = Search(r'>>[a-zA-Z_]', line)
+  if match:
+    error(filename, linenum, 'whitespace/operators', 3,
+          'Missing spaces around >>')
+
+  # There shouldn't be space around unary operators
+  match = Search(r'(!\s|~\s|[\s]--[\s;]|[\s]\+\+[\s;])', line)
+  if match:
+    error(filename, linenum, 'whitespace/operators', 4,
+          'Extra space for operator %s' % match.group(1))
+
+
+def CheckParenthesisSpacing(filename, clean_lines, linenum, error):
+  """Checks for horizontal spacing around parentheses.
+
+  Args:
+    filename: The name of the current file.
+    clean_lines: A CleansedLines instance containing the file.
+    linenum: The number of the line to check.
+    error: The function to call with any errors found.
+  """
+  line = clean_lines.elided[linenum]
+
+  # No spaces after an if, while, switch, or for
+  match = Search(r' (if\(|for\(|while\(|switch\()', line)
+  if match:
+    error(filename, linenum, 'whitespace/parens', 5,
+          'Missing space before ( in %s' % match.group(1))
+
+  # For if/for/while/switch, the left and right parens should be
+  # consistent about how many spaces are inside the parens, and
+  # there should either be zero or one spaces inside the parens.
+  # We don't want: "if ( foo)" or "if ( foo   )".
+  # Exception: "for ( ; foo; bar)" and "for (foo; bar; )" are allowed.
+  match = Search(r'\b(if|for|while|switch)\s*'
+                 r'\(([ ]*)(.).*[^ ]+([ ]*)\)\s*{\s*$',
+                 line)
+  if match:
+    if len(match.group(2)) != len(match.group(4)):
+      if not (match.group(3) == ';' and
+              len(match.group(2)) == 1 + len(match.group(4)) or
+              not match.group(2) and Search(r'\bfor\s*\(.*; \)', line)):
+        error(filename, linenum, 'whitespace/parens', 5,
+              'Mismatching spaces inside () in %s' % match.group(1))
+    if len(match.group(2)) not in [0, 1]:
+      error(filename, linenum, 'whitespace/parens', 5,
+            'Should have zero or one spaces inside ( and ) in %s' %
+            match.group(1))
+
+
+def CheckCommaSpacing(filename, clean_lines, linenum, error):
+  """Checks for horizontal spacing near commas and semicolons.
+
+  Args:
+    filename: The name of the current file.
+    clean_lines: A CleansedLines instance containing the file.
+    linenum: The number of the line to check.
+    error: The function to call with any errors found.
+  """
+  raw = clean_lines.lines_without_raw_strings
+  line = clean_lines.elided[linenum]
+
+  # You should always have a space after a comma (either as fn arg or operator)
+  #
+  # This does not apply when the non-space character following the
+  # comma is another comma, since the only time when that happens is
+  # for empty macro arguments.
+  #
+  # We run this check in two passes: first pass on elided lines to
+  # verify that lines contain missing whitespaces, second pass on raw
+  # lines to confirm that those missing whitespaces are not due to
+  # elided comments.
+  if (Search(r',[^,\s]', ReplaceAll(r'\boperator\s*,\s*\(', 'F(', line)) and
+      Search(r',[^,\s]', raw[linenum])):
+    error(filename, linenum, 'whitespace/comma', 3,
+          'Missing space after ,')
+
+  # You should always have a space after a semicolon
+  # except for few corner cases
+  # TODO(unknown): clarify if 'if (1) { return 1;}' is requires one more
+  # space after ;
+  if Search(r';[^\s};\\)/]', line):
+    error(filename, linenum, 'whitespace/semicolon', 3,
+          'Missing space after ;')
+
+
+def _IsType(clean_lines, nesting_state, expr):
+  """Check if expression looks like a type name, returns true if so.
+
+  Args:
+    clean_lines: A CleansedLines instance containing the file.
+    nesting_state: A NestingState instance which maintains information about
+                   the current stack of nested blocks being parsed.
+    expr: The expression to check.
+  Returns:
+    True, if token looks like a type.
+  """
+  # Keep only the last token in the expression
+  last_word = Match(r'^.*(\b\S+)$', expr)
+  if last_word:
+    token = last_word.group(1)
+  else:
+    token = expr
+
+  # Match native types and stdint types
+  if _TYPES.match(token):
+    return True
+
+  # Try a bit harder to match templated types.  Walk up the nesting
+  # stack until we find something that resembles a typename
+  # declaration for what we are looking for.
+  typename_pattern = (r'\b(?:typename|class|struct)\s+' + re.escape(token) +
+                      r'\b')
+  block_index = len(nesting_state.stack) - 1
+  while block_index >= 0:
+    if isinstance(nesting_state.stack[block_index], _NamespaceInfo):
+      return False
+
+    # Found where the opening brace is.  We want to scan from this
+    # line up to the beginning of the function, minus a few lines.
+    #   template 
+    #   class C
+    #     : public ... {  // start scanning here
+    last_line = nesting_state.stack[block_index].starting_linenum
+
+    next_block_start = 0
+    if block_index > 0:
+      next_block_start = nesting_state.stack[block_index - 1].starting_linenum
+    first_line = last_line
+    while first_line >= next_block_start:
+      if clean_lines.elided[first_line].find('template') >= 0:
+        break
+      first_line -= 1
+    if first_line < next_block_start:
+      # Didn't find any "template" keyword before reaching the next block,
+      # there are probably no template things to check for this block
+      block_index -= 1
+      continue
+
+    # Look for typename in the specified range
+    for i in xrange(first_line, last_line + 1, 1):
+      if Search(typename_pattern, clean_lines.elided[i]):
+        return True
+    block_index -= 1
+
+  return False
+
+
+def CheckBracesSpacing(filename, clean_lines, linenum, nesting_state, error):
+  """Checks for horizontal spacing near commas.
+
+  Args:
+    filename: The name of the current file.
+    clean_lines: A CleansedLines instance containing the file.
+    linenum: The number of the line to check.
+    nesting_state: A NestingState instance which maintains information about
+                   the current stack of nested blocks being parsed.
+    error: The function to call with any errors found.
+  """
+  line = clean_lines.elided[linenum]
+
+  # Except after an opening paren, or after another opening brace (in case of
+  # an initializer list, for instance), you should have spaces before your
+  # braces when they are delimiting blocks, classes, namespaces etc.
+  # And since you should never have braces at the beginning of a line,
+  # this is an easy test.  Except that braces used for initialization don't
+  # follow the same rule; we often don't want spaces before those.
+  match = Match(r'^(.*[^ ({>]){', line)
+
+  if match:
+    # Try a bit harder to check for brace initialization.  This
+    # happens in one of the following forms:
+    #   Constructor() : initializer_list_{} { ... }
+    #   Constructor{}.MemberFunction()
+    #   Type variable{};
+    #   FunctionCall(type{}, ...);
+    #   LastArgument(..., type{});
+    #   LOG(INFO) << type{} << " ...";
+    #   map_of_type[{...}] = ...;
+    #   ternary = expr ? new type{} : nullptr;
+    #   OuterTemplate{}>
+    #
+    # We check for the character following the closing brace, and
+    # silence the warning if it's one of those listed above, i.e.
+    # "{.;,)<>]:".
+    #
+    # To account for nested initializer list, we allow any number of
+    # closing braces up to "{;,)<".  We can't simply silence the
+    # warning on first sight of closing brace, because that would
+    # cause false negatives for things that are not initializer lists.
+    #   Silence this:         But not this:
+    #     Outer{                if (...) {
+    #       Inner{...}            if (...){  // Missing space before {
+    #     };                    }
+    #
+    # There is a false negative with this approach if people inserted
+    # spurious semicolons, e.g. "if (cond){};", but we will catch the
+    # spurious semicolon with a separate check.
+    leading_text = match.group(1)
+    (endline, endlinenum, endpos) = CloseExpression(
+        clean_lines, linenum, len(match.group(1)))
+    trailing_text = ''
+    if endpos > -1:
+      trailing_text = endline[endpos:]
+    for offset in xrange(endlinenum + 1,
+                         min(endlinenum + 3, clean_lines.NumLines() - 1)):
+      trailing_text += clean_lines.elided[offset]
+    # We also suppress warnings for `uint64_t{expression}` etc., as the style
+    # guide recommends brace initialization for integral types to avoid
+    # overflow/truncation.
+    if (not Match(r'^[\s}]*[{.;,)<>\]:]', trailing_text)
+        and not _IsType(clean_lines, nesting_state, leading_text)):
+      error(filename, linenum, 'whitespace/braces', 5,
+            'Missing space before {')
+
+  # Make sure '} else {' has spaces.
+  if Search(r'}else', line):
+    error(filename, linenum, 'whitespace/braces', 5,
+          'Missing space before else')
+
+  # You shouldn't have a space before a semicolon at the end of the line.
+  # There's a special case for "for" since the style guide allows space before
+  # the semicolon there.
+  if Search(r':\s*;\s*$', line):
+    error(filename, linenum, 'whitespace/semicolon', 5,
+          'Semicolon defining empty statement. Use {} instead.')
+  elif Search(r'^\s*;\s*$', line):
+    error(filename, linenum, 'whitespace/semicolon', 5,
+          'Line contains only semicolon. If this should be an empty statement, '
+          'use {} instead.')
+  elif (Search(r'\s+;\s*$', line) and
+        not Search(r'\bfor\b', line)):
+    error(filename, linenum, 'whitespace/semicolon', 5,
+          'Extra space before last semicolon. If this should be an empty '
+          'statement, use {} instead.')
+
+
+def IsDecltype(clean_lines, linenum, column):
+  """Check if the token ending on (linenum, column) is decltype().
+
+  Args:
+    clean_lines: A CleansedLines instance containing the file.
+    linenum: the number of the line to check.
+    column: end column of the token to check.
+  Returns:
+    True if this token is decltype() expression, False otherwise.
+  """
+  (text, _, start_col) = ReverseCloseExpression(clean_lines, linenum, column)
+  if start_col < 0:
+    return False
+  if Search(r'\bdecltype\s*$', text[0:start_col]):
+    return True
+  return False
+
+
+def CheckSectionSpacing(filename, clean_lines, class_info, linenum, error):
+  """Checks for additional blank line issues related to sections.
+
+  Currently the only thing checked here is blank line before protected/private.
+
+  Args:
+    filename: The name of the current file.
+    clean_lines: A CleansedLines instance containing the file.
+    class_info: A _ClassInfo objects.
+    linenum: The number of the line to check.
+    error: The function to call with any errors found.
+  """
+  # Skip checks if the class is small, where small means 25 lines or less.
+  # 25 lines seems like a good cutoff since that's the usual height of
+  # terminals, and any class that can't fit in one screen can't really
+  # be considered "small".
+  #
+  # Also skip checks if we are on the first line.  This accounts for
+  # classes that look like
+  #   class Foo { public: ... };
+  #
+  # If we didn't find the end of the class, last_line would be zero,
+  # and the check will be skipped by the first condition.
+  if (class_info.last_line - class_info.starting_linenum <= 24 or
+      linenum <= class_info.starting_linenum):
+    return
+
+  matched = Match(r'\s*(public|protected|private):', clean_lines.lines[linenum])
+  if matched:
+    # Issue warning if the line before public/protected/private was
+    # not a blank line, but don't do this if the previous line contains
+    # "class" or "struct".  This can happen two ways:
+    #  - We are at the beginning of the class.
+    #  - We are forward-declaring an inner class that is semantically
+    #    private, but needed to be public for implementation reasons.
+    # Also ignores cases where the previous line ends with a backslash as can be
+    # common when defining classes in C macros.
+    prev_line = clean_lines.lines[linenum - 1]
+    if (not IsBlankLine(prev_line) and
+        not Search(r'\b(class|struct)\b', prev_line) and
+        not Search(r'\\$', prev_line)):
+      # Try a bit harder to find the beginning of the class.  This is to
+      # account for multi-line base-specifier lists, e.g.:
+      #   class Derived
+      #       : public Base {
+      end_class_head = class_info.starting_linenum
+      for i in range(class_info.starting_linenum, linenum):
+        if Search(r'\{\s*$', clean_lines.lines[i]):
+          end_class_head = i
+          break
+      if end_class_head < linenum - 1:
+        error(filename, linenum, 'whitespace/blank_line', 3,
+              '"%s:" should be preceded by a blank line' % matched.group(1))
+
+
+def GetPreviousNonBlankLine(clean_lines, linenum):
+  """Return the most recent non-blank line and its line number.
+
+  Args:
+    clean_lines: A CleansedLines instance containing the file contents.
+    linenum: The number of the line to check.
+
+  Returns:
+    A tuple with two elements.  The first element is the contents of the last
+    non-blank line before the current line, or the empty string if this is the
+    first non-blank line.  The second is the line number of that line, or -1
+    if this is the first non-blank line.
+  """
+
+  prevlinenum = linenum - 1
+  while prevlinenum >= 0:
+    prevline = clean_lines.elided[prevlinenum]
+    if not IsBlankLine(prevline):     # if not a blank line...
+      return (prevline, prevlinenum)
+    prevlinenum -= 1
+  return ('', -1)
+
+
+def CheckBraces(filename, clean_lines, linenum, error):
+  """Looks for misplaced braces (e.g. at the end of line).
+
+  Args:
+    filename: The name of the current file.
+    clean_lines: A CleansedLines instance containing the file.
+    linenum: The number of the line to check.
+    error: The function to call with any errors found.
+  """
+
+  line = clean_lines.elided[linenum]        # get rid of comments and strings
+
+  if Match(r'\s*{\s*$', line):
+    # We allow an open brace to start a line in the case where someone is using
+    # braces in a block to explicitly create a new scope, which is commonly used
+    # to control the lifetime of stack-allocated variables.  Braces are also
+    # used for brace initializers inside function calls.  We don't detect this
+    # perfectly: we just don't complain if the last non-whitespace character on
+    # the previous non-blank line is ',', ';', ':', '(', '{', or '}', or if the
+    # previous line starts a preprocessor block. We also allow a brace on the
+    # following line if it is part of an array initialization and would not fit
+    # within the 80 character limit of the preceding line.
+    prevline = GetPreviousNonBlankLine(clean_lines, linenum)[0]
+    if (not Search(r'[,;:}{(]\s*$', prevline) and
+        not Match(r'\s*#', prevline) and
+        not (GetLineWidth(prevline) > _line_length - 2 and '[]' in prevline)):
+      error(filename, linenum, 'whitespace/braces', 4,
+            '{ should almost always be at the end of the previous line')
+
+  # An else clause should be on the same line as the preceding closing brace.
+  if Match(r'\s*else\b\s*(?:if\b|\{|$)', line):
+    prevline = GetPreviousNonBlankLine(clean_lines, linenum)[0]
+    if Match(r'\s*}\s*$', prevline):
+      error(filename, linenum, 'whitespace/newline', 4,
+            'An else should appear on the same line as the preceding }')
+
+  # If braces come on one side of an else, they should be on both.
+  # However, we have to worry about "else if" that spans multiple lines!
+  if Search(r'else if\s*\(', line):       # could be multi-line if
+    brace_on_left = bool(Search(r'}\s*else if\s*\(', line))
+    # find the ( after the if
+    pos = line.find('else if')
+    pos = line.find('(', pos)
+    if pos > 0:
+      (endline, _, endpos) = CloseExpression(clean_lines, linenum, pos)
+      brace_on_right = endline[endpos:].find('{') != -1
+      if brace_on_left != brace_on_right:    # must be brace after if
+        error(filename, linenum, 'readability/braces', 5,
+              'If an else has a brace on one side, it should have it on both')
+  elif Search(r'}\s*else[^{]*$', line) or Match(r'[^}]*else\s*{', line):
+    error(filename, linenum, 'readability/braces', 5,
+          'If an else has a brace on one side, it should have it on both')
+
+  # Likewise, an else should never have the else clause on the same line
+  if Search(r'\belse [^\s{]', line) and not Search(r'\belse if\b', line):
+    error(filename, linenum, 'whitespace/newline', 4,
+          'Else clause should never be on same line as else (use 2 lines)')
+
+  # In the same way, a do/while should never be on one line
+  if Match(r'\s*do [^\s{]', line):
+    error(filename, linenum, 'whitespace/newline', 4,
+          'do/while clauses should not be on a single line')
+
+  # Check single-line if/else bodies. The style guide says 'curly braces are not
+  # required for single-line statements'. We additionally allow multi-line,
+  # single statements, but we reject anything with more than one semicolon in
+  # it. This means that the first semicolon after the if should be at the end of
+  # its line, and the line after that should have an indent level equal to or
+  # lower than the if. We also check for ambiguous if/else nesting without
+  # braces.
+  if_else_match = Search(r'\b(if\s*\(|else\b)', line)
+  if if_else_match and not Match(r'\s*#', line):
+    if_indent = GetIndentLevel(line)
+    endline, endlinenum, endpos = line, linenum, if_else_match.end()
+    if_match = Search(r'\bif\s*\(', line)
+    if if_match:
+      # This could be a multiline if condition, so find the end first.
+      pos = if_match.end() - 1
+      (endline, endlinenum, endpos) = CloseExpression(clean_lines, linenum, pos)
+    # Check for an opening brace, either directly after the if or on the next
+    # line. If found, this isn't a single-statement conditional.
+    if (not Match(r'\s*{', endline[endpos:])
+        and not (Match(r'\s*$', endline[endpos:])
+                 and endlinenum < (len(clean_lines.elided) - 1)
+                 and Match(r'\s*{', clean_lines.elided[endlinenum + 1]))):
+      while (endlinenum < len(clean_lines.elided)
+             and ';' not in clean_lines.elided[endlinenum][endpos:]):
+        endlinenum += 1
+        endpos = 0
+      if endlinenum < len(clean_lines.elided):
+        endline = clean_lines.elided[endlinenum]
+        # We allow a mix of whitespace and closing braces (e.g. for one-liner
+        # methods) and a single \ after the semicolon (for macros)
+        endpos = endline.find(';')
+        if not Match(r';[\s}]*(\\?)$', endline[endpos:]):
+          # Semicolon isn't the last character, there's something trailing.
+          # Output a warning if the semicolon is not contained inside
+          # a lambda expression.
+          if not Match(r'^[^{};]*\[[^\[\]]*\][^{}]*\{[^{}]*\}\s*\)*[;,]\s*$',
+                       endline):
+            error(filename, linenum, 'readability/braces', 4,
+                  'If/else bodies with multiple statements require braces')
+        elif endlinenum < len(clean_lines.elided) - 1:
+          # Make sure the next line is dedented
+          next_line = clean_lines.elided[endlinenum + 1]
+          next_indent = GetIndentLevel(next_line)
+          # With ambiguous nested if statements, this will error out on the
+          # if that *doesn't* match the else, regardless of whether it's the
+          # inner one or outer one.
+          if (if_match and Match(r'\s*else\b', next_line)
+              and next_indent != if_indent):
+            error(filename, linenum, 'readability/braces', 4,
+                  'Else clause should be indented at the same level as if. '
+                  'Ambiguous nested if/else chains require braces.')
+          elif next_indent > if_indent:
+            error(filename, linenum, 'readability/braces', 4,
+                  'If/else bodies with multiple statements require braces')
+
+
+def CheckTrailingSemicolon(filename, clean_lines, linenum, error):
+  """Looks for redundant trailing semicolon.
+
+  Args:
+    filename: The name of the current file.
+    clean_lines: A CleansedLines instance containing the file.
+    linenum: The number of the line to check.
+    error: The function to call with any errors found.
+  """
+
+  line = clean_lines.elided[linenum]
+
+  # Block bodies should not be followed by a semicolon.  Due to C++11
+  # brace initialization, there are more places where semicolons are
+  # required than not, so we use a whitelist approach to check these
+  # rather than a blacklist.  These are the places where "};" should
+  # be replaced by just "}":
+  # 1. Some flavor of block following closing parenthesis:
+  #    for (;;) {};
+  #    while (...) {};
+  #    switch (...) {};
+  #    Function(...) {};
+  #    if (...) {};
+  #    if (...) else if (...) {};
+  #
+  # 2. else block:
+  #    if (...) else {};
+  #
+  # 3. const member function:
+  #    Function(...) const {};
+  #
+  # 4. Block following some statement:
+  #    x = 42;
+  #    {};
+  #
+  # 5. Block at the beginning of a function:
+  #    Function(...) {
+  #      {};
+  #    }
+  #
+  #    Note that naively checking for the preceding "{" will also match
+  #    braces inside multi-dimensional arrays, but this is fine since
+  #    that expression will not contain semicolons.
+  #
+  # 6. Block following another block:
+  #    while (true) {}
+  #    {};
+  #
+  # 7. End of namespaces:
+  #    namespace {};
+  #
+  #    These semicolons seems far more common than other kinds of
+  #    redundant semicolons, possibly due to people converting classes
+  #    to namespaces.  For now we do not warn for this case.
+  #
+  # Try matching case 1 first.
+  match = Match(r'^(.*\)\s*)\{', line)
+  if match:
+    # Matched closing parenthesis (case 1).  Check the token before the
+    # matching opening parenthesis, and don't warn if it looks like a
+    # macro.  This avoids these false positives:
+    #  - macro that defines a base class
+    #  - multi-line macro that defines a base class
+    #  - macro that defines the whole class-head
+    #
+    # But we still issue warnings for macros that we know are safe to
+    # warn, specifically:
+    #  - TEST, TEST_F, TEST_P, MATCHER, MATCHER_P
+    #  - TYPED_TEST
+    #  - INTERFACE_DEF
+    #  - EXCLUSIVE_LOCKS_REQUIRED, SHARED_LOCKS_REQUIRED, LOCKS_EXCLUDED:
+    #
+    # We implement a whitelist of safe macros instead of a blacklist of
+    # unsafe macros, even though the latter appears less frequently in
+    # google code and would have been easier to implement.  This is because
+    # the downside for getting the whitelist wrong means some extra
+    # semicolons, while the downside for getting the blacklist wrong
+    # would result in compile errors.
+    #
+    # In addition to macros, we also don't want to warn on
+    #  - Compound literals
+    #  - Lambdas
+    #  - alignas specifier with anonymous structs
+    #  - decltype
+    closing_brace_pos = match.group(1).rfind(')')
+    opening_parenthesis = ReverseCloseExpression(
+        clean_lines, linenum, closing_brace_pos)
+    if opening_parenthesis[2] > -1:
+      line_prefix = opening_parenthesis[0][0:opening_parenthesis[2]]
+      macro = Search(r'\b([A-Z_][A-Z0-9_]*)\s*$', line_prefix)
+      func = Match(r'^(.*\])\s*$', line_prefix)
+      if ((macro and
+           macro.group(1) not in (
+               'TEST', 'TEST_F', 'MATCHER', 'MATCHER_P', 'TYPED_TEST',
+               'EXCLUSIVE_LOCKS_REQUIRED', 'SHARED_LOCKS_REQUIRED',
+               'LOCKS_EXCLUDED', 'INTERFACE_DEF')) or
+          (func and not Search(r'\boperator\s*\[\s*\]', func.group(1))) or
+          Search(r'\b(?:struct|union)\s+alignas\s*$', line_prefix) or
+          Search(r'\bdecltype$', line_prefix) or
+          Search(r'\s+=\s*$', line_prefix)):
+        match = None
+    if (match and
+        opening_parenthesis[1] > 1 and
+        Search(r'\]\s*$', clean_lines.elided[opening_parenthesis[1] - 1])):
+      # Multi-line lambda-expression
+      match = None
+
+  else:
+    # Try matching cases 2-3.
+    match = Match(r'^(.*(?:else|\)\s*const)\s*)\{', line)
+    if not match:
+      # Try matching cases 4-6.  These are always matched on separate lines.
+      #
+      # Note that we can't simply concatenate the previous line to the
+      # current line and do a single match, otherwise we may output
+      # duplicate warnings for the blank line case:
+      #   if (cond) {
+      #     // blank line
+      #   }
+      prevline = GetPreviousNonBlankLine(clean_lines, linenum)[0]
+      if prevline and Search(r'[;{}]\s*$', prevline):
+        match = Match(r'^(\s*)\{', line)
+
+  # Check matching closing brace
+  if match:
+    (endline, endlinenum, endpos) = CloseExpression(
+        clean_lines, linenum, len(match.group(1)))
+    if endpos > -1 and Match(r'^\s*;', endline[endpos:]):
+      # Current {} pair is eligible for semicolon check, and we have found
+      # the redundant semicolon, output warning here.
+      #
+      # Note: because we are scanning forward for opening braces, and
+      # outputting warnings for the matching closing brace, if there are
+      # nested blocks with trailing semicolons, we will get the error
+      # messages in reversed order.
+
+      # We need to check the line forward for NOLINT
+      raw_lines = clean_lines.raw_lines
+      ParseNolintSuppressions(filename, raw_lines[endlinenum-1], endlinenum-1,
+                              error)
+      ParseNolintSuppressions(filename, raw_lines[endlinenum], endlinenum,
+                              error)
+
+      error(filename, endlinenum, 'readability/braces', 4,
+            "You don't need a ; after a }")
+
+
+def CheckEmptyBlockBody(filename, clean_lines, linenum, error):
+  """Look for empty loop/conditional body with only a single semicolon.
+
+  Args:
+    filename: The name of the current file.
+    clean_lines: A CleansedLines instance containing the file.
+    linenum: The number of the line to check.
+    error: The function to call with any errors found.
+  """
+
+  # Search for loop keywords at the beginning of the line.  Because only
+  # whitespaces are allowed before the keywords, this will also ignore most
+  # do-while-loops, since those lines should start with closing brace.
+  #
+  # We also check "if" blocks here, since an empty conditional block
+  # is likely an error.
+  line = clean_lines.elided[linenum]
+  matched = Match(r'\s*(for|while|if)\s*\(', line)
+  if matched:
+    # Find the end of the conditional expression.
+    (end_line, end_linenum, end_pos) = CloseExpression(
+        clean_lines, linenum, line.find('('))
+
+    # Output warning if what follows the condition expression is a semicolon.
+    # No warning for all other cases, including whitespace or newline, since we
+    # have a separate check for semicolons preceded by whitespace.
+    if end_pos >= 0 and Match(r';', end_line[end_pos:]):
+      if matched.group(1) == 'if':
+        error(filename, end_linenum, 'whitespace/empty_conditional_body', 5,
+              'Empty conditional bodies should use {}')
+      else:
+        error(filename, end_linenum, 'whitespace/empty_loop_body', 5,
+              'Empty loop bodies should use {} or continue')
+
+    # Check for if statements that have completely empty bodies (no comments)
+    # and no else clauses.
+    if end_pos >= 0 and matched.group(1) == 'if':
+      # Find the position of the opening { for the if statement.
+      # Return without logging an error if it has no brackets.
+      opening_linenum = end_linenum
+      opening_line_fragment = end_line[end_pos:]
+      # Loop until EOF or find anything that's not whitespace or opening {.
+      while not Search(r'^\s*\{', opening_line_fragment):
+        if Search(r'^(?!\s*$)', opening_line_fragment):
+          # Conditional has no brackets.
+          return
+        opening_linenum += 1
+        if opening_linenum == len(clean_lines.elided):
+          # Couldn't find conditional's opening { or any code before EOF.
+          return
+        opening_line_fragment = clean_lines.elided[opening_linenum]
+      # Set opening_line (opening_line_fragment may not be entire opening line).
+      opening_line = clean_lines.elided[opening_linenum]
+
+      # Find the position of the closing }.
+      opening_pos = opening_line_fragment.find('{')
+      if opening_linenum == end_linenum:
+        # We need to make opening_pos relative to the start of the entire line.
+        opening_pos += end_pos
+      (closing_line, closing_linenum, closing_pos) = CloseExpression(
+          clean_lines, opening_linenum, opening_pos)
+      if closing_pos < 0:
+        return
+
+      # Now construct the body of the conditional. This consists of the portion
+      # of the opening line after the {, all lines until the closing line,
+      # and the portion of the closing line before the }.
+      if (clean_lines.raw_lines[opening_linenum] !=
+          CleanseComments(clean_lines.raw_lines[opening_linenum])):
+        # Opening line ends with a comment, so conditional isn't empty.
+        return
+      if closing_linenum > opening_linenum:
+        # Opening line after the {. Ignore comments here since we checked above.
+        body = list(opening_line[opening_pos+1:])
+        # All lines until closing line, excluding closing line, with comments.
+        body.extend(clean_lines.raw_lines[opening_linenum+1:closing_linenum])
+        # Closing line before the }. Won't (and can't) have comments.
+        body.append(clean_lines.elided[closing_linenum][:closing_pos-1])
+        body = '\n'.join(body)
+      else:
+        # If statement has brackets and fits on a single line.
+        body = opening_line[opening_pos+1:closing_pos-1]
+
+      # Check if the body is empty
+      if not _EMPTY_CONDITIONAL_BODY_PATTERN.search(body):
+        return
+      # The body is empty. Now make sure there's not an else clause.
+      current_linenum = closing_linenum
+      current_line_fragment = closing_line[closing_pos:]
+      # Loop until EOF or find anything that's not whitespace or else clause.
+      while Search(r'^\s*$|^(?=\s*else)', current_line_fragment):
+        if Search(r'^(?=\s*else)', current_line_fragment):
+          # Found an else clause, so don't log an error.
+          return
+        current_linenum += 1
+        if current_linenum == len(clean_lines.elided):
+          break
+        current_line_fragment = clean_lines.elided[current_linenum]
+
+      # The body is empty and there's no else clause until EOF or other code.
+      error(filename, end_linenum, 'whitespace/empty_if_body', 4,
+            ('If statement had no body and no else clause'))
+
+
+def FindCheckMacro(line):
+  """Find a replaceable CHECK-like macro.
+
+  Args:
+    line: line to search on.
+  Returns:
+    (macro name, start position), or (None, -1) if no replaceable
+    macro is found.
+  """
+  for macro in _CHECK_MACROS:
+    i = line.find(macro)
+    if i >= 0:
+      # Find opening parenthesis.  Do a regular expression match here
+      # to make sure that we are matching the expected CHECK macro, as
+      # opposed to some other macro that happens to contain the CHECK
+      # substring.
+      matched = Match(r'^(.*\b' + macro + r'\s*)\(', line)
+      if not matched:
+        continue
+      return (macro, len(matched.group(1)))
+  return (None, -1)
+
+
+def CheckCheck(filename, clean_lines, linenum, error):
+  """Checks the use of CHECK and EXPECT macros.
+
+  Args:
+    filename: The name of the current file.
+    clean_lines: A CleansedLines instance containing the file.
+    linenum: The number of the line to check.
+    error: The function to call with any errors found.
+  """
+
+  # Decide the set of replacement macros that should be suggested
+  lines = clean_lines.elided
+  (check_macro, start_pos) = FindCheckMacro(lines[linenum])
+  if not check_macro:
+    return
+
+  # Find end of the boolean expression by matching parentheses
+  (last_line, end_line, end_pos) = CloseExpression(
+      clean_lines, linenum, start_pos)
+  if end_pos < 0:
+    return
+
+  # If the check macro is followed by something other than a
+  # semicolon, assume users will log their own custom error messages
+  # and don't suggest any replacements.
+  if not Match(r'\s*;', last_line[end_pos:]):
+    return
+
+  if linenum == end_line:
+    expression = lines[linenum][start_pos + 1:end_pos - 1]
+  else:
+    expression = lines[linenum][start_pos + 1:]
+    for i in xrange(linenum + 1, end_line):
+      expression += lines[i]
+    expression += last_line[0:end_pos - 1]
+
+  # Parse expression so that we can take parentheses into account.
+  # This avoids false positives for inputs like "CHECK((a < 4) == b)",
+  # which is not replaceable by CHECK_LE.
+  lhs = ''
+  rhs = ''
+  operator = None
+  while expression:
+    matched = Match(r'^\s*(<<|<<=|>>|>>=|->\*|->|&&|\|\||'
+                    r'==|!=|>=|>|<=|<|\()(.*)$', expression)
+    if matched:
+      token = matched.group(1)
+      if token == '(':
+        # Parenthesized operand
+        expression = matched.group(2)
+        (end, _) = FindEndOfExpressionInLine(expression, 0, ['('])
+        if end < 0:
+          return  # Unmatched parenthesis
+        lhs += '(' + expression[0:end]
+        expression = expression[end:]
+      elif token in ('&&', '||'):
+        # Logical and/or operators.  This means the expression
+        # contains more than one term, for example:
+        #   CHECK(42 < a && a < b);
+        #
+        # These are not replaceable with CHECK_LE, so bail out early.
+        return
+      elif token in ('<<', '<<=', '>>', '>>=', '->*', '->'):
+        # Non-relational operator
+        lhs += token
+        expression = matched.group(2)
+      else:
+        # Relational operator
+        operator = token
+        rhs = matched.group(2)
+        break
+    else:
+      # Unparenthesized operand.  Instead of appending to lhs one character
+      # at a time, we do another regular expression match to consume several
+      # characters at once if possible.  Trivial benchmark shows that this
+      # is more efficient when the operands are longer than a single
+      # character, which is generally the case.
+      matched = Match(r'^([^-=!<>()&|]+)(.*)$', expression)
+      if not matched:
+        matched = Match(r'^(\s*\S)(.*)$', expression)
+        if not matched:
+          break
+      lhs += matched.group(1)
+      expression = matched.group(2)
+
+  # Only apply checks if we got all parts of the boolean expression
+  if not (lhs and operator and rhs):
+    return
+
+  # Check that rhs do not contain logical operators.  We already know
+  # that lhs is fine since the loop above parses out && and ||.
+  if rhs.find('&&') > -1 or rhs.find('||') > -1:
+    return
+
+  # At least one of the operands must be a constant literal.  This is
+  # to avoid suggesting replacements for unprintable things like
+  # CHECK(variable != iterator)
+  #
+  # The following pattern matches decimal, hex integers, strings, and
+  # characters (in that order).
+  lhs = lhs.strip()
+  rhs = rhs.strip()
+  match_constant = r'^([-+]?(\d+|0[xX][0-9a-fA-F]+)[lLuU]{0,3}|".*"|\'.*\')$'
+  if Match(match_constant, lhs) or Match(match_constant, rhs):
+    # Note: since we know both lhs and rhs, we can provide a more
+    # descriptive error message like:
+    #   Consider using CHECK_EQ(x, 42) instead of CHECK(x == 42)
+    # Instead of:
+    #   Consider using CHECK_EQ instead of CHECK(a == b)
+    #
+    # We are still keeping the less descriptive message because if lhs
+    # or rhs gets long, the error message might become unreadable.
+    error(filename, linenum, 'readability/check', 2,
+          'Consider using %s instead of %s(a %s b)' % (
+              _CHECK_REPLACEMENT[check_macro][operator],
+              check_macro, operator))
+
+
+def CheckAltTokens(filename, clean_lines, linenum, error):
+  """Check alternative keywords being used in boolean expressions.
+
+  Args:
+    filename: The name of the current file.
+    clean_lines: A CleansedLines instance containing the file.
+    linenum: The number of the line to check.
+    error: The function to call with any errors found.
+  """
+  line = clean_lines.elided[linenum]
+
+  # Avoid preprocessor lines
+  if Match(r'^\s*#', line):
+    return
+
+  # Last ditch effort to avoid multi-line comments.  This will not help
+  # if the comment started before the current line or ended after the
+  # current line, but it catches most of the false positives.  At least,
+  # it provides a way to workaround this warning for people who use
+  # multi-line comments in preprocessor macros.
+  #
+  # TODO(unknown): remove this once cpplint has better support for
+  # multi-line comments.
+  if line.find('/*') >= 0 or line.find('*/') >= 0:
+    return
+
+  for match in _ALT_TOKEN_REPLACEMENT_PATTERN.finditer(line):
+    error(filename, linenum, 'readability/alt_tokens', 2,
+          'Use operator %s instead of %s' % (
+              _ALT_TOKEN_REPLACEMENT[match.group(1)], match.group(1)))
+
+
+def GetLineWidth(line):
+  """Determines the width of the line in column positions.
+
+  Args:
+    line: A string, which may be a Unicode string.
+
+  Returns:
+    The width of the line in column positions, accounting for Unicode
+    combining characters and wide characters.
+  """
+  if isinstance(line, unicode):
+    width = 0
+    for uc in unicodedata.normalize('NFC', line):
+      if unicodedata.east_asian_width(uc) in ('W', 'F'):
+        width += 2
+      elif not unicodedata.combining(uc):
+        width += 1
+    return width
+  else:
+    return len(line)
+
+
+def CheckStyle(filename, clean_lines, linenum, file_extension, nesting_state,
+               error):
+  """Checks rules from the 'C++ style rules' section of cppguide.html.
+
+  Most of these rules are hard to test (naming, comment style), but we
+  do what we can.  In particular we check for 2-space indents, line lengths,
+  tab usage, spaces inside code, etc.
+
+  Args:
+    filename: The name of the current file.
+    clean_lines: A CleansedLines instance containing the file.
+    linenum: The number of the line to check.
+    file_extension: The extension (without the dot) of the filename.
+    nesting_state: A NestingState instance which maintains information about
+                   the current stack of nested blocks being parsed.
+    error: The function to call with any errors found.
+  """
+
+  # Don't use "elided" lines here, otherwise we can't check commented lines.
+  # Don't want to use "raw" either, because we don't want to check inside C++11
+  # raw strings,
+  raw_lines = clean_lines.lines_without_raw_strings
+  line = raw_lines[linenum]
+  prev = raw_lines[linenum - 1] if linenum > 0 else ''
+
+  if line.find('\t') != -1:
+    error(filename, linenum, 'whitespace/tab', 1,
+          'Tab found; better to use spaces')
+
+  # One or three blank spaces at the beginning of the line is weird; it's
+  # hard to reconcile that with 2-space indents.
+  # NOTE: here are the conditions rob pike used for his tests.  Mine aren't
+  # as sophisticated, but it may be worth becoming so:  RLENGTH==initial_spaces
+  # if(RLENGTH > 20) complain = 0;
+  # if(match($0, " +(error|private|public|protected):")) complain = 0;
+  # if(match(prev, "&& *$")) complain = 0;
+  # if(match(prev, "\\|\\| *$")) complain = 0;
+  # if(match(prev, "[\",=><] *$")) complain = 0;
+  # if(match($0, " <<")) complain = 0;
+  # if(match(prev, " +for \\(")) complain = 0;
+  # if(prevodd && match(prevprev, " +for \\(")) complain = 0;
+  scope_or_label_pattern = r'\s*\w+\s*:\s*\\?$'
+  classinfo = nesting_state.InnermostClass()
+  initial_spaces = 0
+  cleansed_line = clean_lines.elided[linenum]
+  while initial_spaces < len(line) and line[initial_spaces] == ' ':
+    initial_spaces += 1
+  # There are certain situations we allow one space, notably for
+  # section labels, and also lines containing multi-line raw strings.
+  # We also don't check for lines that look like continuation lines
+  # (of lines ending in double quotes, commas, equals, or angle brackets)
+  # because the rules for how to indent those are non-trivial.
+  if (not Search(r'[",=><] *$', prev) and
+      (initial_spaces == 1 or initial_spaces == 3) and
+      not Match(scope_or_label_pattern, cleansed_line) and
+      not (clean_lines.raw_lines[linenum] != line and
+           Match(r'^\s*""', line))):
+    error(filename, linenum, 'whitespace/indent', 3,
+          'Weird number of spaces at line-start.  '
+          'Are you using a 2-space indent?')
+
+  if line and line[-1].isspace():
+    error(filename, linenum, 'whitespace/end_of_line', 4,
+          'Line ends in whitespace.  Consider deleting these extra spaces.')
+
+  # Check if the line is a header guard.
+  is_header_guard = False
+  if IsHeaderExtension(file_extension):
+    cppvar = GetHeaderGuardCPPVariable(filename)
+    if (line.startswith('#ifndef %s' % cppvar) or
+        line.startswith('#define %s' % cppvar) or
+        line.startswith('#endif  // %s' % cppvar)):
+      is_header_guard = True
+  # #include lines and header guards can be long, since there's no clean way to
+  # split them.
+  #
+  # URLs can be long too.  It's possible to split these, but it makes them
+  # harder to cut&paste.
+  #
+  # The "$Id:...$" comment may also get very long without it being the
+  # developers fault.
+  if (not line.startswith('#include') and not is_header_guard and
+      not Match(r'^\s*//.*http(s?)://\S*$', line) and
+      not Match(r'^\s*//\s*[^\s]*$', line) and
+      not Match(r'^// \$Id:.*#[0-9]+ \$$', line)):
+    line_width = GetLineWidth(line)
+    if line_width > _line_length:
+      error(filename, linenum, 'whitespace/line_length', 2,
+            'Lines should be <= %i characters long' % _line_length)
+
+  if (cleansed_line.count(';') > 1 and
+      # for loops are allowed two ;'s (and may run over two lines).
+      cleansed_line.find('for') == -1 and
+      (GetPreviousNonBlankLine(clean_lines, linenum)[0].find('for') == -1 or
+       GetPreviousNonBlankLine(clean_lines, linenum)[0].find(';') != -1) and
+      # It's ok to have many commands in a switch case that fits in 1 line
+      not ((cleansed_line.find('case ') != -1 or
+            cleansed_line.find('default:') != -1) and
+           cleansed_line.find('break;') != -1)):
+    error(filename, linenum, 'whitespace/newline', 0,
+          'More than one command on the same line')
+
+  # Some more style checks
+  CheckBraces(filename, clean_lines, linenum, error)
+  CheckTrailingSemicolon(filename, clean_lines, linenum, error)
+  CheckEmptyBlockBody(filename, clean_lines, linenum, error)
+  CheckSpacing(filename, clean_lines, linenum, nesting_state, error)
+  CheckOperatorSpacing(filename, clean_lines, linenum, error)
+  CheckParenthesisSpacing(filename, clean_lines, linenum, error)
+  CheckCommaSpacing(filename, clean_lines, linenum, error)
+  CheckBracesSpacing(filename, clean_lines, linenum, nesting_state, error)
+  CheckSpacingForFunctionCall(filename, clean_lines, linenum, error)
+  CheckCheck(filename, clean_lines, linenum, error)
+  CheckAltTokens(filename, clean_lines, linenum, error)
+  classinfo = nesting_state.InnermostClass()
+  if classinfo:
+    CheckSectionSpacing(filename, clean_lines, classinfo, linenum, error)
+
+
+_RE_PATTERN_INCLUDE = re.compile(r'^\s*#\s*include\s*([<"])([^>"]*)[>"].*$')
+# Matches the first component of a filename delimited by -s and _s. That is:
+#  _RE_FIRST_COMPONENT.match('foo').group(0) == 'foo'
+#  _RE_FIRST_COMPONENT.match('foo.cc').group(0) == 'foo'
+#  _RE_FIRST_COMPONENT.match('foo-bar_baz.cc').group(0) == 'foo'
+#  _RE_FIRST_COMPONENT.match('foo_bar-baz.cc').group(0) == 'foo'
+_RE_FIRST_COMPONENT = re.compile(r'^[^-_.]+')
+
+
+def _DropCommonSuffixes(filename):
+  """Drops common suffixes like _test.cc or -inl.h from filename.
+
+  For example:
+    >>> _DropCommonSuffixes('foo/foo-inl.h')
+    'foo/foo'
+    >>> _DropCommonSuffixes('foo/bar/foo.cc')
+    'foo/bar/foo'
+    >>> _DropCommonSuffixes('foo/foo_internal.h')
+    'foo/foo'
+    >>> _DropCommonSuffixes('foo/foo_unusualinternal.h')
+    'foo/foo_unusualinternal'
+
+  Args:
+    filename: The input filename.
+
+  Returns:
+    The filename with the common suffix removed.
+  """
+  for suffix in ('test.cc', 'regtest.cc', 'unittest.cc',
+                 'inl.h', 'impl.h', 'internal.h'):
+    if (filename.endswith(suffix) and len(filename) > len(suffix) and
+        filename[-len(suffix) - 1] in ('-', '_')):
+      return filename[:-len(suffix) - 1]
+  return os.path.splitext(filename)[0]
+
+
+def _ClassifyInclude(fileinfo, include, is_system):
+  """Figures out what kind of header 'include' is.
+
+  Args:
+    fileinfo: The current file cpplint is running over. A FileInfo instance.
+    include: The path to a #included file.
+    is_system: True if the #include used <> rather than "".
+
+  Returns:
+    One of the _XXX_HEADER constants.
+
+  For example:
+    >>> _ClassifyInclude(FileInfo('foo/foo.cc'), 'stdio.h', True)
+    _C_SYS_HEADER
+    >>> _ClassifyInclude(FileInfo('foo/foo.cc'), 'string', True)
+    _CPP_SYS_HEADER
+    >>> _ClassifyInclude(FileInfo('foo/foo.cc'), 'foo/foo.h', False)
+    _LIKELY_MY_HEADER
+    >>> _ClassifyInclude(FileInfo('foo/foo_unknown_extension.cc'),
+    ...                  'bar/foo_other_ext.h', False)
+    _POSSIBLE_MY_HEADER
+    >>> _ClassifyInclude(FileInfo('foo/foo.cc'), 'foo/bar.h', False)
+    _OTHER_HEADER
+  """
+  # This is a list of all standard c++ header files, except
+  # those already checked for above.
+  is_cpp_h = include in _CPP_HEADERS
+
+  if is_system:
+    if is_cpp_h:
+      return _CPP_SYS_HEADER
+    else:
+      return _C_SYS_HEADER
+
+  # If the target file and the include we're checking share a
+  # basename when we drop common extensions, and the include
+  # lives in . , then it's likely to be owned by the target file.
+  target_dir, target_base = (
+      os.path.split(_DropCommonSuffixes(fileinfo.RepositoryName())))
+  include_dir, include_base = os.path.split(_DropCommonSuffixes(include))
+  if target_base == include_base and (
+      include_dir == target_dir or
+      include_dir == os.path.normpath(target_dir + '/../public')):
+    return _LIKELY_MY_HEADER
+
+  # If the target and include share some initial basename
+  # component, it's possible the target is implementing the
+  # include, so it's allowed to be first, but we'll never
+  # complain if it's not there.
+  target_first_component = _RE_FIRST_COMPONENT.match(target_base)
+  include_first_component = _RE_FIRST_COMPONENT.match(include_base)
+  if (target_first_component and include_first_component and
+      target_first_component.group(0) ==
+      include_first_component.group(0)):
+    return _POSSIBLE_MY_HEADER
+
+  return _OTHER_HEADER
+
+
+
+def CheckIncludeLine(filename, clean_lines, linenum, include_state, error):
+  """Check rules that are applicable to #include lines.
+
+  Strings on #include lines are NOT removed from elided line, to make
+  certain tasks easier. However, to prevent false positives, checks
+  applicable to #include lines in CheckLanguage must be put here.
+
+  Args:
+    filename: The name of the current file.
+    clean_lines: A CleansedLines instance containing the file.
+    linenum: The number of the line to check.
+    include_state: An _IncludeState instance in which the headers are inserted.
+    error: The function to call with any errors found.
+  """
+  fileinfo = FileInfo(filename)
+  line = clean_lines.lines[linenum]
+
+  # "include" should use the new style "foo/bar.h" instead of just "bar.h"
+  # Only do this check if the included header follows google naming
+  # conventions.  If not, assume that it's a 3rd party API that
+  # requires special include conventions.
+  #
+  # We also make an exception for Lua headers, which follow google
+  # naming convention but not the include convention.
+  match = Match(r'#include\s*"([^/]+\.h)"', line)
+  if match and not _THIRD_PARTY_HEADERS_PATTERN.match(match.group(1)):
+    error(filename, linenum, 'build/include', 4,
+          'Include the directory when naming .h files')
+
+  # we shouldn't include a file more than once. actually, there are a
+  # handful of instances where doing so is okay, but in general it's
+  # not.
+  match = _RE_PATTERN_INCLUDE.search(line)
+  if match:
+    include = match.group(2)
+    is_system = (match.group(1) == '<')
+    duplicate_line = include_state.FindHeader(include)
+    if duplicate_line >= 0:
+      error(filename, linenum, 'build/include', 4,
+            '"%s" already included at %s:%s' %
+            (include, filename, duplicate_line))
+    elif (include.endswith('.cc') and
+          os.path.dirname(fileinfo.RepositoryName()) != os.path.dirname(include)):
+      error(filename, linenum, 'build/include', 4,
+            'Do not include .cc files from other packages')
+    elif not _THIRD_PARTY_HEADERS_PATTERN.match(include):
+      include_state.include_list[-1].append((include, linenum))
+
+      # We want to ensure that headers appear in the right order:
+      # 1) for foo.cc, foo.h  (preferred location)
+      # 2) c system files
+      # 3) cpp system files
+      # 4) for foo.cc, foo.h  (deprecated location)
+      # 5) other google headers
+      #
+      # We classify each include statement as one of those 5 types
+      # using a number of techniques. The include_state object keeps
+      # track of the highest type seen, and complains if we see a
+      # lower type after that.
+      error_message = include_state.CheckNextIncludeOrder(
+          _ClassifyInclude(fileinfo, include, is_system))
+      if error_message:
+        error(filename, linenum, 'build/include_order', 4,
+              '%s. Should be: %s.h, c system, c++ system, other.' %
+              (error_message, fileinfo.BaseName()))
+      canonical_include = include_state.CanonicalizeAlphabeticalOrder(include)
+      if not include_state.IsInAlphabeticalOrder(
+          clean_lines, linenum, canonical_include):
+        error(filename, linenum, 'build/include_alpha', 4,
+              'Include "%s" not in alphabetical order' % include)
+      include_state.SetLastHeader(canonical_include)
+
+
+
+def _GetTextInside(text, start_pattern):
+  r"""Retrieves all the text between matching open and close parentheses.
+
+  Given a string of lines and a regular expression string, retrieve all the text
+  following the expression and between opening punctuation symbols like
+  (, [, or {, and the matching close-punctuation symbol. This properly nested
+  occurrences of the punctuations, so for the text like
+    printf(a(), b(c()));
+  a call to _GetTextInside(text, r'printf\(') will return 'a(), b(c())'.
+  start_pattern must match string having an open punctuation symbol at the end.
+
+  Args:
+    text: The lines to extract text. Its comments and strings must be elided.
+           It can be single line and can span multiple lines.
+    start_pattern: The regexp string indicating where to start extracting
+                   the text.
+  Returns:
+    The extracted text.
+    None if either the opening string or ending punctuation could not be found.
+  """
+  # TODO(unknown): Audit cpplint.py to see what places could be profitably
+  # rewritten to use _GetTextInside (and use inferior regexp matching today).
+
+  # Give opening punctuations to get the matching close-punctuations.
+  matching_punctuation = {'(': ')', '{': '}', '[': ']'}
+  closing_punctuation = set(matching_punctuation.itervalues())
+
+  # Find the position to start extracting text.
+  match = re.search(start_pattern, text, re.M)
+  if not match:  # start_pattern not found in text.
+    return None
+  start_position = match.end(0)
+
+  assert start_position > 0, (
+      'start_pattern must ends with an opening punctuation.')
+  assert text[start_position - 1] in matching_punctuation, (
+      'start_pattern must ends with an opening punctuation.')
+  # Stack of closing punctuations we expect to have in text after position.
+  punctuation_stack = [matching_punctuation[text[start_position - 1]]]
+  position = start_position
+  while punctuation_stack and position < len(text):
+    if text[position] == punctuation_stack[-1]:
+      punctuation_stack.pop()
+    elif text[position] in closing_punctuation:
+      # A closing punctuation without matching opening punctuations.
+      return None
+    elif text[position] in matching_punctuation:
+      punctuation_stack.append(matching_punctuation[text[position]])
+    position += 1
+  if punctuation_stack:
+    # Opening punctuations left without matching close-punctuations.
+    return None
+  # punctuations match.
+  return text[start_position:position - 1]
+
+
+# Patterns for matching call-by-reference parameters.
+#
+# Supports nested templates up to 2 levels deep using this messy pattern:
+#   < (?: < (?: < [^<>]*
+#               >
+#           |   [^<>] )*
+#         >
+#     |   [^<>] )*
+#   >
+_RE_PATTERN_IDENT = r'[_a-zA-Z]\w*'  # =~ [[:alpha:]][[:alnum:]]*
+_RE_PATTERN_TYPE = (
+    r'(?:const\s+)?(?:typename\s+|class\s+|struct\s+|union\s+|enum\s+)?'
+    r'(?:\w|'
+    r'\s*<(?:<(?:<[^<>]*>|[^<>])*>|[^<>])*>|'
+    r'::)+')
+# A call-by-reference parameter ends with '& identifier'.
+_RE_PATTERN_REF_PARAM = re.compile(
+    r'(' + _RE_PATTERN_TYPE + r'(?:\s*(?:\bconst\b|[*]))*\s*'
+    r'&\s*' + _RE_PATTERN_IDENT + r')\s*(?:=[^,()]+)?[,)]')
+# A call-by-const-reference parameter either ends with 'const& identifier'
+# or looks like 'const type& identifier' when 'type' is atomic.
+_RE_PATTERN_CONST_REF_PARAM = (
+    r'(?:.*\s*\bconst\s*&\s*' + _RE_PATTERN_IDENT +
+    r'|const\s+' + _RE_PATTERN_TYPE + r'\s*&\s*' + _RE_PATTERN_IDENT + r')')
+# Stream types.
+_RE_PATTERN_REF_STREAM_PARAM = (
+    r'(?:.*stream\s*&\s*' + _RE_PATTERN_IDENT + r')')
+
+
+def CheckLanguage(filename, clean_lines, linenum, file_extension,
+                  include_state, nesting_state, error):
+  """Checks rules from the 'C++ language rules' section of cppguide.html.
+
+  Some of these rules are hard to test (function overloading, using
+  uint32 inappropriately), but we do the best we can.
+
+  Args:
+    filename: The name of the current file.
+    clean_lines: A CleansedLines instance containing the file.
+    linenum: The number of the line to check.
+    file_extension: The extension (without the dot) of the filename.
+    include_state: An _IncludeState instance in which the headers are inserted.
+    nesting_state: A NestingState instance which maintains information about
+                   the current stack of nested blocks being parsed.
+    error: The function to call with any errors found.
+  """
+  # If the line is empty or consists of entirely a comment, no need to
+  # check it.
+  line = clean_lines.elided[linenum]
+  if not line:
+    return
+
+  match = _RE_PATTERN_INCLUDE.search(line)
+  if match:
+    CheckIncludeLine(filename, clean_lines, linenum, include_state, error)
+    return
+
+  # Reset include state across preprocessor directives.  This is meant
+  # to silence warnings for conditional includes.
+  match = Match(r'^\s*#\s*(if|ifdef|ifndef|elif|else|endif)\b', line)
+  if match:
+    include_state.ResetSection(match.group(1))
+
+  # Make Windows paths like Unix.
+  fullname = os.path.abspath(filename).replace('\\', '/')
+
+  # Perform other checks now that we are sure that this is not an include line
+  CheckCasts(filename, clean_lines, linenum, error)
+  CheckGlobalStatic(filename, clean_lines, linenum, error)
+  CheckPrintf(filename, clean_lines, linenum, error)
+
+  if IsHeaderExtension(file_extension):
+    # TODO(unknown): check that 1-arg constructors are explicit.
+    #                How to tell it's a constructor?
+    #                (handled in CheckForNonStandardConstructs for now)
+    # TODO(unknown): check that classes declare or disable copy/assign
+    #                (level 1 error)
+    pass
+
+  # Check if people are using the verboten C basic types.  The only exception
+  # we regularly allow is "unsigned short port" for port.
+  if Search(r'\bshort port\b', line):
+    if not Search(r'\bunsigned short port\b', line):
+      error(filename, linenum, 'runtime/int', 4,
+            'Use "unsigned short" for ports, not "short"')
+  else:
+    match = Search(r'\b(short|long(?! +double)|long long)\b', line)
+    if match:
+      error(filename, linenum, 'runtime/int', 4,
+            'Use int16/int64/etc, rather than the C type %s' % match.group(1))
+
+  # Check if some verboten operator overloading is going on
+  # TODO(unknown): catch out-of-line unary operator&:
+  #   class X {};
+  #   int operator&(const X& x) { return 42; }  // unary operator&
+  # The trick is it's hard to tell apart from binary operator&:
+  #   class Y { int operator&(const Y& x) { return 23; } }; // binary operator&
+  if Search(r'\boperator\s*&\s*\(\s*\)', line):
+    error(filename, linenum, 'runtime/operator', 4,
+          'Unary operator& is dangerous.  Do not use it.')
+
+  # Check for suspicious usage of "if" like
+  # } if (a == b) {
+  if Search(r'\}\s*if\s*\(', line):
+    error(filename, linenum, 'readability/braces', 4,
+          'Did you mean "else if"? If not, start a new line for "if".')
+
+  # Check for potential format string bugs like printf(foo).
+  # We constrain the pattern not to pick things like DocidForPrintf(foo).
+  # Not perfect but it can catch printf(foo.c_str()) and printf(foo->c_str())
+  # TODO(unknown): Catch the following case. Need to change the calling
+  # convention of the whole function to process multiple line to handle it.
+  #   printf(
+  #       boy_this_is_a_really_long_variable_that_cannot_fit_on_the_prev_line);
+  printf_args = _GetTextInside(line, r'(?i)\b(string)?printf\s*\(')
+  if printf_args:
+    match = Match(r'([\w.\->()]+)$', printf_args)
+    if match and match.group(1) != '__VA_ARGS__':
+      function_name = re.search(r'\b((?:string)?printf)\s*\(',
+                                line, re.I).group(1)
+      error(filename, linenum, 'runtime/printf', 4,
+            'Potential format string bug. Do %s("%%s", %s) instead.'
+            % (function_name, match.group(1)))
+
+  # Check for potential memset bugs like memset(buf, sizeof(buf), 0).
+  match = Search(r'memset\s*\(([^,]*),\s*([^,]*),\s*0\s*\)', line)
+  if match and not Match(r"^''|-?[0-9]+|0x[0-9A-Fa-f]$", match.group(2)):
+    error(filename, linenum, 'runtime/memset', 4,
+          'Did you mean "memset(%s, 0, %s)"?'
+          % (match.group(1), match.group(2)))
+
+  if Search(r'\busing namespace\b', line):
+    error(filename, linenum, 'build/namespaces', 5,
+          'Do not use namespace using-directives.  '
+          'Use using-declarations instead.')
+
+  # Detect variable-length arrays.
+  match = Match(r'\s*(.+::)?(\w+) [a-z]\w*\[(.+)];', line)
+  if (match and match.group(2) != 'return' and match.group(2) != 'delete' and
+      match.group(3).find(']') == -1):
+    # Split the size using space and arithmetic operators as delimiters.
+    # If any of the resulting tokens are not compile time constants then
+    # report the error.
+    tokens = re.split(r'\s|\+|\-|\*|\/|<<|>>]', match.group(3))
+    is_const = True
+    skip_next = False
+    for tok in tokens:
+      if skip_next:
+        skip_next = False
+        continue
+
+      if Search(r'sizeof\(.+\)', tok): continue
+      if Search(r'arraysize\(\w+\)', tok): continue
+
+      tok = tok.lstrip('(')
+      tok = tok.rstrip(')')
+      if not tok: continue
+      if Match(r'\d+', tok): continue
+      if Match(r'0[xX][0-9a-fA-F]+', tok): continue
+      if Match(r'k[A-Z0-9]\w*', tok): continue
+      if Match(r'(.+::)?k[A-Z0-9]\w*', tok): continue
+      if Match(r'(.+::)?[A-Z][A-Z0-9_]*', tok): continue
+      # A catch all for tricky sizeof cases, including 'sizeof expression',
+      # 'sizeof(*type)', 'sizeof(const type)', 'sizeof(struct StructName)'
+      # requires skipping the next token because we split on ' ' and '*'.
+      if tok.startswith('sizeof'):
+        skip_next = True
+        continue
+      is_const = False
+      break
+    if not is_const:
+      error(filename, linenum, 'runtime/arrays', 1,
+            'Do not use variable-length arrays.  Use an appropriately named '
+            "('k' followed by CamelCase) compile-time constant for the size.")
+
+  # Check for use of unnamed namespaces in header files.  Registration
+  # macros are typically OK, so we allow use of "namespace {" on lines
+  # that end with backslashes.
+  if (IsHeaderExtension(file_extension)
+      and Search(r'\bnamespace\s*{', line)
+      and line[-1] != '\\'):
+    error(filename, linenum, 'build/namespaces', 4,
+          'Do not use unnamed namespaces in header files.  See '
+          'https://google-styleguide.googlecode.com/svn/trunk/cppguide.xml#Namespaces'
+          ' for more information.')
+
+
+def CheckGlobalStatic(filename, clean_lines, linenum, error):
+  """Check for unsafe global or static objects.
+
+  Args:
+    filename: The name of the current file.
+    clean_lines: A CleansedLines instance containing the file.
+    linenum: The number of the line to check.
+    error: The function to call with any errors found.
+  """
+  line = clean_lines.elided[linenum]
+
+  # Match two lines at a time to support multiline declarations
+  if linenum + 1 < clean_lines.NumLines() and not Search(r'[;({]', line):
+    line += clean_lines.elided[linenum + 1].strip()
+
+  # Check for people declaring static/global STL strings at the top level.
+  # This is dangerous because the C++ language does not guarantee that
+  # globals with constructors are initialized before the first access, and
+  # also because globals can be destroyed when some threads are still running.
+  # TODO(unknown): Generalize this to also find static unique_ptr instances.
+  # TODO(unknown): File bugs for clang-tidy to find these.
+  match = Match(
+      r'((?:|static +)(?:|const +))(?::*std::)?string( +const)? +'
+      r'([a-zA-Z0-9_:]+)\b(.*)',
+      line)
+
+  # Remove false positives:
+  # - String pointers (as opposed to values).
+  #    string *pointer
+  #    const string *pointer
+  #    string const *pointer
+  #    string *const pointer
+  #
+  # - Functions and template specializations.
+  #    string Function(...
+  #    string Class::Method(...
+  #
+  # - Operators.  These are matched separately because operator names
+  #   cross non-word boundaries, and trying to match both operators
+  #   and functions at the same time would decrease accuracy of
+  #   matching identifiers.
+  #    string Class::operator*()
+  if (match and
+      not Search(r'\bstring\b(\s+const)?\s*[\*\&]\s*(const\s+)?\w', line) and
+      not Search(r'\boperator\W', line) and
+      not Match(r'\s*(<.*>)?(::[a-zA-Z0-9_]+)*\s*\(([^"]|$)', match.group(4))):
+    if Search(r'\bconst\b', line):
+      error(filename, linenum, 'runtime/string', 4,
+            'For a static/global string constant, use a C style string '
+            'instead: "%schar%s %s[]".' %
+            (match.group(1), match.group(2) or '', match.group(3)))
+    else:
+      error(filename, linenum, 'runtime/string', 4,
+            'Static/global string variables are not permitted.')
+
+  if (Search(r'\b([A-Za-z0-9_]*_)\(\1\)', line) or
+      Search(r'\b([A-Za-z0-9_]*_)\(CHECK_NOTNULL\(\1\)\)', line)):
+    error(filename, linenum, 'runtime/init', 4,
+          'You seem to be initializing a member variable with itself.')
+
+
+def CheckPrintf(filename, clean_lines, linenum, error):
+  """Check for printf related issues.
+
+  Args:
+    filename: The name of the current file.
+    clean_lines: A CleansedLines instance containing the file.
+    linenum: The number of the line to check.
+    error: The function to call with any errors found.
+  """
+  line = clean_lines.elided[linenum]
+
+  # When snprintf is used, the second argument shouldn't be a literal.
+  match = Search(r'snprintf\s*\(([^,]*),\s*([0-9]*)\s*,', line)
+  if match and match.group(2) != '0':
+    # If 2nd arg is zero, snprintf is used to calculate size.
+    error(filename, linenum, 'runtime/printf', 3,
+          'If you can, use sizeof(%s) instead of %s as the 2nd arg '
+          'to snprintf.' % (match.group(1), match.group(2)))
+
+  # Check if some verboten C functions are being used.
+  if Search(r'\bsprintf\s*\(', line):
+    error(filename, linenum, 'runtime/printf', 5,
+          'Never use sprintf. Use snprintf instead.')
+  match = Search(r'\b(strcpy|strcat)\s*\(', line)
+  if match:
+    error(filename, linenum, 'runtime/printf', 4,
+          'Almost always, snprintf is better than %s' % match.group(1))
+
+
+def IsDerivedFunction(clean_lines, linenum):
+  """Check if current line contains an inherited function.
+
+  Args:
+    clean_lines: A CleansedLines instance containing the file.
+    linenum: The number of the line to check.
+  Returns:
+    True if current line contains a function with "override"
+    virt-specifier.
+  """
+  # Scan back a few lines for start of current function
+  for i in xrange(linenum, max(-1, linenum - 10), -1):
+    match = Match(r'^([^()]*\w+)\(', clean_lines.elided[i])
+    if match:
+      # Look for "override" after the matching closing parenthesis
+      line, _, closing_paren = CloseExpression(
+          clean_lines, i, len(match.group(1)))
+      return (closing_paren >= 0 and
+              Search(r'\boverride\b', line[closing_paren:]))
+  return False
+
+
+def IsOutOfLineMethodDefinition(clean_lines, linenum):
+  """Check if current line contains an out-of-line method definition.
+
+  Args:
+    clean_lines: A CleansedLines instance containing the file.
+    linenum: The number of the line to check.
+  Returns:
+    True if current line contains an out-of-line method definition.
+  """
+  # Scan back a few lines for start of current function
+  for i in xrange(linenum, max(-1, linenum - 10), -1):
+    if Match(r'^([^()]*\w+)\(', clean_lines.elided[i]):
+      return Match(r'^[^()]*\w+::\w+\(', clean_lines.elided[i]) is not None
+  return False
+
+
+def IsInitializerList(clean_lines, linenum):
+  """Check if current line is inside constructor initializer list.
+
+  Args:
+    clean_lines: A CleansedLines instance containing the file.
+    linenum: The number of the line to check.
+  Returns:
+    True if current line appears to be inside constructor initializer
+    list, False otherwise.
+  """
+  for i in xrange(linenum, 1, -1):
+    line = clean_lines.elided[i]
+    if i == linenum:
+      remove_function_body = Match(r'^(.*)\{\s*$', line)
+      if remove_function_body:
+        line = remove_function_body.group(1)
+
+    if Search(r'\s:\s*\w+[({]', line):
+      # A lone colon tend to indicate the start of a constructor
+      # initializer list.  It could also be a ternary operator, which
+      # also tend to appear in constructor initializer lists as
+      # opposed to parameter lists.
+      return True
+    if Search(r'\}\s*,\s*$', line):
+      # A closing brace followed by a comma is probably the end of a
+      # brace-initialized member in constructor initializer list.
+      return True
+    if Search(r'[{};]\s*$', line):
+      # Found one of the following:
+      # - A closing brace or semicolon, probably the end of the previous
+      #   function.
+      # - An opening brace, probably the start of current class or namespace.
+      #
+      # Current line is probably not inside an initializer list since
+      # we saw one of those things without seeing the starting colon.
+      return False
+
+  # Got to the beginning of the file without seeing the start of
+  # constructor initializer list.
+  return False
+
+
+def CheckForNonConstReference(filename, clean_lines, linenum,
+                              nesting_state, error):
+  """Check for non-const references.
+
+  Separate from CheckLanguage since it scans backwards from current
+  line, instead of scanning forward.
+
+  Args:
+    filename: The name of the current file.
+    clean_lines: A CleansedLines instance containing the file.
+    linenum: The number of the line to check.
+    nesting_state: A NestingState instance which maintains information about
+                   the current stack of nested blocks being parsed.
+    error: The function to call with any errors found.
+  """
+  # Do nothing if there is no '&' on current line.
+  line = clean_lines.elided[linenum]
+  if '&' not in line:
+    return
+
+  # If a function is inherited, current function doesn't have much of
+  # a choice, so any non-const references should not be blamed on
+  # derived function.
+  if IsDerivedFunction(clean_lines, linenum):
+    return
+
+  # Don't warn on out-of-line method definitions, as we would warn on the
+  # in-line declaration, if it isn't marked with 'override'.
+  if IsOutOfLineMethodDefinition(clean_lines, linenum):
+    return
+
+  # Long type names may be broken across multiple lines, usually in one
+  # of these forms:
+  #   LongType
+  #       ::LongTypeContinued &identifier
+  #   LongType::
+  #       LongTypeContinued &identifier
+  #   LongType<
+  #       ...>::LongTypeContinued &identifier
+  #
+  # If we detected a type split across two lines, join the previous
+  # line to current line so that we can match const references
+  # accordingly.
+  #
+  # Note that this only scans back one line, since scanning back
+  # arbitrary number of lines would be expensive.  If you have a type
+  # that spans more than 2 lines, please use a typedef.
+  if linenum > 1:
+    previous = None
+    if Match(r'\s*::(?:[\w<>]|::)+\s*&\s*\S', line):
+      # previous_line\n + ::current_line
+      previous = Search(r'\b((?:const\s*)?(?:[\w<>]|::)+[\w<>])\s*$',
+                        clean_lines.elided[linenum - 1])
+    elif Match(r'\s*[a-zA-Z_]([\w<>]|::)+\s*&\s*\S', line):
+      # previous_line::\n + current_line
+      previous = Search(r'\b((?:const\s*)?(?:[\w<>]|::)+::)\s*$',
+                        clean_lines.elided[linenum - 1])
+    if previous:
+      line = previous.group(1) + line.lstrip()
+    else:
+      # Check for templated parameter that is split across multiple lines
+      endpos = line.rfind('>')
+      if endpos > -1:
+        (_, startline, startpos) = ReverseCloseExpression(
+            clean_lines, linenum, endpos)
+        if startpos > -1 and startline < linenum:
+          # Found the matching < on an earlier line, collect all
+          # pieces up to current line.
+          line = ''
+          for i in xrange(startline, linenum + 1):
+            line += clean_lines.elided[i].strip()
+
+  # Check for non-const references in function parameters.  A single '&' may
+  # found in the following places:
+  #   inside expression: binary & for bitwise AND
+  #   inside expression: unary & for taking the address of something
+  #   inside declarators: reference parameter
+  # We will exclude the first two cases by checking that we are not inside a
+  # function body, including one that was just introduced by a trailing '{'.
+  # TODO(unknown): Doesn't account for 'catch(Exception& e)' [rare].
+  if (nesting_state.previous_stack_top and
+      not (isinstance(nesting_state.previous_stack_top, _ClassInfo) or
+           isinstance(nesting_state.previous_stack_top, _NamespaceInfo))):
+    # Not at toplevel, not within a class, and not within a namespace
+    return
+
+  # Avoid initializer lists.  We only need to scan back from the
+  # current line for something that starts with ':'.
+  #
+  # We don't need to check the current line, since the '&' would
+  # appear inside the second set of parentheses on the current line as
+  # opposed to the first set.
+  if linenum > 0:
+    for i in xrange(linenum - 1, max(0, linenum - 10), -1):
+      previous_line = clean_lines.elided[i]
+      if not Search(r'[),]\s*$', previous_line):
+        break
+      if Match(r'^\s*:\s+\S', previous_line):
+        return
+
+  # Avoid preprocessors
+  if Search(r'\\\s*$', line):
+    return
+
+  # Avoid constructor initializer lists
+  if IsInitializerList(clean_lines, linenum):
+    return
+
+  # We allow non-const references in a few standard places, like functions
+  # called "swap()" or iostream operators like "<<" or ">>".  Do not check
+  # those function parameters.
+  #
+  # We also accept & in static_assert, which looks like a function but
+  # it's actually a declaration expression.
+  whitelisted_functions = (r'(?:[sS]wap(?:<\w:+>)?|'
+                           r'operator\s*[<>][<>]|'
+                           r'static_assert|COMPILE_ASSERT'
+                           r')\s*\(')
+  if Search(whitelisted_functions, line):
+    return
+  elif not Search(r'\S+\([^)]*$', line):
+    # Don't see a whitelisted function on this line.  Actually we
+    # didn't see any function name on this line, so this is likely a
+    # multi-line parameter list.  Try a bit harder to catch this case.
+    for i in xrange(2):
+      if (linenum > i and
+          Search(whitelisted_functions, clean_lines.elided[linenum - i - 1])):
+        return
+
+  decls = ReplaceAll(r'{[^}]*}', ' ', line)  # exclude function body
+  for parameter in re.findall(_RE_PATTERN_REF_PARAM, decls):
+    if (not Match(_RE_PATTERN_CONST_REF_PARAM, parameter) and
+        not Match(_RE_PATTERN_REF_STREAM_PARAM, parameter)):
+      error(filename, linenum, 'runtime/references', 2,
+            'Is this a non-const reference? '
+            'If so, make const or use a pointer: ' +
+            ReplaceAll(' *<', '<', parameter))
+
+
+def CheckCasts(filename, clean_lines, linenum, error):
+  """Various cast related checks.
+
+  Args:
+    filename: The name of the current file.
+    clean_lines: A CleansedLines instance containing the file.
+    linenum: The number of the line to check.
+    error: The function to call with any errors found.
+  """
+  line = clean_lines.elided[linenum]
+
+  # Check to see if they're using an conversion function cast.
+  # I just try to capture the most common basic types, though there are more.
+  # Parameterless conversion functions, such as bool(), are allowed as they are
+  # probably a member operator declaration or default constructor.
+  match = Search(
+      r'(\bnew\s+(?:const\s+)?|\S<\s*(?:const\s+)?)?\b'
+      r'(int|float|double|bool|char|int32|uint32|int64|uint64)'
+      r'(\([^)].*)', line)
+  expecting_function = ExpectingFunctionArgs(clean_lines, linenum)
+  if match and not expecting_function:
+    matched_type = match.group(2)
+
+    # matched_new_or_template is used to silence two false positives:
+    # - New operators
+    # - Template arguments with function types
+    #
+    # For template arguments, we match on types immediately following
+    # an opening bracket without any spaces.  This is a fast way to
+    # silence the common case where the function type is the first
+    # template argument.  False negative with less-than comparison is
+    # avoided because those operators are usually followed by a space.
+    #
+    #   function   // bracket + no space = false positive
+    #   value < double(42)         // bracket + space = true positive
+    matched_new_or_template = match.group(1)
+
+    # Avoid arrays by looking for brackets that come after the closing
+    # parenthesis.
+    if Match(r'\([^()]+\)\s*\[', match.group(3)):
+      return
+
+    # Other things to ignore:
+    # - Function pointers
+    # - Casts to pointer types
+    # - Placement new
+    # - Alias declarations
+    matched_funcptr = match.group(3)
+    if (matched_new_or_template is None and
+        not (matched_funcptr and
+             (Match(r'\((?:[^() ]+::\s*\*\s*)?[^() ]+\)\s*\(',
+                    matched_funcptr) or
+              matched_funcptr.startswith('(*)'))) and
+        not Match(r'\s*using\s+\S+\s*=\s*' + matched_type, line) and
+        not Search(r'new\(\S+\)\s*' + matched_type, line)):
+      error(filename, linenum, 'readability/casting', 4,
+            'Using deprecated casting style.  '
+            'Use static_cast<%s>(...) instead' %
+            matched_type)
+
+  if not expecting_function:
+    CheckCStyleCast(filename, clean_lines, linenum, 'static_cast',
+                    r'\((int|float|double|bool|char|u?int(16|32|64))\)', error)
+
+  # This doesn't catch all cases. Consider (const char * const)"hello".
+  #
+  # (char *) "foo" should always be a const_cast (reinterpret_cast won't
+  # compile).
+  if CheckCStyleCast(filename, clean_lines, linenum, 'const_cast',
+                     r'\((char\s?\*+\s?)\)\s*"', error):
+    pass
+  else:
+    # Check pointer casts for other than string constants
+    CheckCStyleCast(filename, clean_lines, linenum, 'reinterpret_cast',
+                    r'\((\w+\s?\*+\s?)\)', error)
+
+  # In addition, we look for people taking the address of a cast.  This
+  # is dangerous -- casts can assign to temporaries, so the pointer doesn't
+  # point where you think.
+  #
+  # Some non-identifier character is required before the '&' for the
+  # expression to be recognized as a cast.  These are casts:
+  #   expression = &static_cast(temporary());
+  #   function(&(int*)(temporary()));
+  #
+  # This is not a cast:
+  #   reference_type&(int* function_param);
+  match = Search(
+      r'(?:[^\w]&\(([^)*][^)]*)\)[\w(])|'
+      r'(?:[^\w]&(static|dynamic|down|reinterpret)_cast\b)', line)
+  if match:
+    # Try a better error message when the & is bound to something
+    # dereferenced by the casted pointer, as opposed to the casted
+    # pointer itself.
+    parenthesis_error = False
+    match = Match(r'^(.*&(?:static|dynamic|down|reinterpret)_cast\b)<', line)
+    if match:
+      _, y1, x1 = CloseExpression(clean_lines, linenum, len(match.group(1)))
+      if x1 >= 0 and clean_lines.elided[y1][x1] == '(':
+        _, y2, x2 = CloseExpression(clean_lines, y1, x1)
+        if x2 >= 0:
+          extended_line = clean_lines.elided[y2][x2:]
+          if y2 < clean_lines.NumLines() - 1:
+            extended_line += clean_lines.elided[y2 + 1]
+          if Match(r'\s*(?:->|\[)', extended_line):
+            parenthesis_error = True
+
+    if parenthesis_error:
+      error(filename, linenum, 'readability/casting', 4,
+            ('Are you taking an address of something dereferenced '
+             'from a cast?  Wrapping the dereferenced expression in '
+             'parentheses will make the binding more obvious'))
+    else:
+      error(filename, linenum, 'runtime/casting', 4,
+            ('Are you taking an address of a cast?  '
+             'This is dangerous: could be a temp var.  '
+             'Take the address before doing the cast, rather than after'))
+
+
+def CheckCStyleCast(filename, clean_lines, linenum, cast_type, pattern, error):
+  """Checks for a C-style cast by looking for the pattern.
+
+  Args:
+    filename: The name of the current file.
+    clean_lines: A CleansedLines instance containing the file.
+    linenum: The number of the line to check.
+    cast_type: The string for the C++ cast to recommend.  This is either
+      reinterpret_cast, static_cast, or const_cast, depending.
+    pattern: The regular expression used to find C-style casts.
+    error: The function to call with any errors found.
+
+  Returns:
+    True if an error was emitted.
+    False otherwise.
+  """
+  line = clean_lines.elided[linenum]
+  match = Search(pattern, line)
+  if not match:
+    return False
+
+  # Exclude lines with keywords that tend to look like casts
+  context = line[0:match.start(1) - 1]
+  if Match(r'.*\b(?:sizeof|alignof|alignas|[_A-Z][_A-Z0-9]*)\s*$', context):
+    return False
+
+  # Try expanding current context to see if we one level of
+  # parentheses inside a macro.
+  if linenum > 0:
+    for i in xrange(linenum - 1, max(0, linenum - 5), -1):
+      context = clean_lines.elided[i] + context
+  if Match(r'.*\b[_A-Z][_A-Z0-9]*\s*\((?:\([^()]*\)|[^()])*$', context):
+    return False
+
+  # operator++(int) and operator--(int)
+  if context.endswith(' operator++') or context.endswith(' operator--'):
+    return False
+
+  # A single unnamed argument for a function tends to look like old style cast.
+  # If we see those, don't issue warnings for deprecated casts.
+  remainder = line[match.end(0):]
+  if Match(r'^\s*(?:;|const\b|throw\b|final\b|override\b|[=>{),]|->)',
+           remainder):
+    return False
+
+  # At this point, all that should be left is actual casts.
+  error(filename, linenum, 'readability/casting', 4,
+        'Using C-style cast.  Use %s<%s>(...) instead' %
+        (cast_type, match.group(1)))
+
+  return True
+
+
+def ExpectingFunctionArgs(clean_lines, linenum):
+  """Checks whether where function type arguments are expected.
+
+  Args:
+    clean_lines: A CleansedLines instance containing the file.
+    linenum: The number of the line to check.
+
+  Returns:
+    True if the line at 'linenum' is inside something that expects arguments
+    of function types.
+  """
+  line = clean_lines.elided[linenum]
+  return (Match(r'^\s*MOCK_(CONST_)?METHOD\d+(_T)?\(', line) or
+          (linenum >= 2 and
+           (Match(r'^\s*MOCK_(?:CONST_)?METHOD\d+(?:_T)?\((?:\S+,)?\s*$',
+                  clean_lines.elided[linenum - 1]) or
+            Match(r'^\s*MOCK_(?:CONST_)?METHOD\d+(?:_T)?\(\s*$',
+                  clean_lines.elided[linenum - 2]) or
+            Search(r'\bstd::m?function\s*\<\s*$',
+                   clean_lines.elided[linenum - 1]))))
+
+
+_HEADERS_CONTAINING_TEMPLATES = (
+    ('', ('deque',)),
+    ('', ('unary_function', 'binary_function',
+                      'plus', 'minus', 'multiplies', 'divides', 'modulus',
+                      'negate',
+                      'equal_to', 'not_equal_to', 'greater', 'less',
+                      'greater_equal', 'less_equal',
+                      'logical_and', 'logical_or', 'logical_not',
+                      'unary_negate', 'not1', 'binary_negate', 'not2',
+                      'bind1st', 'bind2nd',
+                      'pointer_to_unary_function',
+                      'pointer_to_binary_function',
+                      'ptr_fun',
+                      'mem_fun_t', 'mem_fun', 'mem_fun1_t', 'mem_fun1_ref_t',
+                      'mem_fun_ref_t',
+                      'const_mem_fun_t', 'const_mem_fun1_t',
+                      'const_mem_fun_ref_t', 'const_mem_fun1_ref_t',
+                      'mem_fun_ref',
+                     )),
+    ('', ('numeric_limits',)),
+    ('', ('list',)),
+    ('', ('map', 'multimap',)),
+    ('', ('allocator', 'make_shared', 'make_unique', 'shared_ptr',
+                  'unique_ptr', 'weak_ptr')),
+    ('', ('queue', 'priority_queue',)),
+    ('', ('set', 'multiset',)),
+    ('', ('stack',)),
+    ('', ('char_traits', 'basic_string',)),
+    ('', ('tuple',)),
+    ('', ('unordered_map', 'unordered_multimap')),
+    ('', ('unordered_set', 'unordered_multiset')),
+    ('', ('pair',)),
+    ('', ('vector',)),
+
+    # gcc extensions.
+    # Note: std::hash is their hash, ::hash is our hash
+    ('', ('hash_map', 'hash_multimap',)),
+    ('', ('hash_set', 'hash_multiset',)),
+    ('', ('slist',)),
+    )
+
+_HEADERS_MAYBE_TEMPLATES = (
+    ('', ('copy', 'max', 'min', 'min_element', 'sort',
+                     'transform',
+                    )),
+    ('', ('forward', 'make_pair', 'move', 'swap')),
+    )
+
+_RE_PATTERN_STRING = re.compile(r'\bstring\b')
+
+_re_pattern_headers_maybe_templates = []
+for _header, _templates in _HEADERS_MAYBE_TEMPLATES:
+  for _template in _templates:
+    # Match max(..., ...), max(..., ...), but not foo->max, foo.max or
+    # type::max().
+    _re_pattern_headers_maybe_templates.append(
+        (re.compile(r'[^>.]\b' + _template + r'(<.*?>)?\([^\)]'),
+            _template,
+            _header))
+
+# Other scripts may reach in and modify this pattern.
+_re_pattern_templates = []
+for _header, _templates in _HEADERS_CONTAINING_TEMPLATES:
+  for _template in _templates:
+    _re_pattern_templates.append(
+        (re.compile(r'(\<|\b)' + _template + r'\s*\<'),
+         _template + '<>',
+         _header))
+
+
+def FilesBelongToSameModule(filename_cc, filename_h):
+  """Check if these two filenames belong to the same module.
+
+  The concept of a 'module' here is a as follows:
+  foo.h, foo-inl.h, foo.cc, foo_test.cc and foo_unittest.cc belong to the
+  same 'module' if they are in the same directory.
+  some/path/public/xyzzy and some/path/internal/xyzzy are also considered
+  to belong to the same module here.
+
+  If the filename_cc contains a longer path than the filename_h, for example,
+  '/absolute/path/to/base/sysinfo.cc', and this file would include
+  'base/sysinfo.h', this function also produces the prefix needed to open the
+  header. This is used by the caller of this function to more robustly open the
+  header file. We don't have access to the real include paths in this context,
+  so we need this guesswork here.
+
+  Known bugs: tools/base/bar.cc and base/bar.h belong to the same module
+  according to this implementation. Because of this, this function gives
+  some false positives. This should be sufficiently rare in practice.
+
+  Args:
+    filename_cc: is the path for the .cc file
+    filename_h: is the path for the header path
+
+  Returns:
+    Tuple with a bool and a string:
+    bool: True if filename_cc and filename_h belong to the same module.
+    string: the additional prefix needed to open the header file.
+  """
+
+  fileinfo = FileInfo(filename_cc)
+  if not fileinfo.IsSource():
+    return (False, '')
+  filename_cc = filename_cc[:-len(fileinfo.Extension())]
+  matched_test_suffix = Search(_TEST_FILE_SUFFIX, fileinfo.BaseName())
+  if matched_test_suffix:
+    filename_cc = filename_cc[:-len(matched_test_suffix.group(1))]
+  filename_cc = filename_cc.replace('/public/', '/')
+  filename_cc = filename_cc.replace('/internal/', '/')
+
+  if not filename_h.endswith('.h'):
+    return (False, '')
+  filename_h = filename_h[:-len('.h')]
+  if filename_h.endswith('-inl'):
+    filename_h = filename_h[:-len('-inl')]
+  filename_h = filename_h.replace('/public/', '/')
+  filename_h = filename_h.replace('/internal/', '/')
+
+  files_belong_to_same_module = filename_cc.endswith(filename_h)
+  common_path = ''
+  if files_belong_to_same_module:
+    common_path = filename_cc[:-len(filename_h)]
+  return files_belong_to_same_module, common_path
+
+
+def UpdateIncludeState(filename, include_dict, io=codecs):
+  """Fill up the include_dict with new includes found from the file.
+
+  Args:
+    filename: the name of the header to read.
+    include_dict: a dictionary in which the headers are inserted.
+    io: The io factory to use to read the file. Provided for testability.
+
+  Returns:
+    True if a header was successfully added. False otherwise.
+  """
+  headerfile = None
+  try:
+    headerfile = io.open(filename, 'r', 'utf8', 'replace')
+  except IOError:
+    return False
+  linenum = 0
+  for line in headerfile:
+    linenum += 1
+    clean_line = CleanseComments(line)
+    match = _RE_PATTERN_INCLUDE.search(clean_line)
+    if match:
+      include = match.group(2)
+      include_dict.setdefault(include, linenum)
+  return True
+
+
+def CheckForIncludeWhatYouUse(filename, clean_lines, include_state, error,
+                              io=codecs):
+  """Reports for missing stl includes.
+
+  This function will output warnings to make sure you are including the headers
+  necessary for the stl containers and functions that you use. We only give one
+  reason to include a header. For example, if you use both equal_to<> and
+  less<> in a .h file, only one (the latter in the file) of these will be
+  reported as a reason to include the .
+
+  Args:
+    filename: The name of the current file.
+    clean_lines: A CleansedLines instance containing the file.
+    include_state: An _IncludeState instance.
+    error: The function to call with any errors found.
+    io: The IO factory to use to read the header file. Provided for unittest
+        injection.
+  """
+  required = {}  # A map of header name to linenumber and the template entity.
+                 # Example of required: { '': (1219, 'less<>') }
+
+  for linenum in xrange(clean_lines.NumLines()):
+    line = clean_lines.elided[linenum]
+    if not line or line[0] == '#':
+      continue
+
+    # String is special -- it is a non-templatized type in STL.
+    matched = _RE_PATTERN_STRING.search(line)
+    if matched:
+      # Don't warn about strings in non-STL namespaces:
+      # (We check only the first match per line; good enough.)
+      prefix = line[:matched.start()]
+      if prefix.endswith('std::') or not prefix.endswith('::'):
+        required[''] = (linenum, 'string')
+
+    for pattern, template, header in _re_pattern_headers_maybe_templates:
+      if pattern.search(line):
+        required[header] = (linenum, template)
+
+    # The following function is just a speed up, no semantics are changed.
+    if not '<' in line:  # Reduces the cpu time usage by skipping lines.
+      continue
+
+    for pattern, template, header in _re_pattern_templates:
+      matched = pattern.search(line)
+      if matched:
+        # Don't warn about IWYU in non-STL namespaces:
+        # (We check only the first match per line; good enough.)
+        prefix = line[:matched.start()]
+        if prefix.endswith('std::') or not prefix.endswith('::'):
+          required[header] = (linenum, template)
+
+  # The policy is that if you #include something in foo.h you don't need to
+  # include it again in foo.cc. Here, we will look at possible includes.
+  # Let's flatten the include_state include_list and copy it into a dictionary.
+  include_dict = dict([item for sublist in include_state.include_list
+                       for item in sublist])
+
+  # Did we find the header for this file (if any) and successfully load it?
+  header_found = False
+
+  # Use the absolute path so that matching works properly.
+  abs_filename = FileInfo(filename).FullName()
+
+  # For Emacs's flymake.
+  # If cpplint is invoked from Emacs's flymake, a temporary file is generated
+  # by flymake and that file name might end with '_flymake.cc'. In that case,
+  # restore original file name here so that the corresponding header file can be
+  # found.
+  # e.g. If the file name is 'foo_flymake.cc', we should search for 'foo.h'
+  # instead of 'foo_flymake.h'
+  abs_filename = re.sub(r'_flymake\.cc$', '.cc', abs_filename)
+
+  # include_dict is modified during iteration, so we iterate over a copy of
+  # the keys.
+  header_keys = include_dict.keys()
+  for header in header_keys:
+    (same_module, common_path) = FilesBelongToSameModule(abs_filename, header)
+    fullpath = common_path + header
+    if same_module and UpdateIncludeState(fullpath, include_dict, io):
+      header_found = True
+
+  # If we can't find the header file for a .cc, assume it's because we don't
+  # know where to look. In that case we'll give up as we're not sure they
+  # didn't include it in the .h file.
+  # TODO(unknown): Do a better job of finding .h files so we are confident that
+  # not having the .h file means there isn't one.
+  if filename.endswith('.cc') and not header_found:
+    return
+
+  # All the lines have been processed, report the errors found.
+  for required_header_unstripped in required:
+    template = required[required_header_unstripped][1]
+    if required_header_unstripped.strip('<>"') not in include_dict:
+      error(filename, required[required_header_unstripped][0],
+            'build/include_what_you_use', 4,
+            'Add #include ' + required_header_unstripped + ' for ' + template)
+
+
+_RE_PATTERN_EXPLICIT_MAKEPAIR = re.compile(r'\bmake_pair\s*<')
+
+
+def CheckMakePairUsesDeduction(filename, clean_lines, linenum, error):
+  """Check that make_pair's template arguments are deduced.
+
+  G++ 4.6 in C++11 mode fails badly if make_pair's template arguments are
+  specified explicitly, and such use isn't intended in any case.
+
+  Args:
+    filename: The name of the current file.
+    clean_lines: A CleansedLines instance containing the file.
+    linenum: The number of the line to check.
+    error: The function to call with any errors found.
+  """
+  line = clean_lines.elided[linenum]
+  match = _RE_PATTERN_EXPLICIT_MAKEPAIR.search(line)
+  if match:
+    error(filename, linenum, 'build/explicit_make_pair',
+          4,  # 4 = high confidence
+          'For C++11-compatibility, omit template arguments from make_pair'
+          ' OR use pair directly OR if appropriate, construct a pair directly')
+
+
+def CheckRedundantVirtual(filename, clean_lines, linenum, error):
+  """Check if line contains a redundant "virtual" function-specifier.
+
+  Args:
+    filename: The name of the current file.
+    clean_lines: A CleansedLines instance containing the file.
+    linenum: The number of the line to check.
+    error: The function to call with any errors found.
+  """
+  # Look for "virtual" on current line.
+  line = clean_lines.elided[linenum]
+  virtual = Match(r'^(.*)(\bvirtual\b)(.*)$', line)
+  if not virtual: return
+
+  # Ignore "virtual" keywords that are near access-specifiers.  These
+  # are only used in class base-specifier and do not apply to member
+  # functions.
+  if (Search(r'\b(public|protected|private)\s+$', virtual.group(1)) or
+      Match(r'^\s+(public|protected|private)\b', virtual.group(3))):
+    return
+
+  # Ignore the "virtual" keyword from virtual base classes.  Usually
+  # there is a column on the same line in these cases (virtual base
+  # classes are rare in google3 because multiple inheritance is rare).
+  if Match(r'^.*[^:]:[^:].*$', line): return
+
+  # Look for the next opening parenthesis.  This is the start of the
+  # parameter list (possibly on the next line shortly after virtual).
+  # TODO(unknown): doesn't work if there are virtual functions with
+  # decltype() or other things that use parentheses, but csearch suggests
+  # that this is rare.
+  end_col = -1
+  end_line = -1
+  start_col = len(virtual.group(2))
+  for start_line in xrange(linenum, min(linenum + 3, clean_lines.NumLines())):
+    line = clean_lines.elided[start_line][start_col:]
+    parameter_list = Match(r'^([^(]*)\(', line)
+    if parameter_list:
+      # Match parentheses to find the end of the parameter list
+      (_, end_line, end_col) = CloseExpression(
+          clean_lines, start_line, start_col + len(parameter_list.group(1)))
+      break
+    start_col = 0
+
+  if end_col < 0:
+    return  # Couldn't find end of parameter list, give up
+
+  # Look for "override" or "final" after the parameter list
+  # (possibly on the next few lines).
+  for i in xrange(end_line, min(end_line + 3, clean_lines.NumLines())):
+    line = clean_lines.elided[i][end_col:]
+    match = Search(r'\b(override|final)\b', line)
+    if match:
+      error(filename, linenum, 'readability/inheritance', 4,
+            ('"virtual" is redundant since function is '
+             'already declared as "%s"' % match.group(1)))
+
+    # Set end_col to check whole lines after we are done with the
+    # first line.
+    end_col = 0
+    if Search(r'[^\w]\s*$', line):
+      break
+
+
+def CheckRedundantOverrideOrFinal(filename, clean_lines, linenum, error):
+  """Check if line contains a redundant "override" or "final" virt-specifier.
+
+  Args:
+    filename: The name of the current file.
+    clean_lines: A CleansedLines instance containing the file.
+    linenum: The number of the line to check.
+    error: The function to call with any errors found.
+  """
+  # Look for closing parenthesis nearby.  We need one to confirm where
+  # the declarator ends and where the virt-specifier starts to avoid
+  # false positives.
+  line = clean_lines.elided[linenum]
+  declarator_end = line.rfind(')')
+  if declarator_end >= 0:
+    fragment = line[declarator_end:]
+  else:
+    if linenum > 1 and clean_lines.elided[linenum - 1].rfind(')') >= 0:
+      fragment = line
+    else:
+      return
+
+  # Check that at most one of "override" or "final" is present, not both
+  if Search(r'\boverride\b', fragment) and Search(r'\bfinal\b', fragment):
+    error(filename, linenum, 'readability/inheritance', 4,
+          ('"override" is redundant since function is '
+           'already declared as "final"'))
+
+
+
+
+# Returns true if we are at a new block, and it is directly
+# inside of a namespace.
+def IsBlockInNameSpace(nesting_state, is_forward_declaration):
+  """Checks that the new block is directly in a namespace.
+
+  Args:
+    nesting_state: The _NestingState object that contains info about our state.
+    is_forward_declaration: If the class is a forward declared class.
+  Returns:
+    Whether or not the new block is directly in a namespace.
+  """
+  if is_forward_declaration:
+    if len(nesting_state.stack) >= 1 and (
+        isinstance(nesting_state.stack[-1], _NamespaceInfo)):
+      return True
+    else:
+      return False
+
+  return (len(nesting_state.stack) > 1 and
+          nesting_state.stack[-1].check_namespace_indentation and
+          isinstance(nesting_state.stack[-2], _NamespaceInfo))
+
+
+def ShouldCheckNamespaceIndentation(nesting_state, is_namespace_indent_item,
+                                    raw_lines_no_comments, linenum):
+  """This method determines if we should apply our namespace indentation check.
+
+  Args:
+    nesting_state: The current nesting state.
+    is_namespace_indent_item: If we just put a new class on the stack, True.
+      If the top of the stack is not a class, or we did not recently
+      add the class, False.
+    raw_lines_no_comments: The lines without the comments.
+    linenum: The current line number we are processing.
+
+  Returns:
+    True if we should apply our namespace indentation check. Currently, it
+    only works for classes and namespaces inside of a namespace.
+  """
+
+  is_forward_declaration = IsForwardClassDeclaration(raw_lines_no_comments,
+                                                     linenum)
+
+  if not (is_namespace_indent_item or is_forward_declaration):
+    return False
+
+  # If we are in a macro, we do not want to check the namespace indentation.
+  if IsMacroDefinition(raw_lines_no_comments, linenum):
+    return False
+
+  return IsBlockInNameSpace(nesting_state, is_forward_declaration)
+
+
+# Call this method if the line is directly inside of a namespace.
+# If the line above is blank (excluding comments) or the start of
+# an inner namespace, it cannot be indented.
+def CheckItemIndentationInNamespace(filename, raw_lines_no_comments, linenum,
+                                    error):
+  line = raw_lines_no_comments[linenum]
+  if Match(r'^\s+', line):
+    error(filename, linenum, 'runtime/indentation_namespace', 4,
+          'Do not indent within a namespace')
+
+
+def ProcessLine(filename, file_extension, clean_lines, line,
+                include_state, function_state, nesting_state, error,
+                extra_check_functions=[]):
+  """Processes a single line in the file.
+
+  Args:
+    filename: Filename of the file that is being processed.
+    file_extension: The extension (dot not included) of the file.
+    clean_lines: An array of strings, each representing a line of the file,
+                 with comments stripped.
+    line: Number of line being processed.
+    include_state: An _IncludeState instance in which the headers are inserted.
+    function_state: A _FunctionState instance which counts function lines, etc.
+    nesting_state: A NestingState instance which maintains information about
+                   the current stack of nested blocks being parsed.
+    error: A callable to which errors are reported, which takes 4 arguments:
+           filename, line number, error level, and message
+    extra_check_functions: An array of additional check functions that will be
+                           run on each source line. Each function takes 4
+                           arguments: filename, clean_lines, line, error
+  """
+  raw_lines = clean_lines.raw_lines
+  ParseNolintSuppressions(filename, raw_lines[line], line, error)
+  nesting_state.Update(filename, clean_lines, line, error)
+  CheckForNamespaceIndentation(filename, nesting_state, clean_lines, line,
+                               error)
+  if nesting_state.InAsmBlock(): return
+  CheckForFunctionLengths(filename, clean_lines, line, function_state, error)
+  CheckForMultilineCommentsAndStrings(filename, clean_lines, line, error)
+  CheckStyle(filename, clean_lines, line, file_extension, nesting_state, error)
+  CheckLanguage(filename, clean_lines, line, file_extension, include_state,
+                nesting_state, error)
+  CheckForNonConstReference(filename, clean_lines, line, nesting_state, error)
+  CheckForNonStandardConstructs(filename, clean_lines, line,
+                                nesting_state, error)
+  CheckVlogArguments(filename, clean_lines, line, error)
+  CheckPosixThreading(filename, clean_lines, line, error)
+  CheckInvalidIncrement(filename, clean_lines, line, error)
+  CheckMakePairUsesDeduction(filename, clean_lines, line, error)
+  CheckRedundantVirtual(filename, clean_lines, line, error)
+  CheckRedundantOverrideOrFinal(filename, clean_lines, line, error)
+  for check_fn in extra_check_functions:
+    check_fn(filename, clean_lines, line, error)
+
+def FlagCxx11Features(filename, clean_lines, linenum, error):
+  """Flag those c++11 features that we only allow in certain places.
+
+  Args:
+    filename: The name of the current file.
+    clean_lines: A CleansedLines instance containing the file.
+    linenum: The number of the line to check.
+    error: The function to call with any errors found.
+  """
+  line = clean_lines.elided[linenum]
+
+  include = Match(r'\s*#\s*include\s+[<"]([^<"]+)[">]', line)
+
+  # Flag unapproved C++ TR1 headers.
+  if include and include.group(1).startswith('tr1/'):
+    error(filename, linenum, 'build/c++tr1', 5,
+          ('C++ TR1 headers such as <%s> are unapproved.') % include.group(1))
+
+  # Flag unapproved C++11 headers.
+  if include and include.group(1) in ('cfenv',
+                                      'condition_variable',
+                                      'fenv.h',
+                                      'future',
+                                      'mutex',
+                                      'thread',
+                                      'chrono',
+                                      'ratio',
+                                      'regex',
+                                      'system_error',
+                                     ):
+    error(filename, linenum, 'build/c++11', 5,
+          ('<%s> is an unapproved C++11 header.') % include.group(1))
+
+  # The only place where we need to worry about C++11 keywords and library
+  # features in preprocessor directives is in macro definitions.
+  if Match(r'\s*#', line) and not Match(r'\s*#\s*define\b', line): return
+
+  # These are classes and free functions.  The classes are always
+  # mentioned as std::*, but we only catch the free functions if
+  # they're not found by ADL.  They're alphabetical by header.
+  for top_name in (
+      # type_traits
+      'alignment_of',
+      'aligned_union',
+      ):
+    if Search(r'\bstd::%s\b' % top_name, line):
+      error(filename, linenum, 'build/c++11', 5,
+            ('std::%s is an unapproved C++11 class or function.  Send c-style '
+             'an example of where it would make your code more readable, and '
+             'they may let you use it.') % top_name)
+
+
+def FlagCxx14Features(filename, clean_lines, linenum, error):
+  """Flag those C++14 features that we restrict.
+
+  Args:
+    filename: The name of the current file.
+    clean_lines: A CleansedLines instance containing the file.
+    linenum: The number of the line to check.
+    error: The function to call with any errors found.
+  """
+  line = clean_lines.elided[linenum]
+
+  include = Match(r'\s*#\s*include\s+[<"]([^<"]+)[">]', line)
+
+  # Flag unapproved C++14 headers.
+  if include and include.group(1) in ('scoped_allocator', 'shared_mutex'):
+    error(filename, linenum, 'build/c++14', 5,
+          ('<%s> is an unapproved C++14 header.') % include.group(1))
+
+
+def ProcessFileData(filename, file_extension, lines, error,
+                    extra_check_functions=[]):
+  """Performs lint checks and reports any errors to the given error function.
+
+  Args:
+    filename: Filename of the file that is being processed.
+    file_extension: The extension (dot not included) of the file.
+    lines: An array of strings, each representing a line of the file, with the
+           last element being empty if the file is terminated with a newline.
+    error: A callable to which errors are reported, which takes 4 arguments:
+           filename, line number, error level, and message
+    extra_check_functions: An array of additional check functions that will be
+                           run on each source line. Each function takes 4
+                           arguments: filename, clean_lines, line, error
+  """
+  lines = (['// marker so line numbers and indices both start at 1'] + lines +
+           ['// marker so line numbers end in a known way'])
+
+  include_state = _IncludeState()
+  function_state = _FunctionState()
+  nesting_state = NestingState()
+
+  ResetNolintSuppressions()
+
+  CheckForCopyright(filename, lines, error)
+  ProcessGlobalSuppresions(lines)
+  RemoveMultiLineComments(filename, lines, error)
+  clean_lines = CleansedLines(lines)
+
+  if IsHeaderExtension(file_extension):
+    CheckForHeaderGuard(filename, clean_lines, error)
+
+  for line in xrange(clean_lines.NumLines()):
+    ProcessLine(filename, file_extension, clean_lines, line,
+                include_state, function_state, nesting_state, error,
+                extra_check_functions)
+    FlagCxx11Features(filename, clean_lines, line, error)
+  nesting_state.CheckCompletedBlocks(filename, error)
+
+  CheckForIncludeWhatYouUse(filename, clean_lines, include_state, error)
+
+  # Check that the .cc file has included its header if it exists.
+  if _IsSourceExtension(file_extension):
+    CheckHeaderFileIncluded(filename, include_state, error)
+
+  # We check here rather than inside ProcessLine so that we see raw
+  # lines rather than "cleaned" lines.
+  CheckForBadCharacters(filename, lines, error)
+
+  CheckForNewlineAtEOF(filename, lines, error)
+
+def ProcessConfigOverrides(filename):
+  """ Loads the configuration files and processes the config overrides.
+
+  Args:
+    filename: The name of the file being processed by the linter.
+
+  Returns:
+    False if the current |filename| should not be processed further.
+  """
+
+  abs_filename = os.path.abspath(filename)
+  cfg_filters = []
+  keep_looking = True
+  while keep_looking:
+    abs_path, base_name = os.path.split(abs_filename)
+    if not base_name:
+      break  # Reached the root directory.
+
+    cfg_file = os.path.join(abs_path, "CPPLINT.cfg")
+    abs_filename = abs_path
+    if not os.path.isfile(cfg_file):
+      continue
+
+    try:
+      with open(cfg_file) as file_handle:
+        for line in file_handle:
+          line, _, _ = line.partition('#')  # Remove comments.
+          if not line.strip():
+            continue
+
+          name, _, val = line.partition('=')
+          name = name.strip()
+          val = val.strip()
+          if name == 'set noparent':
+            keep_looking = False
+          elif name == 'filter':
+            cfg_filters.append(val)
+          elif name == 'exclude_files':
+            # When matching exclude_files pattern, use the base_name of
+            # the current file name or the directory name we are processing.
+            # For example, if we are checking for lint errors in /foo/bar/baz.cc
+            # and we found the .cfg file at /foo/CPPLINT.cfg, then the config
+            # file's "exclude_files" filter is meant to be checked against "bar"
+            # and not "baz" nor "bar/baz.cc".
+            if base_name:
+              pattern = re.compile(val)
+              if pattern.match(base_name):
+                sys.stderr.write('Ignoring "%s": file excluded by "%s". '
+                                 'File path component "%s" matches '
+                                 'pattern "%s"\n' %
+                                 (filename, cfg_file, base_name, val))
+                return False
+          elif name == 'linelength':
+            global _line_length
+            try:
+                _line_length = int(val)
+            except ValueError:
+                sys.stderr.write('Line length must be numeric.')
+          elif name == 'root':
+            global _root
+            _root = val
+          elif name == 'headers':
+            ProcessHppHeadersOption(val)
+          else:
+            sys.stderr.write(
+                'Invalid configuration option (%s) in file %s\n' %
+                (name, cfg_file))
+
+    except IOError:
+      sys.stderr.write(
+          "Skipping config file '%s': Can't open for reading\n" % cfg_file)
+      keep_looking = False
+
+  # Apply all the accumulated filters in reverse order (top-level directory
+  # config options having the least priority).
+  for filter in reversed(cfg_filters):
+     _AddFilters(filter)
+
+  return True
+
+
+def ProcessFile(filename, vlevel, extra_check_functions=[]):
+  """Does google-lint on a single file.
+
+  Args:
+    filename: The name of the file to parse.
+
+    vlevel: The level of errors to report.  Every error of confidence
+    >= verbose_level will be reported.  0 is a good default.
+
+    extra_check_functions: An array of additional check functions that will be
+                           run on each source line. Each function takes 4
+                           arguments: filename, clean_lines, line, error
+  """
+
+  _SetVerboseLevel(vlevel)
+  _BackupFilters()
+
+  if not ProcessConfigOverrides(filename):
+    _RestoreFilters()
+    return
+
+  lf_lines = []
+  crlf_lines = []
+  try:
+    # Support the UNIX convention of using "-" for stdin.  Note that
+    # we are not opening the file with universal newline support
+    # (which codecs doesn't support anyway), so the resulting lines do
+    # contain trailing '\r' characters if we are reading a file that
+    # has CRLF endings.
+    # If after the split a trailing '\r' is present, it is removed
+    # below.
+    if filename == '-':
+      lines = codecs.StreamReaderWriter(sys.stdin,
+                                        codecs.getreader('utf8'),
+                                        codecs.getwriter('utf8'),
+                                        'replace').read().split('\n')
+    else:
+      lines = codecs.open(filename, 'r', 'utf8', 'replace').read().split('\n')
+
+    # Remove trailing '\r'.
+    # The -1 accounts for the extra trailing blank line we get from split()
+    for linenum in range(len(lines) - 1):
+      if lines[linenum].endswith('\r'):
+        lines[linenum] = lines[linenum].rstrip('\r')
+        crlf_lines.append(linenum + 1)
+      else:
+        lf_lines.append(linenum + 1)
+
+  except IOError:
+    sys.stderr.write(
+        "Skipping input '%s': Can't open for reading\n" % filename)
+    _RestoreFilters()
+    return
+
+  # Note, if no dot is found, this will give the entire filename as the ext.
+  file_extension = filename[filename.rfind('.') + 1:]
+
+  # When reading from stdin, the extension is unknown, so no cpplint tests
+  # should rely on the extension.
+  if filename != '-' and file_extension not in _valid_extensions:
+    sys.stderr.write('Ignoring %s; not a valid file name '
+                     '(%s)\n' % (filename, ', '.join(_valid_extensions)))
+  else:
+    ProcessFileData(filename, file_extension, lines, Error,
+                    extra_check_functions)
+
+    # If end-of-line sequences are a mix of LF and CR-LF, issue
+    # warnings on the lines with CR.
+    #
+    # Don't issue any warnings if all lines are uniformly LF or CR-LF,
+    # since critique can handle these just fine, and the style guide
+    # doesn't dictate a particular end of line sequence.
+    #
+    # We can't depend on os.linesep to determine what the desired
+    # end-of-line sequence should be, since that will return the
+    # server-side end-of-line sequence.
+    if lf_lines and crlf_lines:
+      # Warn on every line with CR.  An alternative approach might be to
+      # check whether the file is mostly CRLF or just LF, and warn on the
+      # minority, we bias toward LF here since most tools prefer LF.
+      for linenum in crlf_lines:
+        Error(filename, linenum, 'whitespace/newline', 1,
+              'Unexpected \\r (^M) found; better to use only \\n')
+
+  sys.stdout.write('Done processing %s\n' % filename)
+  _RestoreFilters()
+
+
+def PrintUsage(message):
+  """Prints a brief usage string and exits, optionally with an error message.
+
+  Args:
+    message: The optional error message.
+  """
+  sys.stderr.write(_USAGE)
+  if message:
+    sys.exit('\nFATAL ERROR: ' + message)
+  else:
+    sys.exit(1)
+
+
+def PrintCategories():
+  """Prints a list of all the error-categories used by error messages.
+
+  These are the categories used to filter messages via --filter.
+  """
+  sys.stderr.write(''.join('  %s\n' % cat for cat in _ERROR_CATEGORIES))
+  sys.exit(0)
+
+
+def ParseArguments(args):
+  """Parses the command line arguments.
+
+  This may set the output format and verbosity level as side-effects.
+
+  Args:
+    args: The command line arguments:
+
+  Returns:
+    The list of filenames to lint.
+  """
+  try:
+    (opts, filenames) = getopt.getopt(args, '', ['help', 'output=', 'verbose=',
+                                                 'counting=',
+                                                 'filter=',
+                                                 'root=',
+                                                 'linelength=',
+                                                 'extensions=',
+                                                 'headers='])
+  except getopt.GetoptError:
+    PrintUsage('Invalid arguments.')
+
+  verbosity = _VerboseLevel()
+  output_format = _OutputFormat()
+  filters = ''
+  counting_style = ''
+
+  for (opt, val) in opts:
+    if opt == '--help':
+      PrintUsage(None)
+    elif opt == '--output':
+      if val not in ('emacs', 'vs7', 'eclipse'):
+        PrintUsage('The only allowed output formats are emacs, vs7 and eclipse.')
+      output_format = val
+    elif opt == '--verbose':
+      verbosity = int(val)
+    elif opt == '--filter':
+      filters = val
+      if not filters:
+        PrintCategories()
+    elif opt == '--counting':
+      if val not in ('total', 'toplevel', 'detailed'):
+        PrintUsage('Valid counting options are total, toplevel, and detailed')
+      counting_style = val
+    elif opt == '--root':
+      global _root
+      _root = val
+    elif opt == '--linelength':
+      global _line_length
+      try:
+          _line_length = int(val)
+      except ValueError:
+          PrintUsage('Line length must be digits.')
+    elif opt == '--extensions':
+      global _valid_extensions
+      try:
+          _valid_extensions = set(val.split(','))
+      except ValueError:
+          PrintUsage('Extensions must be comma seperated list.')
+    elif opt == '--headers':
+      ProcessHppHeadersOption(val)
+
+  if not filenames:
+    PrintUsage('No files were specified.')
+
+  _SetOutputFormat(output_format)
+  _SetVerboseLevel(verbosity)
+  _SetFilters(filters)
+  _SetCountingStyle(counting_style)
+
+  return filenames
+
+
+def main():
+  filenames = ParseArguments(sys.argv[1:])
+
+  # Change stderr to write with replacement characters so we don't die
+  # if we try to print something containing non-ASCII characters.
+  sys.stderr = codecs.StreamReaderWriter(sys.stderr,
+                                         codecs.getreader('utf8'),
+                                         codecs.getwriter('utf8'),
+                                         'replace')
+
+  _cpplint_state.ResetErrorCounts()
+  for filename in filenames:
+    ProcessFile(filename, _cpplint_state.verbose_level)
+  _cpplint_state.PrintErrorCounts()
+
+  sys.exit(_cpplint_state.error_count > 0)
+
+
+if __name__ == '__main__':
+  main()
diff --git a/extras/cpplint.sh b/extras/cpplint.sh
new file mode 100644
index 00000000..daf45aa2
--- /dev/null
+++ b/extras/cpplint.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+export PATH=/cygdrive/c/Python27:/cygdrive/c/Python27/DLLs:/cygdrive/c/Python27/Scripts:$PATH
+echo $PATH
+python cpplint.py --filter=-build/include,-runtime/references,-build/header_guard ../src/*.* ../src/*/*.* 2>cpplint.txt
\ No newline at end of file
diff --git a/extras/cpplint.txt b/extras/cpplint.txt
new file mode 100644
index 00000000..696803d1
--- /dev/null
+++ b/extras/cpplint.txt
@@ -0,0 +1 @@
+../src/FatLib/FatLibConfig.h:137:  Lines should be <= 80 characters long  [whitespace/line_length] [2]
diff --git a/extras/html/_arduino_files_8h.html b/extras/html/_arduino_files_8h.html
index 5be7a67f..df89b2fc 100644
--- a/extras/html/_arduino_files_8h.html
+++ b/extras/html/_arduino_files_8h.html
@@ -3,7 +3,8 @@
 
 
 
-
+
+
 SdFat: Arduino/libraries/SdFat/src/FatLib/ArduinoFiles.h File Reference
 
 
@@ -11,9 +12,6 @@
 
 
 
-
 
 
 
@@ -31,39 +29,22 @@
 
 
 
-
+
 
-  
-  
+
+
+
+
 
 
- - - - - - - - + + + + + + + +
@@ -132,20 +113,27 @@ - +

Macros

#define FILE_READ   O_READ
#define FILE_READ   O_RDONLY
 
#define FILE_WRITE   (O_RDWR | O_CREAT | O_AT_END)
 

Detailed Description

PrintFile class.

+

Copyright (c) 2011-2018 Bill Greiman This file is part of the SdFat library for SD memory cards.

+

MIT License

+

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Macro Definition Documentation

- + +

◆ FILE_READ

+
- +
#define FILE_READ   O_READ#define FILE_READ   O_RDONLY
@@ -153,7 +141,9 @@
- + +

◆ FILE_WRITE

+
@@ -169,9 +159,9 @@ diff --git a/extras/html/_arduino_files_8h__incl.png b/extras/html/_arduino_files_8h__incl.png index 2c4c69f4..7dd58c58 100644 Binary files a/extras/html/_arduino_files_8h__incl.png and b/extras/html/_arduino_files_8h__incl.png differ diff --git a/extras/html/_arduino_stream_8h.html b/extras/html/_arduino_stream_8h.html index 1f3c9f95..c718605c 100644 --- a/extras/html/_arduino_stream_8h.html +++ b/extras/html/_arduino_stream_8h.html @@ -3,7 +3,8 @@ - + +SdFat: Arduino/libraries/SdFat/src/FatLib/ArduinoStream.h File Reference @@ -11,9 +12,6 @@ - @@ -31,39 +29,22 @@
- + - - + + + +
- - - - - - - - - - - - - + + + + + + + + + + + + +
@@ -120,7 +101,7 @@
- +
@@ -135,12 +116,17 @@

Detailed Description

ArduinoInStream and ArduinoOutStream classes.

+

Copyright (c) 2011-2018 Bill Greiman This file is part of the SdFat library for SD memory cards.

+

MIT License

+

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

diff --git a/extras/html/_arduino_stream_8h__dep__incl.png b/extras/html/_arduino_stream_8h__dep__incl.png index 8764ad89..c510f4c5 100644 Binary files a/extras/html/_arduino_stream_8h__dep__incl.png and b/extras/html/_arduino_stream_8h__dep__incl.png differ diff --git a/extras/html/_arduino_stream_8h__incl.png b/extras/html/_arduino_stream_8h__incl.png index 31aee2db..d780e459 100644 Binary files a/extras/html/_arduino_stream_8h__incl.png and b/extras/html/_arduino_stream_8h__incl.png differ diff --git a/extras/html/_block_driver_8h.html b/extras/html/_block_driver_8h.html index 70000666..750aa630 100644 --- a/extras/html/_block_driver_8h.html +++ b/extras/html/_block_driver_8h.html @@ -3,7 +3,8 @@ - + + SdFat: Arduino/libraries/SdFat/src/BlockDriver.h File Reference @@ -11,9 +12,6 @@ - @@ -31,39 +29,22 @@
- + - - + + + +
- - - - - - - - - - - - - + + + + + + + + + + + + + +
@@ -132,8 +114,15 @@

Detailed Description

Define block driver.

+

Copyright (c) 2011-2018 Bill Greiman This file is part of the SdFat library for SD memory cards.

+

MIT License

+

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Typedef Documentation

- + +

◆ BlockDriver

+
@@ -149,9 +138,9 @@ diff --git a/extras/html/_block_driver_8h__dep__incl.png b/extras/html/_block_driver_8h__dep__incl.png index 0b190608..b12fc564 100644 Binary files a/extras/html/_block_driver_8h__dep__incl.png and b/extras/html/_block_driver_8h__dep__incl.png differ diff --git a/extras/html/_fat_file_8h.html b/extras/html/_fat_file_8h.html index 3e796344..3402ced6 100644 --- a/extras/html/_fat_file_8h.html +++ b/extras/html/_fat_file_8h.html @@ -3,7 +3,8 @@ - + +SdFat: Arduino/libraries/SdFat/src/FatLib/FatFile.h File Reference @@ -11,9 +12,6 @@ - @@ -31,39 +29,22 @@
- + - - + + + +
- - - - - - - + + + + + + +
@@ -121,16 +102,17 @@
- - - - - - - - - - + + + + + + + + + + +
@@ -174,8 +156,15 @@

Detailed Description

FatFile class.

+

Copyright (c) 2011-2018 Bill Greiman This file is part of the SdFat library for SD memory cards.

+

MIT License

+

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Macro Definition Documentation

- + +

◆ isDirSeparator

+
@@ -192,7 +181,9 @@ - + +

◆ pgm_read_byte

+
@@ -209,7 +200,9 @@ - + +

◆ pgm_read_word

+
@@ -226,7 +219,9 @@ - + +

◆ PROGMEM

+
@@ -239,7 +234,9 @@ - + +

◆ PSTR

+
@@ -257,7 +254,9 @@

Variable Documentation

- + +

◆ FNAME_FLAG_LC_BASE

+
@@ -270,7 +269,9 @@

Variable Documentation

- + +

◆ FNAME_FLAG_LC_EXT

+
@@ -283,7 +284,9 @@

Variable Documentation

- + +

◆ FNAME_FLAG_LOST_CHARS

+
@@ -296,7 +299,9 @@

Variable Documentation

- + +

◆ FNAME_FLAG_MIXED_CASE

+
@@ -309,7 +314,9 @@

Variable Documentation

- + +

◆ FNAME_FLAG_NEED_LFN

+
@@ -318,10 +325,8 @@

Variable Documentation

-Initial value:
=
- -
const uint8_t FNAME_FLAG_MIXED_CASE
Definition: FatFile.h:92
-
const uint8_t FNAME_FLAG_LOST_CHARS
Definition: FatFile.h:90
+Initial value:
=
const uint8_t FNAME_FLAG_MIXED_CASE
Definition: FatFile.h:97
+
const uint8_t FNAME_FLAG_LOST_CHARS
Definition: FatFile.h:95

LFN entries are required for file name.

@@ -329,9 +334,9 @@

Variable Documentation

diff --git a/extras/html/_fat_file_8h__dep__incl.png b/extras/html/_fat_file_8h__dep__incl.png index 2116a884..82fa8871 100644 Binary files a/extras/html/_fat_file_8h__dep__incl.png and b/extras/html/_fat_file_8h__dep__incl.png differ diff --git a/extras/html/_fat_file_8h__incl.png b/extras/html/_fat_file_8h__incl.png index 6fedec9f..d7558619 100644 Binary files a/extras/html/_fat_file_8h__incl.png and b/extras/html/_fat_file_8h__incl.png differ diff --git a/extras/html/_fat_file_system_8h.html b/extras/html/_fat_file_system_8h.html index e3402503..3083e800 100644 --- a/extras/html/_fat_file_system_8h.html +++ b/extras/html/_fat_file_system_8h.html @@ -3,7 +3,8 @@ - + + SdFat: Arduino/libraries/SdFat/src/FatLib/FatFileSystem.h File Reference @@ -11,9 +12,6 @@ - @@ -31,39 +29,22 @@
- + - - + + + +
More...

#include "FatVolume.h"
#include "FatFile.h"
-#include "ArduinoStream.h"
#include "ArduinoFiles.h"
Include dependency graph for FatFileSystem.h:
- - - - - - - - - - - - - - - + + + + + + + + +
@@ -128,12 +102,17 @@

Detailed Description

FatFileSystem class.

+

Copyright (c) 2011-2018 Bill Greiman This file is part of the SdFat library for SD memory cards.

+

MIT License

+

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

diff --git a/extras/html/_fat_file_system_8h__incl.png b/extras/html/_fat_file_system_8h__incl.png index dbcfb61b..7c830bc9 100644 Binary files a/extras/html/_fat_file_system_8h__incl.png and b/extras/html/_fat_file_system_8h__incl.png differ diff --git a/extras/html/_fat_lib_config_8h.html b/extras/html/_fat_lib_config_8h.html index a07dfa0d..ecf5feb2 100644 --- a/extras/html/_fat_lib_config_8h.html +++ b/extras/html/_fat_lib_config_8h.html @@ -3,7 +3,8 @@ - + + SdFat: Arduino/libraries/SdFat/src/FatLib/FatLibConfig.h File Reference @@ -11,9 +12,6 @@ - @@ -31,39 +29,22 @@
- + - - + + + +
- +
@@ -109,18 +90,19 @@
- - - - - - - - - - - - + + + + + + + + + + + + +
@@ -145,8 +127,15 @@

Detailed Description

configuration definitions

+

Copyright (c) 2011-2018 Bill Greiman This file is part of the SdFat library for SD memory cards.

+

MIT License

+

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Macro Definition Documentation

- + +

◆ DESTRUCTOR_CLOSES_FILE

+
@@ -160,7 +149,9 @@ - + +

◆ ENABLE_ARDUINO_FEATURES

+
@@ -173,7 +164,9 @@ - + +

◆ ENDL_CALLS_FLUSH

+
@@ -190,7 +183,9 @@ - + +

◆ FAT12_SUPPORT

+
@@ -203,7 +198,9 @@ - + +

◆ MAINTAIN_FREE_CLUSTER_COUNT

+
@@ -216,7 +213,9 @@ - + +

◆ USE_LONG_FILE_NAMES

+
@@ -236,7 +235,9 @@ - + +

◆ USE_MULTI_BLOCK_IO

+
@@ -250,7 +251,9 @@ - + +

◆ USE_SEPARATE_FAT_CACHE

+
@@ -266,9 +269,9 @@ diff --git a/extras/html/_fat_lib_config_8h__dep__incl.png b/extras/html/_fat_lib_config_8h__dep__incl.png index a7a8d212..e0f6c08c 100644 Binary files a/extras/html/_fat_lib_config_8h__dep__incl.png and b/extras/html/_fat_lib_config_8h__dep__incl.png differ diff --git a/extras/html/_fat_lib_config_8h__incl.png b/extras/html/_fat_lib_config_8h__incl.png index 4f0dc511..630dabfa 100644 Binary files a/extras/html/_fat_lib_config_8h__incl.png and b/extras/html/_fat_lib_config_8h__incl.png differ diff --git a/extras/html/_fat_structs_8h.html b/extras/html/_fat_structs_8h.html index a3a887f8..fdab6f66 100644 --- a/extras/html/_fat_structs_8h.html +++ b/extras/html/_fat_structs_8h.html @@ -3,7 +3,8 @@ - + +SdFat: Arduino/libraries/SdFat/src/FatLib/FatStructs.h File Reference @@ -11,9 +12,6 @@ - @@ -31,39 +29,22 @@
- + - - + + + +
- - - - - - - - - - - - + + + + + + + + + + + + +
@@ -264,8 +246,15 @@

Detailed Description

FAT file structures.

+

Copyright (c) 2011-2018 Bill Greiman This file is part of the SdFat library for SD memory cards.

+

MIT License

+

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Typedef Documentation

- + +

◆ bpb_t

+
@@ -278,7 +267,9 @@ - + +

◆ dir_t

+
@@ -291,7 +282,9 @@ - + +

◆ fat32_boot_t

+
@@ -304,7 +297,9 @@ - + +

◆ fat32_fsinfo_t

+
@@ -317,7 +312,9 @@ - + +

◆ fat_boot_t

+
@@ -330,7 +327,9 @@ - + +

◆ ldir_t

+
@@ -343,7 +342,9 @@ - + +

◆ mbr_t

+
@@ -356,7 +357,9 @@ - + +

◆ part_t

+
@@ -370,7 +373,9 @@

Function Documentation

- + +

◆ DIR_IS_FILE()

+
@@ -401,7 +406,9 @@

Function Documentation

- + +

◆ DIR_IS_FILE_OR_SUBDIR()

+
@@ -432,7 +439,9 @@

Function Documentation

- + +

◆ DIR_IS_HIDDEN()

+
@@ -463,7 +472,9 @@

Function Documentation

- + +

◆ DIR_IS_LONG_NAME()

+
@@ -494,7 +505,9 @@

Function Documentation

- + +

◆ DIR_IS_SUBDIR()

+
@@ -525,7 +538,9 @@

Function Documentation

- + +

◆ DIR_IS_SYSTEM()

+
@@ -556,7 +571,9 @@

Function Documentation

- + +

◆ FAT_DATE()

+
@@ -605,7 +622,9 @@

Function Documentation

- + +

◆ FAT_DAY()

+
@@ -636,7 +655,9 @@

Function Documentation

- + +

◆ FAT_HOUR()

+
@@ -667,7 +688,9 @@

Function Documentation

- + +

◆ FAT_MINUTE()

+
@@ -698,7 +721,9 @@

Function Documentation

- + +

◆ FAT_MONTH()

+
@@ -729,7 +754,9 @@

Function Documentation

- + +

◆ FAT_SECOND()

+
@@ -761,7 +788,9 @@

Function Documentation

- + +

◆ FAT_TIME()

+
@@ -810,7 +839,9 @@

Function Documentation

- + +

◆ FAT_YEAR()

+
@@ -842,7 +873,9 @@

Function Documentation

Variable Documentation

- + +

◆ BOOTSIG0

+
@@ -855,7 +888,9 @@

Variable Documentation

- + +

◆ BOOTSIG1

+
@@ -868,7 +903,9 @@

Variable Documentation

- + +

◆ DIR_ATT_ARCHIVE

+
@@ -881,7 +918,9 @@

Variable Documentation

- + +

◆ DIR_ATT_DEFINED_BITS

+
@@ -894,7 +933,9 @@

Variable Documentation

- + +

◆ DIR_ATT_DIRECTORY

+
@@ -907,7 +948,9 @@

Variable Documentation

- + +

◆ DIR_ATT_FILE_TYPE_MASK

+
@@ -920,7 +963,9 @@

Variable Documentation

- + +

◆ DIR_ATT_HIDDEN

+
@@ -933,7 +978,9 @@

Variable Documentation

- + +

◆ DIR_ATT_LONG_NAME

+
@@ -946,7 +993,9 @@

Variable Documentation

- + +

◆ DIR_ATT_LONG_NAME_MASK

+
@@ -959,7 +1008,9 @@

Variable Documentation

- + +

◆ DIR_ATT_READ_ONLY

+
@@ -972,7 +1023,9 @@

Variable Documentation

- + +

◆ DIR_ATT_SYSTEM

+
@@ -985,7 +1038,9 @@

Variable Documentation

- + +

◆ DIR_ATT_VOLUME_ID

+
@@ -998,7 +1053,9 @@

Variable Documentation

- + +

◆ DIR_NAME_0XE5

+
@@ -1011,7 +1068,9 @@

Variable Documentation

- + +

◆ DIR_NAME_DELETED

+
@@ -1024,7 +1083,9 @@

Variable Documentation

- + +

◆ DIR_NAME_FREE

+
@@ -1037,7 +1098,9 @@

Variable Documentation

- + +

◆ DIR_NT_LC_BASE

+
@@ -1050,7 +1113,9 @@

Variable Documentation

- + +

◆ DIR_NT_LC_EXT

+
@@ -1063,7 +1128,9 @@

Variable Documentation

- + +

◆ EXTENDED_BOOT_SIG

+
@@ -1076,7 +1143,9 @@

Variable Documentation

- + +

◆ FAT12EOC

+
@@ -1089,7 +1158,9 @@

Variable Documentation

- + +

◆ FAT12EOC_MIN

+
@@ -1102,7 +1173,9 @@

Variable Documentation

- + +

◆ FAT16EOC

+
@@ -1115,7 +1188,9 @@

Variable Documentation

- + +

◆ FAT16EOC_MIN

+
@@ -1128,7 +1203,9 @@

Variable Documentation

- + +

◆ FAT32EOC

+
@@ -1141,7 +1218,9 @@

Variable Documentation

- + +

◆ FAT32EOC_MIN

+
@@ -1154,7 +1233,9 @@

Variable Documentation

- + +

◆ FAT32MASK

+
@@ -1167,7 +1248,9 @@

Variable Documentation

- + +

◆ FAT_DEFAULT_DATE

+
@@ -1180,7 +1263,9 @@

Variable Documentation

- + +

◆ FAT_DEFAULT_TIME

+
@@ -1193,7 +1278,9 @@

Variable Documentation

- + +

◆ FSINFO_LEAD_SIG

+
@@ -1206,7 +1293,9 @@

Variable Documentation

- + +

◆ FSINFO_STRUCT_SIG

+
@@ -1219,7 +1308,9 @@

Variable Documentation

- + +

◆ LDIR_NAME1_DIM

+
@@ -1232,7 +1323,9 @@

Variable Documentation

- + +

◆ LDIR_NAME2_DIM

+
@@ -1245,7 +1338,9 @@

Variable Documentation

- + +

◆ LDIR_NAME3_DIM

+
@@ -1258,7 +1353,9 @@

Variable Documentation

- + +

◆ LDIR_ORD_LAST_LONG_ENTRY

+
@@ -1274,9 +1371,9 @@

Variable Documentation

diff --git a/extras/html/_fat_structs_8h__dep__incl.png b/extras/html/_fat_structs_8h__dep__incl.png index 716eee93..ca4de392 100644 Binary files a/extras/html/_fat_structs_8h__dep__incl.png and b/extras/html/_fat_structs_8h__dep__incl.png differ diff --git a/extras/html/_fat_volume_8h.html b/extras/html/_fat_volume_8h.html index 86746853..a3805ad1 100644 --- a/extras/html/_fat_volume_8h.html +++ b/extras/html/_fat_volume_8h.html @@ -3,7 +3,8 @@ - + +SdFat: Arduino/libraries/SdFat/src/FatLib/FatVolume.h File Reference @@ -11,9 +12,6 @@ - @@ -31,39 +29,22 @@
- + - - + + + +
- - - - - - + + + + + +
@@ -116,17 +97,18 @@
- - - - - - - - - - - + + + + + + + + + + + +
@@ -149,8 +131,15 @@

Detailed Description

FatVolume class.

+

Copyright (c) 2011-2018 Bill Greiman This file is part of the SdFat library for SD memory cards.

+

MIT License

+

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Typedef Documentation

- + +

◆ print_t

+
@@ -166,9 +155,9 @@ diff --git a/extras/html/_fat_volume_8h__dep__incl.png b/extras/html/_fat_volume_8h__dep__incl.png index 54a2ab2d..0a31b33a 100644 Binary files a/extras/html/_fat_volume_8h__dep__incl.png and b/extras/html/_fat_volume_8h__dep__incl.png differ diff --git a/extras/html/_fat_volume_8h__incl.png b/extras/html/_fat_volume_8h__incl.png index 57b8c851..04bb7313 100644 Binary files a/extras/html/_fat_volume_8h__incl.png and b/extras/html/_fat_volume_8h__incl.png differ diff --git a/extras/html/_free_stack_8h.html b/extras/html/_free_stack_8h.html index 24aeca1b..0c0ea7e0 100644 --- a/extras/html/_free_stack_8h.html +++ b/extras/html/_free_stack_8h.html @@ -3,7 +3,8 @@ - + +SdFat: Arduino/libraries/SdFat/src/FreeStack.h File Reference @@ -11,9 +12,6 @@ - @@ -31,39 +29,22 @@
- + - - + + + +

Detailed Description

FreeStack() function.

+

Copyright (c) 2011-2018 Bill Greiman This file is part of the SdFat library for SD memory cards.

+

MIT License

+

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Function Documentation

- + +

◆ FreeStack()

+
@@ -135,7 +123,9 @@

Variable Documentation

- + +

◆ __brkval

+
@@ -148,7 +138,9 @@

Variable Documentation

- + +

◆ __bss_end

+
@@ -164,9 +156,9 @@

Variable Documentation

diff --git a/extras/html/_minimum_serial_8h.html b/extras/html/_minimum_serial_8h.html index b4bca2cc..8611e5a0 100644 --- a/extras/html/_minimum_serial_8h.html +++ b/extras/html/_minimum_serial_8h.html @@ -3,7 +3,8 @@ - + +SdFat: Arduino/libraries/SdFat/src/MinimumSerial.h File Reference @@ -11,9 +12,6 @@ - @@ -31,39 +29,22 @@
- + - - + + + +

Detailed Description

Minimal AVR Serial driver.

+

Copyright (c) 2011-2018 Bill Greiman This file is part of the SdFat library for SD memory cards.

+

MIT License

+

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

diff --git a/extras/html/_sd_fat_8h.html b/extras/html/_sd_fat_8h.html index b441f47e..a5954009 100644 --- a/extras/html/_sd_fat_8h.html +++ b/extras/html/_sd_fat_8h.html @@ -3,7 +3,8 @@ - + + SdFat: Arduino/libraries/SdFat/src/SdFat.h File Reference @@ -11,9 +12,6 @@ - @@ -31,39 +29,22 @@
- + - - + + + +
class  SdFatSdio  SdFat class using SDIO. More...
  +class  SdFatSdioEXSdFat class using SDIO. More...
+  class  SdFatSoftSpi< MisoPin, MosiPin, SckPin >  SdFat class using software SPI. More...
  @@ -141,31 +125,38 @@ - +

Macros

#define SD_FAT_VERSION   20160905
#define SD_FAT_VERSION   "1.0.11"
 

Detailed Description

SdFat class.

+

Copyright (c) 2011-2018 Bill Greiman This file is part of the SdFat library for SD memory cards.

+

MIT License

+

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Macro Definition Documentation

- + +

◆ SD_FAT_VERSION

+
- +
#define SD_FAT_VERSION   20160905#define SD_FAT_VERSION   "1.0.11"
-

SdFat version YYYYMMDD

+

SdFat version

diff --git a/extras/html/_sd_fat_config_8h.html b/extras/html/_sd_fat_config_8h.html index bc2326d3..7f47cf79 100644 --- a/extras/html/_sd_fat_config_8h.html +++ b/extras/html/_sd_fat_config_8h.html @@ -3,7 +3,8 @@ - + + SdFat: Arduino/libraries/SdFat/src/SdFatConfig.h File Reference @@ -11,9 +12,6 @@ - @@ -31,39 +29,22 @@
- + - - + + + +
configuration definitions More...

-
#include <stdint.h>
+
#include <Arduino.h>
+#include <stdint.h>
Include dependency graph for SdFatConfig.h:
@@ -106,24 +88,27 @@
- - - - - - - - - - - - - + + + + + + + + + + + + + +
+ + @@ -138,10 +123,14 @@ + + + + @@ -157,8 +146,31 @@

Macros

#define CHECK_FLASH_PROGRAMMING   1
 
#define DESTRUCTOR_CLOSES_FILE   0
 
#define ENABLE_EXTENDED_TRANSFER_CLASS   0
 
#define IMPLEMENT_SPI_PORT_SELECTION   0
 
#define INCLUDE_SDIOS   1
 
#define MAINTAIN_FREE_CLUSTER_COUNT   0
 
#define SD_HAS_CUSTOM_SPI   0
 
#define USE_FCNTL_H   0
 
#define USE_LONG_FILE_NAMES   1
 
#define USE_MULTI_BLOCK_IO   1

Detailed Description

configuration definitions

+

Copyright (c) 2011-2018 Bill Greiman This file is part of the SdFat library for SD memory cards.

+

MIT License

+

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Macro Definition Documentation

- + +

◆ CHECK_FLASH_PROGRAMMING

+ +
+
+ + + + +
#define CHECK_FLASH_PROGRAMMING   1
+
+

If CHECK_FLASH_PROGRAMMING is zero, overlap of single sector flash programming and other operations will be allowed for faster write performance.

+

Some cards will not sleep in low power mode unless CHECK_FLASH_PROGRAMMING is non-zero.

+ +
+
+ +

◆ DESTRUCTOR_CLOSES_FILE

+
@@ -172,7 +184,9 @@ - + +

◆ ENABLE_EXTENDED_TRANSFER_CLASS

+
@@ -186,7 +200,9 @@ - + +

◆ ENABLE_SDIO_CLASS

+
@@ -199,7 +215,9 @@ - + +

◆ ENABLE_SOFTWARE_SPI_CLASS

+
@@ -212,7 +230,9 @@ - + +

◆ ENDL_CALLS_FLUSH

+
@@ -229,7 +249,9 @@ - + +

◆ FAT12_SUPPORT

+
@@ -242,7 +264,9 @@ - + +

◆ IMPLEMENT_SPI_PORT_SELECTION

+
@@ -255,7 +279,24 @@ - + +

◆ INCLUDE_SDIOS

+ +
+
+
+ + + +
#define INCLUDE_SDIOS   1
+
+

Set INCLUDE_SDIOS nonzero to include sdios.h in SdFat.h. sdios.h provides C++ style IO Streams.

+ +
+
+ +

◆ MAINTAIN_FREE_CLUSTER_COUNT

+
@@ -268,7 +309,9 @@ - + +

◆ SD_HAS_CUSTOM_SPI

+
@@ -281,7 +324,24 @@ - + +

◆ USE_FCNTL_H

+ +
+
+
+ + + +
#define USE_FCNTL_H   0
+
+

If the symbol USE_FCNTL_H is nonzero, open flags for access modes O_RDONLY, O_WRONLY, O_RDWR and the open modifiers O_APPEND, O_CREAT, O_EXCL, O_SYNC will be defined by including the system file fcntl.h.

+ +
+
+ +

◆ USE_LONG_FILE_NAMES

+
@@ -301,7 +361,9 @@ - + +

◆ USE_MULTI_BLOCK_IO

+
@@ -315,7 +377,9 @@ - + +

◆ USE_SD_CRC

+
@@ -330,7 +394,9 @@ - + +

◆ USE_SEPARATE_FAT_CACHE

+
@@ -343,7 +409,9 @@ - + +

◆ USE_STANDARD_SPI_LIBRARY

+
@@ -352,11 +420,13 @@
-

If the symbol USE_STANDARD_SPI_LIBRARY is nonzero, the classes SdFat and SdFatEX use the standard Arduino SPI.h library. If USE_STANDARD_SPI_LIBRARY is zero, an optimized custom SPI driver is used if it exists.

+

If the symbol USE_STANDARD_SPI_LIBRARY is zero, an optimized custom SPI driver is used if it exists. If the symbol USE_STANDARD_SPI_LIBRARY is one, the standard Arduino SPI.h library is used with SPI. If the symbol USE_STANDARD_SPI_LIBRARY is two, the SPI port can be selected with the constructors SdFat(SPIClass* spiPort) and SdFatEX(SPIClass* spiPort).

- + +

◆ WDT_YIELD_TIME_MICROS

+
@@ -373,9 +443,9 @@ diff --git a/extras/html/_sd_fat_config_8h__dep__incl.png b/extras/html/_sd_fat_config_8h__dep__incl.png index 2d404277..5089a571 100644 Binary files a/extras/html/_sd_fat_config_8h__dep__incl.png and b/extras/html/_sd_fat_config_8h__dep__incl.png differ diff --git a/extras/html/_sd_fat_config_8h__incl.png b/extras/html/_sd_fat_config_8h__incl.png index 39f9b12d..56191eb4 100644 Binary files a/extras/html/_sd_fat_config_8h__incl.png and b/extras/html/_sd_fat_config_8h__incl.png differ diff --git a/extras/html/_sd_spi_card_8h.html b/extras/html/_sd_spi_card_8h.html index cdb1ba28..5052ce60 100644 --- a/extras/html/_sd_spi_card_8h.html +++ b/extras/html/_sd_spi_card_8h.html @@ -3,7 +3,8 @@ - + +SdFat: Arduino/libraries/SdFat/src/SdCard/SdSpiCard.h File Reference @@ -11,9 +12,6 @@ - @@ -31,39 +29,22 @@
- + - - + + + +
- - - - - - - - - - - - - - + + + + + + + + + + + + + + +
@@ -139,12 +121,17 @@

Detailed Description

SdSpiCard class for V2 SD/SDHC cards.

+

Copyright (c) 2011-2018 Bill Greiman This file is part of the SdFat library for SD memory cards.

+

MIT License

+

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

diff --git a/extras/html/_sd_spi_card_8h__dep__incl.png b/extras/html/_sd_spi_card_8h__dep__incl.png index b14e65c6..9c2895d1 100644 Binary files a/extras/html/_sd_spi_card_8h__dep__incl.png and b/extras/html/_sd_spi_card_8h__dep__incl.png differ diff --git a/extras/html/_stdio_stream_8h.html b/extras/html/_stdio_stream_8h.html index b157a410..fedd9e20 100644 --- a/extras/html/_stdio_stream_8h.html +++ b/extras/html/_stdio_stream_8h.html @@ -3,7 +3,8 @@ - + + SdFat: Arduino/libraries/SdFat/src/FatLib/StdioStream.h File Reference @@ -11,9 +12,6 @@ - @@ -31,39 +29,22 @@
- + - - + + + +
- - - - - - - - + + + + + + + +
@@ -142,8 +123,15 @@

Detailed Description

StdioStream class.

+

Copyright (c) 2011-2018 Bill Greiman This file is part of the SdFat library for SD memory cards.

+

MIT License

+

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Macro Definition Documentation

- + +

◆ EOF

+
@@ -156,7 +144,9 @@ - + +

◆ NULL

+
@@ -169,7 +159,9 @@ - + +

◆ SEEK_CUR

+
@@ -182,7 +174,9 @@ - + +

◆ SEEK_END

+
@@ -195,7 +189,9 @@ - + +

◆ SEEK_SET

+
@@ -209,7 +205,9 @@

Variable Documentation

- + +

◆ STREAM_BUF_SIZE

+
@@ -222,7 +220,9 @@

Variable Documentation

- + +

◆ UNGETC_BUF_SIZE

+
@@ -238,9 +238,9 @@

Variable Documentation

diff --git a/extras/html/_stdio_stream_8h__incl.png b/extras/html/_stdio_stream_8h__incl.png index d49df802..83514f2c 100644 Binary files a/extras/html/_stdio_stream_8h__incl.png and b/extras/html/_stdio_stream_8h__incl.png differ diff --git a/extras/html/_sys_call_8h.html b/extras/html/_sys_call_8h.html index f5e65c89..55d63105 100644 --- a/extras/html/_sys_call_8h.html +++ b/extras/html/_sys_call_8h.html @@ -3,7 +3,8 @@ - + +SdFat: Arduino/libraries/SdFat/src/SysCall.h File Reference @@ -11,9 +12,6 @@ - @@ -31,39 +29,22 @@
- + - - + + + +
- - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + +
@@ -137,8 +119,15 @@

Detailed Description

SysCall class.

+

Copyright (c) 2011-2018 Bill Greiman This file is part of the SdFat library for SD memory cards.

+

MIT License

+

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Macro Definition Documentation

- + +

◆ F

+
@@ -156,7 +145,9 @@

Function Documentation

- + +

◆ curTimeMS()

+
@@ -183,9 +174,9 @@

Function Documentation

diff --git a/extras/html/_sys_call_8h__dep__incl.png b/extras/html/_sys_call_8h__dep__incl.png index f63dedae..a1b8d244 100644 Binary files a/extras/html/_sys_call_8h__dep__incl.png and b/extras/html/_sys_call_8h__dep__incl.png differ diff --git a/extras/html/annotated.html b/extras/html/annotated.html index 151eb0e7..53a0efaf 100644 --- a/extras/html/annotated.html +++ b/extras/html/annotated.html @@ -3,7 +3,8 @@ - + +SdFat: Class List @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
 CSdFatMain file system class for SdFat library  CSdFatEXSdFat class with extended SD I/O  CSdFatSdioSdFat class using SDIO - CSdFatSoftSpiSdFat class using software SPI - CSdFatSoftSpiEXSdFat class using software SPI and extended SD I/O - CSdFileClass for backward compatibility - CSdFileSystemVirtual base class for SdFat library - CSdioCardRaw SDIO access to SD and SDHC flash memory cards - CSdSpiCardRaw access to SD and SDHC flash memory cards via SPI protocol - CSdSpiCardEXExtended SD I/O block driver - CsetfillType for setfill manipulator - CsetprecisionType for setprecision manipulator - CsetwType for setw manipulator - CStdioStreamStdioStream implements a minimal stdio stream - CSysCallSysCall - Class to wrap system calls + CSdFatSdioEXSdFat class using SDIO + CSdFatSoftSpiSdFat class using software SPI + CSdFatSoftSpiEXSdFat class using software SPI and extended SD I/O + CSdFileClass for backward compatibility + CSdFileSystemVirtual base class for SdFat library + CSdioCardRaw SDIO access to SD and SDHC flash memory cards + CSdioCardEXExtended SD I/O block driver + CSdSpiCardRaw access to SD and SDHC flash memory cards via SPI protocol + CSdSpiCardEXExtended SD I/O block driver + CsetfillType for setfill manipulator + CsetprecisionType for setprecision manipulator + CsetwType for setw manipulator + CStdioStreamStdioStream implements a minimal stdio stream + CSysCallSysCall - Class to wrap system calls
diff --git a/extras/html/arrowdown.png b/extras/html/arrowdown.png deleted file mode 100644 index 0b63f6d3..00000000 Binary files a/extras/html/arrowdown.png and /dev/null differ diff --git a/extras/html/arrowright.png b/extras/html/arrowright.png deleted file mode 100644 index c6ee22f9..00000000 Binary files a/extras/html/arrowright.png and /dev/null differ diff --git a/extras/html/bufstream_8h.html b/extras/html/bufstream_8h.html index f0daa273..0e708635 100644 --- a/extras/html/bufstream_8h.html +++ b/extras/html/bufstream_8h.html @@ -3,7 +3,8 @@ - + + SdFat: Arduino/libraries/SdFat/src/FatLib/bufstream.h File Reference @@ -11,9 +12,6 @@ - @@ -31,39 +29,22 @@
- + - - + + + +
- - - - - - - - - - - - + + + + + + + + + + + +
@@ -120,7 +101,7 @@
- +
@@ -135,12 +116,17 @@

Detailed Description

ibufstream and obufstream classes

+

Copyright (c) 2011-2018 Bill Greiman This file is part of the SdFat library for SD memory cards.

+

MIT License

+

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

diff --git a/extras/html/bufstream_8h__dep__incl.png b/extras/html/bufstream_8h__dep__incl.png index 34df0328..d7642282 100644 Binary files a/extras/html/bufstream_8h__dep__incl.png and b/extras/html/bufstream_8h__dep__incl.png differ diff --git a/extras/html/bufstream_8h__incl.png b/extras/html/bufstream_8h__incl.png index fa0c87bd..e7e79d65 100644 Binary files a/extras/html/bufstream_8h__incl.png and b/extras/html/bufstream_8h__incl.png differ diff --git a/extras/html/class_arduino_in_stream-members.html b/extras/html/class_arduino_in_stream-members.html index d875aad0..75a36ce0 100644 --- a/extras/html/class_arduino_in_stream-members.html +++ b/extras/html/class_arduino_in_stream-members.html @@ -3,7 +3,8 @@ - + + SdFat: Member List @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@ - + - - + + + +
appios_basestatic ArduinoInStream(Stream &hws, char *buf, size_t size)ArduinoInStreaminline ateios_basestatic - bad() const iosinline + bad() constiosinline badbitios_basestatic basefieldios_basestatic beg enum valueios_base @@ -102,21 +82,21 @@ cur enum valueios_base decios_basestatic end enum valueios_base - eof() const iosinline + eof() constiosinline eofbitios_basestatic - fail() const iosinline + fail() constiosinline failbitios_basestatic fill()ios_baseinline fill(char c)ios_baseinline - flags() const ios_baseinline + flags() constios_baseinline flags(fmtflags fl)ios_baseinline fmtflags typedefios_base - gcount() const istreaminline + gcount() constistreaminline get()istream get(char &ch)istream - get(char *str, streamsize n, char delim= '\n')istream - getline(char *str, streamsize n, char delim= '\n')istream - good() const iosinline + get(char *str, streamsize n, char delim='\n')istream + getline(char *str, streamsize n, char delim='\n')istream + good() constiosinline goodbitios_basestatic hexios_basestatic ibufstream()ibufstreaminline @@ -133,8 +113,8 @@ octios_basestatic off_type typedefios_base openmode typedefios_base - operator const void *() const iosinline - operator!() const iosinline + operator const void *() constiosinline + operator!() constiosinline operator>>(istream &(*pf)(istream &str))istreaminline operator>>(ios_base &(*pf)(ios_base &str))istreaminline operator>>(ios &(*pf)(ios &str))istreaminline @@ -157,9 +137,9 @@ outios_basestatic peek()istream pos_type typedefios_base - precision() const ios_baseinline + precision() constios_baseinline precision(unsigned int n)ios_baseinline - rdstate() const iosinline + rdstate() constiosinline readline()ArduinoInStreaminline rightios_basestatic seekdir enum nameios_base @@ -183,9 +163,9 @@
diff --git a/extras/html/class_arduino_in_stream.html b/extras/html/class_arduino_in_stream.html index 9ece8723..d3aedfa1 100644 --- a/extras/html/class_arduino_in_stream.html +++ b/extras/html/class_arduino_in_stream.html @@ -3,7 +3,8 @@ - + + SdFat: ArduinoInStream Class Reference @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@ - + - - + + + +
enum  seekdir { beg, cur, end - }  - + } +  typedef uint32_t streamsize   @@ -142,42 +122,42 @@ Public Member Functions - - + + - - - - + + + + - - + + - - + + - - - - - - + + + + + + - - - - + + + + @@ -218,12 +198,12 @@ - - + + - - + + @@ -301,7 +281,9 @@

Detailed Description

Input stream for Arduino Stream objects.

Member Typedef Documentation

- + +

◆ fmtflags

+
 ArduinoInStream (Stream &hws, char *buf, size_t size)
 
bool bad () const
 
bool bad () const
 
void clear (iostate state=goodbit)
 
bool eof () const
 
bool fail () const
 
bool eof () const
 
bool fail () const
 
char fill ()
 
char fill (char c)
 
fmtflags flags () const
 
fmtflags flags () const
 
fmtflags flags (fmtflags fl)
 
streamsize gcount () const
 
streamsize gcount () const
 
int get ()
 
istreamget (char &ch)
 
istreamget (char *str, streamsize n, char delim= '\n')
 
istreamgetline (char *str, streamsize n, char delim= '\n')
 
bool good () const
 
istreamget (char *str, streamsize n, char delim='\n')
 
istreamgetline (char *str, streamsize n, char delim='\n')
 
bool good () const
 
istreamignore (streamsize n=1, int delim=-1)
 
void init (const char *str)
 
 operator const void * () const
 
bool operator! () const
 
 operator const void * () const
 
bool operator! () const
 
istreamoperator>> (istream &(*pf)(istream &str))
 
istreamoperator>> (ios_base &(*pf)(ios_base &str))
 
int peek ()
 
int precision () const
 
int precision () const
 
int precision (unsigned int n)
 
iostate rdstate () const
 
iostate rdstate () const
 
void readline ()
 
istreamseekg (pos_type pos)
@@ -322,7 +304,9 @@ - + +

◆ iostate

+
@@ -343,7 +327,9 @@ - + +

◆ off_type

+
@@ -364,7 +350,9 @@ - + +

◆ openmode

+
@@ -385,7 +373,9 @@ - + +

◆ pos_type

+
@@ -406,7 +396,9 @@ - + +

◆ streamsize

+
@@ -428,7 +420,9 @@

Member Enumeration Documentation

- + +

◆ seekdir

+
@@ -447,21 +441,20 @@

Member Enumeration Documentation

enumerated type for the direction of relative seeks

- - -
Enumerator
beg  -

seek relative to the beginning of the stream

+
Enumerator
beg 

seek relative to the beginning of the stream

cur  -

seek relative to the current stream position

+
cur 

seek relative to the current stream position

end  -

seek relative to the end of the stream

+
end 

seek relative to the end of the stream

Constructor & Destructor Documentation

- + +

◆ ArduinoInStream()

+
@@ -510,7 +503,9 @@

Constructor & Destructor Documentation

Member Function Documentation

- + +

◆ bad()

+
@@ -534,7 +529,9 @@

Member Function Documentation

- + +

◆ clear()

+
@@ -565,7 +562,9 @@

Member Function Documentation

- + +

◆ eof()

+
@@ -587,11 +586,13 @@

Member Function Documentation

Returns
true if end of file has been reached else false.

Warning: An empty file returns false before the first read.

-

Moral: eof() is only useful in combination with fail(), to find out whether EOF was the cause for failure

+

Moral: eof() is only useful in combination with fail(), to find out whether EOF was the cause for failure

- + +

◆ fail()

+
@@ -615,7 +616,9 @@

Member Function Documentation

- + +

◆ fill() [1/2]

+
@@ -639,7 +642,9 @@

Member Function Documentation

- + +

◆ fill() [2/2]

+
@@ -670,7 +675,9 @@

Member Function Documentation

- + +

◆ flags() [1/2]

+
@@ -694,7 +701,9 @@

Member Function Documentation

- + +

◆ flags() [2/2]

+
@@ -725,7 +734,9 @@

Member Function Documentation

- + +

◆ gcount()

+
@@ -749,7 +760,9 @@

Member Function Documentation

- + +

◆ get() [1/3]

+
@@ -770,11 +783,18 @@

Member Function Documentation

Extract a character if one is available.

-
Returns
The character or -1 if a failure occurs. A failure is indicated by the stream state.
+
Returns
The character or -1 if a failure occurs. A failure is indicated by the stream state.
+

Copyright (c) 2011-2018 Bill Greiman This file is part of the SdFat library for SD memory cards.

+

MIT License

+

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

- + +

◆ get() [2/3]

+
@@ -806,7 +826,9 @@

Member Function Documentation

- + +

◆ get() [3/3]

+
@@ -857,7 +879,9 @@

Member Function Documentation

- + +

◆ getline()

+
@@ -909,7 +933,9 @@

Member Function Documentation

- + +

◆ good()

+
@@ -933,7 +959,9 @@

Member Function Documentation

- + +

◆ ignore()

+
@@ -978,7 +1006,9 @@

Member Function Documentation

- + +

◆ init()

+
@@ -1008,7 +1038,9 @@

Member Function Documentation

- + +

◆ operator const void *()

+
@@ -1028,11 +1060,13 @@

Member Function Documentation

-
Returns
null pointer if fail() is true.
+
Returns
null pointer if fail() is true.
- + +

◆ operator!()

+
@@ -1052,11 +1086,13 @@

Member Function Documentation

-
Returns
true if fail() else false.
+
Returns
true if fail() else false.
- + +

◆ operator>>() [1/19]

+
@@ -1087,7 +1123,9 @@

Member Function Documentation

- + +

◆ operator>>() [2/19]

+
@@ -1118,7 +1156,9 @@

Member Function Documentation

- + +

◆ operator>>() [3/19]

+
@@ -1149,7 +1189,9 @@

Member Function Documentation

- + +

◆ operator>>() [4/19]

+
@@ -1180,7 +1222,9 @@

Member Function Documentation

- + +

◆ operator>>() [5/19]

+
@@ -1211,7 +1255,9 @@

Member Function Documentation

- + +

◆ operator>>() [6/19]

+
@@ -1242,7 +1288,9 @@

Member Function Documentation

- + +

◆ operator>>() [7/19]

+
@@ -1273,7 +1321,9 @@

Member Function Documentation

- + +

◆ operator>>() [8/19]

+
@@ -1304,7 +1354,9 @@

Member Function Documentation

- + +

◆ operator>>() [9/19]

+
@@ -1335,7 +1387,9 @@

Member Function Documentation

- + +

◆ operator>>() [10/19]

+
@@ -1366,7 +1420,9 @@

Member Function Documentation

- + +

◆ operator>>() [11/19]

+
@@ -1397,7 +1453,9 @@

Member Function Documentation

- + +

◆ operator>>() [12/19]

+
@@ -1428,7 +1486,9 @@

Member Function Documentation

- + +

◆ operator>>() [13/19]

+
@@ -1459,7 +1519,9 @@

Member Function Documentation

- + +

◆ operator>>() [14/19]

+
@@ -1490,7 +1552,9 @@

Member Function Documentation

- + +

◆ operator>>() [15/19]

+
@@ -1521,7 +1585,9 @@

Member Function Documentation

- + +

◆ operator>>() [16/19]

+
@@ -1552,7 +1618,9 @@

Member Function Documentation

- + +

◆ operator>>() [17/19]

+
@@ -1583,7 +1651,9 @@

Member Function Documentation

- + +

◆ operator>>() [18/19]

+
@@ -1614,7 +1684,9 @@

Member Function Documentation

- + +

◆ operator>>() [19/19]

+
@@ -1645,7 +1717,9 @@

Member Function Documentation

- + +

◆ peek()

+
@@ -1670,7 +1744,9 @@

Member Function Documentation

- + +

◆ precision() [1/2]

+
@@ -1694,7 +1770,9 @@

Member Function Documentation

- + +

◆ precision() [2/2]

+
@@ -1725,7 +1803,9 @@

Member Function Documentation

- + +

◆ rdstate()

+
@@ -1749,7 +1829,9 @@

Member Function Documentation

- + +

◆ readline()

+
@@ -1773,7 +1855,9 @@

Member Function Documentation

- + +

◆ seekg() [1/2]

+
@@ -1804,7 +1888,9 @@

Member Function Documentation

- + +

◆ seekg() [2/2]

+
@@ -1847,7 +1933,9 @@

Member Function Documentation

- + +

◆ setf() [1/2]

+
@@ -1878,7 +1966,9 @@

Member Function Documentation

- + +

◆ setf() [2/2]

+
@@ -1920,7 +2010,9 @@

Member Function Documentation

- + +

◆ setstate()

+
@@ -1951,7 +2043,9 @@

Member Function Documentation

- + +

◆ skipWhite()

+
@@ -1975,7 +2069,9 @@

Member Function Documentation

- + +

◆ tellg()

+
@@ -1999,7 +2095,9 @@

Member Function Documentation

- + +

◆ unsetf()

+
@@ -2030,7 +2128,9 @@

Member Function Documentation

- + +

◆ width() [1/2]

+
@@ -2054,7 +2154,9 @@

Member Function Documentation

- + +

◆ width() [2/2]

+
@@ -2086,7 +2188,9 @@

Member Function Documentation

Member Data Documentation

- + +

◆ adjustfield

+
@@ -2107,7 +2211,9 @@

Member Data Documentation

- + +

◆ app

+
@@ -2128,7 +2234,9 @@

Member Data Documentation

- + +

◆ ate

+
@@ -2149,7 +2257,9 @@

Member Data Documentation

- + +

◆ badbit

+
@@ -2170,7 +2280,9 @@

Member Data Documentation

- + +

◆ basefield

+
@@ -2191,7 +2303,9 @@

Member Data Documentation

- + +

◆ binary

+
@@ -2212,7 +2326,9 @@

Member Data Documentation

- + +

◆ boolalpha

+
@@ -2233,7 +2349,9 @@

Member Data Documentation

- + +

◆ dec

+
@@ -2254,7 +2372,9 @@

Member Data Documentation

- + +

◆ eofbit

+
@@ -2275,7 +2395,9 @@

Member Data Documentation

- + +

◆ failbit

+
@@ -2296,7 +2418,9 @@

Member Data Documentation

- + +

◆ goodbit

+
@@ -2317,7 +2441,9 @@

Member Data Documentation

- + +

◆ hex

+
@@ -2338,7 +2464,9 @@

Member Data Documentation

- + +

◆ in

+
@@ -2359,7 +2487,9 @@

Member Data Documentation

- + +

◆ internal

+
@@ -2380,7 +2510,9 @@

Member Data Documentation

- + +

◆ left

+
@@ -2401,7 +2533,9 @@

Member Data Documentation

- + +

◆ oct

+
@@ -2422,7 +2556,9 @@

Member Data Documentation

- + +

◆ out

+
@@ -2443,7 +2579,9 @@

Member Data Documentation

- + +

◆ right

+
@@ -2464,7 +2602,9 @@

Member Data Documentation

- + +

◆ showbase

+
@@ -2485,7 +2625,9 @@

Member Data Documentation

- + +

◆ showpoint

+
@@ -2506,7 +2648,9 @@

Member Data Documentation

- + +

◆ showpos

+
@@ -2527,7 +2671,9 @@

Member Data Documentation

- + +

◆ skipws

+
@@ -2548,7 +2694,9 @@

Member Data Documentation

- + +

◆ trunc

+
@@ -2569,7 +2717,9 @@

Member Data Documentation

- + +

◆ uppercase

+
@@ -2596,9 +2746,9 @@

Member Data Documentation

diff --git a/extras/html/class_arduino_out_stream-members.html b/extras/html/class_arduino_out_stream-members.html index e96250f5..bba93a65 100644 --- a/extras/html/class_arduino_out_stream-members.html +++ b/extras/html/class_arduino_out_stream-members.html @@ -3,7 +3,8 @@ - + +SdFat: Member List @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
appios_basestatic ArduinoOutStream(Print &pr)ArduinoOutStreaminlineexplicit ateios_basestatic - bad() const iosinline + bad() constiosinline badbitios_basestatic basefieldios_basestatic beg enum valueios_base @@ -102,17 +82,17 @@ cur enum valueios_base decios_basestatic end enum valueios_base - eof() const iosinline + eof() constiosinline eofbitios_basestatic - fail() const iosinline + fail() constiosinline failbitios_basestatic fill()ios_baseinline fill(char c)ios_baseinline - flags() const ios_baseinline + flags() constios_baseinline flags(fmtflags fl)ios_baseinline flush()ostreaminline fmtflags typedefios_base - good() const iosinline + good() constiosinline goodbitios_basestatic hexios_basestatic inios_basestatic @@ -124,8 +104,8 @@ octios_basestatic off_type typedefios_base openmode typedefios_base - operator const void *() const iosinline - operator!() const iosinline + operator const void *() constiosinline + operator!() constiosinline operator<<(ostream &(*pf)(ostream &str))ostreaminline operator<<(ios_base &(*pf)(ios_base &str))ostreaminline operator<<(bool arg)ostreaminline @@ -148,10 +128,10 @@ ostream() (defined in ostream)ostreaminline outios_basestatic pos_type typedefios_base - precision() const ios_baseinline + precision() constios_baseinline precision(unsigned int n)ios_baseinline put(char ch)ostreaminline - rdstate() const iosinline + rdstate() constiosinline rightios_basestatic seekdir enum nameios_base seekp(pos_type pos)ostreaminline @@ -173,9 +153,9 @@
diff --git a/extras/html/class_arduino_out_stream.html b/extras/html/class_arduino_out_stream.html index badb5a37..2e6d110f 100644 --- a/extras/html/class_arduino_out_stream.html +++ b/extras/html/class_arduino_out_stream.html @@ -3,7 +3,8 @@ - + + SdFat: ArduinoOutStream Class Reference @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
enum  seekdir { beg, cur, end - }  - + } +  typedef uint32_t streamsize   @@ -140,30 +120,30 @@ Public Member Functions - - + + - - - - + + + + - - + + - - - - - - + + + + + + @@ -202,14 +182,14 @@ - - + + - - + + @@ -283,7 +263,9 @@

Detailed Description

Output stream for Arduino Print objects.

Member Typedef Documentation

- + +

◆ fmtflags

+
 ArduinoOutStream (Print &pr)
 
bool bad () const
 
bool bad () const
 
void clear (iostate state=goodbit)
 
bool eof () const
 
bool fail () const
 
bool eof () const
 
bool fail () const
 
char fill ()
 
char fill (char c)
 
fmtflags flags () const
 
fmtflags flags () const
 
fmtflags flags (fmtflags fl)
 
ostreamflush ()
 
bool good () const
 
 operator const void * () const
 
bool operator! () const
 
bool good () const
 
 operator const void * () const
 
bool operator! () const
 
ostreamoperator<< (ostream &(*pf)(ostream &str))
 
ostreamoperator<< (ios_base &(*pf)(ios_base &str))
 
ostreamoperator<< (const __FlashStringHelper *arg)
 
int precision () const
 
int precision () const
 
int precision (unsigned int n)
 
ostreamput (char ch)
 
iostate rdstate () const
 
iostate rdstate () const
 
ostreamseekp (pos_type pos)
 
ostreamseekp (off_type off, seekdir way)
@@ -304,7 +286,9 @@ - + +

◆ iostate

+
@@ -325,7 +309,9 @@ - + +

◆ off_type

+
@@ -346,7 +332,9 @@ - + +

◆ openmode

+
@@ -367,7 +355,9 @@ - + +

◆ pos_type

+
@@ -388,7 +378,9 @@ - + +

◆ streamsize

+
@@ -410,7 +402,9 @@

Member Enumeration Documentation

- + +

◆ seekdir

+
@@ -429,21 +423,20 @@

Member Enumeration Documentation

enumerated type for the direction of relative seeks

- - -
Enumerator
beg  -

seek relative to the beginning of the stream

+
Enumerator
beg 

seek relative to the beginning of the stream

cur  -

seek relative to the current stream position

+
cur 

seek relative to the current stream position

end  -

seek relative to the end of the stream

+
end 

seek relative to the end of the stream

Constructor & Destructor Documentation

- + +

◆ ArduinoOutStream()

+
@@ -475,7 +468,9 @@

Constructor & Destructor Documentation

Member Function Documentation

- + +

◆ bad()

+
@@ -499,7 +494,9 @@

Member Function Documentation

- + +

◆ clear()

+
@@ -530,7 +527,9 @@

Member Function Documentation

- + +

◆ eof()

+
@@ -552,11 +551,13 @@

Member Function Documentation

Returns
true if end of file has been reached else false.

Warning: An empty file returns false before the first read.

-

Moral: eof() is only useful in combination with fail(), to find out whether EOF was the cause for failure

+

Moral: eof() is only useful in combination with fail(), to find out whether EOF was the cause for failure

- + +

◆ fail()

+
@@ -580,7 +581,9 @@

Member Function Documentation

- + +

◆ fill() [1/2]

+
@@ -604,7 +607,9 @@

Member Function Documentation

- + +

◆ fill() [2/2]

+
@@ -635,7 +640,9 @@

Member Function Documentation

- + +

◆ flags() [1/2]

+
@@ -659,7 +666,9 @@

Member Function Documentation

- + +

◆ flags() [2/2]

+
@@ -690,7 +699,9 @@

Member Function Documentation

- + +

◆ flush()

+
@@ -714,7 +725,9 @@

Member Function Documentation

- + +

◆ good()

+
@@ -738,7 +751,9 @@

Member Function Documentation

- + +

◆ operator const void *()

+
@@ -758,11 +773,13 @@

Member Function Documentation

-
Returns
null pointer if fail() is true.
+
Returns
null pointer if fail() is true.
- + +

◆ operator!()

+
@@ -782,11 +799,13 @@

Member Function Documentation

-
Returns
true if fail() else false.
+
Returns
true if fail() else false.
- + +

◆ operator<<() [1/19]

+
@@ -817,7 +836,9 @@

Member Function Documentation

- + +

◆ operator<<() [2/19]

+
@@ -848,7 +869,9 @@

Member Function Documentation

- + +

◆ operator<<() [3/19]

+
@@ -879,7 +902,9 @@

Member Function Documentation

- + +

◆ operator<<() [4/19]

+
@@ -910,7 +935,9 @@

Member Function Documentation

- + +

◆ operator<<() [5/19]

+
@@ -941,7 +968,9 @@

Member Function Documentation

- + +

◆ operator<<() [6/19]

+
@@ -972,7 +1001,9 @@

Member Function Documentation

- + +

◆ operator<<() [7/19]

+
@@ -1003,7 +1034,9 @@

Member Function Documentation

- + +

◆ operator<<() [8/19]

+
@@ -1034,7 +1067,9 @@

Member Function Documentation

- + +

◆ operator<<() [9/19]

+
@@ -1065,7 +1100,9 @@

Member Function Documentation

- + +

◆ operator<<() [10/19]

+
@@ -1096,7 +1133,9 @@

Member Function Documentation

- + +

◆ operator<<() [11/19]

+
@@ -1127,7 +1166,9 @@

Member Function Documentation

- + +

◆ operator<<() [12/19]

+
@@ -1158,7 +1199,9 @@

Member Function Documentation

- + +

◆ operator<<() [13/19]

+
@@ -1189,7 +1232,9 @@

Member Function Documentation

- + +

◆ operator<<() [14/19]

+
@@ -1220,7 +1265,9 @@

Member Function Documentation

- + +

◆ operator<<() [15/19]

+
@@ -1251,7 +1298,9 @@

Member Function Documentation

- + +

◆ operator<<() [16/19]

+
@@ -1282,7 +1331,9 @@

Member Function Documentation

- + +

◆ operator<<() [17/19]

+
@@ -1313,7 +1364,9 @@

Member Function Documentation

- + +

◆ operator<<() [18/19]

+
@@ -1344,7 +1397,9 @@

Member Function Documentation

- + +

◆ operator<<() [19/19]

+
@@ -1375,7 +1430,9 @@

Member Function Documentation

- + +

◆ precision() [1/2]

+
@@ -1399,7 +1456,9 @@

Member Function Documentation

- + +

◆ precision() [2/2]

+
@@ -1430,7 +1489,9 @@

Member Function Documentation

- + +

◆ put()

+
@@ -1463,7 +1524,9 @@

Member Function Documentation

- + +

◆ rdstate()

+
@@ -1487,7 +1550,9 @@

Member Function Documentation

- + +

◆ seekp() [1/2]

+
@@ -1518,7 +1583,9 @@

Member Function Documentation

- + +

◆ seekp() [2/2]

+
@@ -1561,7 +1628,9 @@

Member Function Documentation

- + +

◆ setf() [1/2]

+
@@ -1592,7 +1661,9 @@

Member Function Documentation

- + +

◆ setf() [2/2]

+
@@ -1634,7 +1705,9 @@

Member Function Documentation

- + +

◆ setstate()

+
@@ -1665,7 +1738,9 @@

Member Function Documentation

- + +

◆ tellp()

+
@@ -1689,7 +1764,9 @@

Member Function Documentation

- + +

◆ unsetf()

+
@@ -1720,7 +1797,9 @@

Member Function Documentation

- + +

◆ width() [1/2]

+
@@ -1744,7 +1823,9 @@

Member Function Documentation

- + +

◆ width() [2/2]

+
@@ -1776,7 +1857,9 @@

Member Function Documentation

Member Data Documentation

- + +

◆ adjustfield

+
@@ -1797,7 +1880,9 @@

Member Data Documentation

- + +

◆ app

+
@@ -1818,7 +1903,9 @@

Member Data Documentation

- + +

◆ ate

+
@@ -1839,7 +1926,9 @@

Member Data Documentation

- + +

◆ badbit

+
@@ -1860,7 +1949,9 @@

Member Data Documentation

- + +

◆ basefield

+
@@ -1881,7 +1972,9 @@

Member Data Documentation

- + +

◆ binary

+
@@ -1902,7 +1995,9 @@

Member Data Documentation

- + +

◆ boolalpha

+
@@ -1923,7 +2018,9 @@

Member Data Documentation

- + +

◆ dec

+
@@ -1944,7 +2041,9 @@

Member Data Documentation

- + +

◆ eofbit

+
@@ -1965,7 +2064,9 @@

Member Data Documentation

- + +

◆ failbit

+
@@ -1986,7 +2087,9 @@

Member Data Documentation

- + +

◆ goodbit

+
@@ -2007,7 +2110,9 @@

Member Data Documentation

- + +

◆ hex

+
@@ -2028,7 +2133,9 @@

Member Data Documentation

- + +

◆ in

+
@@ -2049,7 +2156,9 @@

Member Data Documentation

- + +

◆ internal

+
@@ -2070,7 +2179,9 @@

Member Data Documentation

- + +

◆ left

+
@@ -2091,7 +2202,9 @@

Member Data Documentation

- + +

◆ oct

+
@@ -2112,7 +2225,9 @@

Member Data Documentation

- + +

◆ out

+
@@ -2133,7 +2248,9 @@

Member Data Documentation

- + +

◆ right

+
@@ -2154,7 +2271,9 @@

Member Data Documentation

- + +

◆ showbase

+
@@ -2175,7 +2294,9 @@

Member Data Documentation

- + +

◆ showpoint

+
@@ -2196,7 +2317,9 @@

Member Data Documentation

- + +

◆ showpos

+
@@ -2217,7 +2340,9 @@

Member Data Documentation

- + +

◆ skipws

+
@@ -2238,7 +2363,9 @@

Member Data Documentation

- + +

◆ trunc

+
@@ -2259,7 +2386,9 @@

Member Data Documentation

- + +

◆ uppercase

+
@@ -2286,9 +2415,9 @@

Member Data Documentation

diff --git a/extras/html/class_base_block_driver-members.html b/extras/html/class_base_block_driver-members.html index 4c8c0796..47e33bfc 100644 --- a/extras/html/class_base_block_driver-members.html +++ b/extras/html/class_base_block_driver-members.html @@ -3,7 +3,8 @@ - + +SdFat: Member List @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
diff --git a/extras/html/class_base_block_driver.html b/extras/html/class_base_block_driver.html index 2e54e056..b02f5cc7 100644 --- a/extras/html/class_base_block_driver.html +++ b/extras/html/class_base_block_driver.html @@ -3,7 +3,8 @@ - + + SdFat: BaseBlockDriver Class Reference @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
Inheritance graph
+
[legend]
@@ -117,8 +98,15 @@

Detailed Description

Base block driver.

+

Copyright (c) 2011-2018 Bill Greiman This file is part of the SdFat library for SD memory cards.

+

MIT License

+

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Member Function Documentation

- + +

◆ readBlock()

+
@@ -159,11 +147,13 @@
Returns
The value true is returned for success and the value false is returned for failure.
-

Implemented in SdioCard.

+

Implemented in SdioCardEX, and SdioCard.

- + +

◆ readBlocks()

+
@@ -211,11 +201,13 @@
Returns
The value true is returned for success and the value false is returned for failure.
-

Implemented in SdioCard.

+

Implemented in SdioCardEX, and SdioCard.

- + +

◆ syncBlocks()

+
@@ -237,11 +229,13 @@

End multi-block transfer and go to idle state.

Returns
The value true is returned for success and the value false is returned for failure.
-

Implemented in SdioCard.

+

Implemented in SdioCardEX, and SdioCard.

- + +

◆ writeBlock()

+
@@ -282,11 +276,13 @@
Returns
The value true is returned for success and the value false is returned for failure.
-

Implemented in SdioCard.

+

Implemented in SdioCardEX, and SdioCard.

- + +

◆ writeBlocks()

+
@@ -334,7 +330,7 @@
Returns
The value true is returned for success and the value false is returned for failure.
-

Implemented in SdioCard.

+

Implemented in SdioCardEX, and SdioCard.

@@ -344,9 +340,9 @@ diff --git a/extras/html/class_base_block_driver__inherit__graph.png b/extras/html/class_base_block_driver__inherit__graph.png index 1a36e514..3b26755a 100644 Binary files a/extras/html/class_base_block_driver__inherit__graph.png and b/extras/html/class_base_block_driver__inherit__graph.png differ diff --git a/extras/html/class_fat_cache-members.html b/extras/html/class_fat_cache-members.html index e9b5f48e..d543b251 100644 --- a/extras/html/class_fat_cache-members.html +++ b/extras/html/class_fat_cache-members.html @@ -3,7 +3,8 @@ - + +SdFat: Member List @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
dirty()FatCacheinline init(FatVolume *vol)FatCacheinline invalidate()FatCacheinline - lbn()FatCacheinline - read(uint32_t lbn, uint8_t option)FatCache - sync()FatCache + isDirty()FatCacheinline + lbn()FatCacheinline + read(uint32_t lbn, uint8_t option)FatCache + sync()FatCache
diff --git a/extras/html/class_fat_cache.html b/extras/html/class_fat_cache.html index 2ba6879d..c90823ca 100644 --- a/extras/html/class_fat_cache.html +++ b/extras/html/class_fat_cache.html @@ -3,7 +3,8 @@ - + + SdFat: FatCache Class Reference @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
  void invalidate ()   +bool isDirty () +  uint32_t lbn ()   cache_tread (uint32_t lbn, uint8_t option) @@ -132,7 +114,9 @@

Detailed Description

Block cache.

Member Function Documentation

- + +

◆ block()

+
@@ -156,7 +140,9 @@ - + +

◆ dirty()

+
@@ -180,7 +166,9 @@ - + +

◆ init()

+
@@ -210,7 +198,9 @@ - + +

◆ invalidate()

+
@@ -234,7 +224,35 @@ - + +

◆ isDirty()

+ +
+
+
+ + + + +
+ + + + + + + +
bool FatCache::isDirty ()
+
+inline
+
+
Returns
dirty status
+ +
+
+ +

◆ lbn()

+
@@ -258,7 +276,9 @@ - + +

◆ read()

+
@@ -288,11 +308,18 @@
-
Returns
Address of cached block.
+
Returns
Address of cached block.
+

Copyright (c) 2011-2018 Bill Greiman This file is part of the SdFat library for SD memory cards.

+

MIT License

+

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

- + +

◆ sync()

+
@@ -309,7 +336,9 @@

Member Data Documentation

- + +

◆ CACHE_FOR_READ

+
@@ -330,7 +359,9 @@

Member Data Documentation

- + +

◆ CACHE_FOR_WRITE

+
@@ -351,7 +382,9 @@

Member Data Documentation

- + +

◆ CACHE_OPTION_NO_READ

+
@@ -372,7 +405,9 @@

Member Data Documentation

- + +

◆ CACHE_RESERVE_FOR_WRITE

+
@@ -393,7 +428,9 @@

Member Data Documentation

- + +

◆ CACHE_STATUS_DIRTY

+
@@ -414,7 +451,9 @@

Member Data Documentation

- + +

◆ CACHE_STATUS_MASK

+
@@ -435,7 +474,9 @@

Member Data Documentation

- + +

◆ CACHE_STATUS_MIRROR_FAT

+
@@ -463,9 +504,9 @@

Member Data Documentation

diff --git a/extras/html/class_fat_file-members.html b/extras/html/class_fat_file-members.html index 77345d18..ef4d223c 100644 --- a/extras/html/class_fat_file-members.html +++ b/extras/html/class_fat_file-members.html @@ -3,7 +3,8 @@ - + +SdFat: Member List @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
contiguousRange(uint32_t *bgnBlock, uint32_t *endBlock)FatFile createContiguous(FatFile *dirFile, const char *path, uint32_t size)FatFile createContiguous(const char *path, uint32_t size)FatFileinline - curCluster() const FatFileinline - curPosition() const FatFileinline + curCluster() constFatFileinline + curPosition() constFatFileinline cwd()FatFileinlinestatic dateTimeCallback(void(*dateTime)(uint16_t *date, uint16_t *time))FatFileinlinestatic dateTimeCallbackCancel()FatFileinlinestatic @@ -107,37 +87,37 @@ dmpFile(print_t *pr, uint32_t pos, size_t n)FatFile exists(const char *path)FatFileinline FatFile()FatFileinline - FatFile(const char *path, uint8_t oflag)FatFileinline + FatFile(const char *path, oflag_t oflag)FatFileinline fgets(char *str, int16_t num, char *delim=0)FatFile - fileAttr() const FatFileinline - fileSize() const FatFileinline + fileAttr() constFatFileinline + fileSize() constFatFileinline firstBlock()FatFileinline - firstCluster() const FatFileinline + firstCluster() constFatFileinline getError()FatFileinline getName(char *name, size_t size)FatFile getpos(FatPos_t *pos)FatFile getSFN(char *name)FatFile getWriteError()FatFileinline - isDir() const FatFileinline - isFile() const FatFileinline - isHidden() const FatFileinline - isLFN() const FatFileinline - isOpen() const FatFileinline - isReadOnly() const FatFileinline - isRoot() const FatFileinline - isRoot32() const FatFileinline - isRootFixed() const FatFileinline - isSubDir() const FatFileinline - isSystem() const FatFileinline + isDir() constFatFileinline + isFile() constFatFileinline + isHidden() constFatFileinline + isLFN() constFatFileinline + isOpen() constFatFileinline + isReadOnly() constFatFileinline + isRoot() constFatFileinline + isRoot32() constFatFileinline + isRootFixed() constFatFileinline + isSubDir() constFatFileinline + isSystem() constFatFileinline legal83Char(uint8_t c)FatFileinlinestatic ls(uint8_t flags=0)FatFileinline ls(print_t *pr, uint8_t flags=0, uint8_t indent=0)FatFile mkdir(FatFile *dir, const char *path, bool pFlag=true)FatFile - open(FatFileSystem *fs, const char *path, uint8_t oflag)FatFile - open(FatFile *dirFile, uint16_t index, uint8_t oflag)FatFile - open(FatFile *dirFile, const char *path, uint8_t oflag)FatFile - open(const char *path, uint8_t oflag=O_READ)FatFileinline - openNext(FatFile *dirFile, uint8_t oflag=O_READ)FatFile + open(FatFileSystem *fs, const char *path, oflag_t oflag)FatFile + open(FatFile *dirFile, uint16_t index, oflag_t oflag)FatFile + open(FatFile *dirFile, const char *path, oflag_t oflag)FatFile + open(const char *path, oflag_t oflag=O_RDONLY)FatFileinline + openNext(FatFile *dirFile, oflag_t oflag=O_RDONLY)FatFile openRoot(FatVolume *vol)FatFile peek()FatFile printCreateDateTime(print_t *pr)FatFile @@ -173,16 +153,16 @@ timestamp(FatFile *file)FatFile timestamp(uint8_t flags, uint16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second)FatFile truncate(uint32_t length)FatFile - volume() const FatFileinline + volume() constFatFileinline write(const char *str)FatFileinline write(uint8_t b)FatFileinline write(const void *buf, size_t nbyte)FatFile
diff --git a/extras/html/class_fat_file.html b/extras/html/class_fat_file.html index e9b283fb..4cb59424 100644 --- a/extras/html/class_fat_file.html +++ b/extras/html/class_fat_file.html @@ -3,7 +3,8 @@ - + + SdFat: FatFile Class Reference @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
  bool createContiguous (const char *path, uint32_t size)   -uint32_t curCluster () const -  -uint32_t curPosition () const -  +uint32_t curCluster () const +  +uint32_t curPosition () const +  bool dirEntry (dir_t *dir)   uint16_t dirIndex () @@ -143,18 +123,18 @@    FatFile ()   - FatFile (const char *path, uint8_t oflag) -  + FatFile (const char *path, oflag_t oflag) +  int16_t fgets (char *str, int16_t num, char *delim=0)   -uint8_t fileAttr () const -  -uint32_t fileSize () const -  +uint8_t fileAttr () const +  +uint32_t fileSize () const +  uint32_t firstBlock ()   -uint32_t firstCluster () const -  +uint32_t firstCluster () const +  uint8_t getError ()   bool getName (char *name, size_t size) @@ -165,44 +145,44 @@   bool getWriteError ()   -bool isDir () const -  -bool isFile () const -  -bool isHidden () const -  -bool isLFN () const -  -bool isOpen () const -  -bool isReadOnly () const -  -bool isRoot () const -  -bool isRoot32 () const -  -bool isRootFixed () const -  -bool isSubDir () const -  -bool isSystem () const -  +bool isDir () const +  +bool isFile () const +  +bool isHidden () const +  +bool isLFN () const +  +bool isOpen () const +  +bool isReadOnly () const +  +bool isRoot () const +  +bool isRoot32 () const +  +bool isRootFixed () const +  +bool isSubDir () const +  +bool isSystem () const +  void ls (uint8_t flags=0)   void ls (print_t *pr, uint8_t flags=0, uint8_t indent=0)   bool mkdir (FatFile *dir, const char *path, bool pFlag=true)   -bool open (FatFileSystem *fs, const char *path, uint8_t oflag) -  -bool open (FatFile *dirFile, uint16_t index, uint8_t oflag) -  -bool open (FatFile *dirFile, const char *path, uint8_t oflag) -  -bool open (const char *path, uint8_t oflag=O_READ) -  -bool openNext (FatFile *dirFile, uint8_t oflag=O_READ) -  +bool open (FatFileSystem *fs, const char *path, oflag_t oflag) +  +bool open (FatFile *dirFile, uint16_t index, oflag_t oflag) +  +bool open (FatFile *dirFile, const char *path, oflag_t oflag) +  +bool open (const char *path, oflag_t oflag=O_RDONLY) +  +bool openNext (FatFile *dirFile, oflag_t oflag=O_RDONLY) +  bool openRoot (FatVolume *vol)   int peek () @@ -261,8 +241,8 @@   bool truncate (uint32_t length)   -FatVolumevolume () const -  +FatVolumevolume () const +  int write (const char *str)   int write (uint8_t b) @@ -298,7 +278,9 @@

Detailed Description

Basic file class.

Constructor & Destructor Documentation

- + +

◆ FatFile() [1/2]

+
@@ -322,7 +304,9 @@ - + +

◆ FatFile() [2/2]

+
@@ -338,7 +322,7 @@ - + @@ -357,7 +341,7 @@
Parameters
uint8_t oflag_t  oflag 
- +
[in]pathA path with a valid 8.3 DOS name for a file to be opened.
[in]oflagValues for oflag are constructed by a bitwise-inclusive OR of open flags. see FatFile::open(FatFile*, const char*, uint8_t).
[in]oflagValues for oflag are constructed by a bitwise-inclusive OR of open flags. see FatFile::open(FatFile*, const char*, oflag_t).
@@ -365,7 +349,9 @@

Member Function Documentation

- + +

◆ available()

+
@@ -389,7 +375,9 @@

Member Function Documentation

- + +

◆ clearError()

+
@@ -413,7 +401,9 @@

Member Function Documentation

- + +

◆ clearWriteError()

+
@@ -437,7 +427,9 @@

Member Function Documentation

- + +

◆ close()

+
@@ -454,7 +446,9 @@

Member Function Documentation

- + +

◆ contiguousRange()

+
@@ -489,7 +483,9 @@

Member Function Documentation

- + +

◆ createContiguous() [1/2]

+
@@ -531,7 +527,9 @@

Member Function Documentation

- + +

◆ createContiguous() [2/2]

+
@@ -574,7 +572,9 @@

Member Function Documentation

- + +

◆ curCluster()

+
@@ -598,7 +598,9 @@

Member Function Documentation

- + +

◆ curPosition()

+
@@ -622,7 +624,9 @@

Member Function Documentation

- + +

◆ cwd()

+
@@ -646,7 +650,9 @@

Member Function Documentation

- + +

◆ dateTimeCallback()

+
@@ -674,24 +680,14 @@

Member Function Documentation

-
void dateTime(uint16_t* date, uint16_t* time) {
-
uint16_t year;
-
uint8_t month, day, hour, minute, second;
-
-
// User gets date and time from GPS or real-time clock here
-
-
// return date using FAT_DATE macro to format fields
-
*date = FAT_DATE(year, month, day);
-
-
// return time using FAT_TIME macro to format fields
-
*time = FAT_TIME(hour, minute, second);
-
}
-

Sets the function that is called when a file is created or when a file's directory entry is modified by sync(). All timestamps, access, creation, and modify, are set when a file is created. sync() maintains the last access date and last modify date/time.

+
void dateTime(uint16_t* date, uint16_t* time) {
uint16_t year;
uint8_t month, day, hour, minute, second;
// User gets date and time from GPS or real-time clock here
// return date using FAT_DATE macro to format fields
*date = FAT_DATE(year, month, day);
// return time using FAT_TIME macro to format fields
*time = FAT_TIME(hour, minute, second);
}

Sets the function that is called when a file is created or when a file's directory entry is modified by sync(). All timestamps, access, creation, and modify, are set when a file is created. sync() maintains the last access date and last modify date/time.

See the timestamp() function.

- + +

◆ dateTimeCallbackCancel()

+
@@ -715,7 +711,9 @@

Member Function Documentation

- + +

◆ dirEntry()

+
@@ -739,7 +737,9 @@

Member Function Documentation

- + +

◆ dirIndex()

+
@@ -763,7 +763,9 @@

Member Function Documentation

- + +

◆ dirName()

+
@@ -806,7 +808,9 @@

Member Function Documentation

- + +

◆ dirSize()

+
@@ -822,7 +826,9 @@

Member Function Documentation

- + +

◆ dmpFile()

+
@@ -862,7 +868,9 @@

Member Function Documentation

- + +

◆ exists()

+
@@ -896,7 +904,9 @@

Member Function Documentation

- + +

◆ fgets()

+
@@ -940,7 +950,9 @@

Member Function Documentation

- + +

◆ fileAttr()

+
@@ -960,12 +972,14 @@

Member Function Documentation

-

Type of file. You should use isFile() or isDir() instead of fileType() if possible.

+

Type of file. You should use isFile() or isDir() instead of fileType() if possible.

Returns
The file or directory type.
- + +

◆ fileSize()

+
@@ -989,7 +1003,9 @@

Member Function Documentation

- + +

◆ firstBlock()

+
@@ -1013,7 +1029,9 @@

Member Function Documentation

- + +

◆ firstCluster()

+
@@ -1037,7 +1055,9 @@

Member Function Documentation

- + +

◆ getError()

+
@@ -1061,7 +1081,9 @@

Member Function Documentation

- + +

◆ getName()

+
@@ -1096,7 +1118,9 @@

Member Function Documentation

- + +

◆ getpos()

+
@@ -1118,7 +1142,9 @@

Member Function Documentation

- + +

◆ getSFN()

+
@@ -1138,11 +1164,18 @@

Member Function Documentation

-
Returns
The value true, is returned for success and the value false, is returned for failure.
+
Returns
The value true, is returned for success and the value false, is returned for failure.
+

Copyright (c) 2011-2018 Bill Greiman This file is part of the SdFat library for SD memory cards.

+

MIT License

+

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

- + +

◆ getWriteError()

+
@@ -1166,7 +1199,9 @@

Member Function Documentation

- + +

◆ isDir()

+
@@ -1190,7 +1225,9 @@

Member Function Documentation

- + +

◆ isFile()

+
@@ -1214,7 +1251,9 @@

Member Function Documentation

- + +

◆ isHidden()

+
@@ -1238,7 +1277,9 @@

Member Function Documentation

- + +

◆ isLFN()

+
@@ -1262,7 +1303,9 @@

Member Function Documentation

- + +

◆ isOpen()

+
@@ -1286,7 +1329,9 @@

Member Function Documentation

- + +

◆ isReadOnly()

+
@@ -1310,7 +1355,9 @@

Member Function Documentation

- + +

◆ isRoot()

+
@@ -1334,7 +1381,9 @@

Member Function Documentation

- + +

◆ isRoot32()

+
@@ -1358,7 +1407,9 @@

Member Function Documentation

- + +

◆ isRootFixed()

+
@@ -1382,7 +1433,9 @@

Member Function Documentation

- + +

◆ isSubDir()

+
@@ -1406,7 +1459,9 @@

Member Function Documentation

- + +

◆ isSystem()

+
@@ -1430,7 +1485,9 @@

Member Function Documentation

- + +

◆ legal83Char()

+
@@ -1461,7 +1518,9 @@

Member Function Documentation

- + +

◆ ls() [1/2]

+
@@ -1495,7 +1554,9 @@

Member Function Documentation

- + +

◆ ls() [2/2]

+
@@ -1544,7 +1605,9 @@

Member Function Documentation

- + +

◆ mkdir()

+
@@ -1586,7 +1649,9 @@

Member Function Documentation

- + +

◆ open() [1/4]

+
@@ -1605,7 +1670,7 @@

Member Function Documentation

- + @@ -1620,7 +1685,7 @@

Member Function Documentation

uint8_t oflag_t  oflag 
- +
[in]fsFile System where the file is located.
[in]pathwith a valid 8.3 DOS name for a file to be opened.
[in]oflagbitwise-inclusive OR of open mode flags. See see FatFile::open(FatFile*, const char*, uint8_t).
[in]oflagbitwise-inclusive OR of open mode flags. See see FatFile::open(FatFile*, const char*, oflag_t).
@@ -1628,7 +1693,9 @@

Member Function Documentation

- + +

◆ open() [2/4]

+
@@ -1647,7 +1714,7 @@

Member Function Documentation

- + @@ -1662,15 +1729,17 @@

Member Function Documentation

uint8_t oflag_t  oflag 
- +
[in]dirFileAn open FatFile instance for the directory.
[in]indexThe index of the directory entry for the file to be opened. The value for index is (directory file position)/32.
[in]oflagbitwise-inclusive OR of open mode flags. See see FatFile::open(FatFile*, const char*, uint8_t).
[in]oflagbitwise-inclusive OR of open mode flags. See see FatFile::open(FatFile*, const char*, oflag_t).
-

See open() by path for definition of flags.

Returns
true for success or false for failure.
+

See open() by path for definition of flags.

Returns
true for success or false for failure.
- + +

◆ open() [3/4]

+
@@ -1689,7 +1758,7 @@

Member Function Documentation

- + @@ -1708,15 +1777,15 @@

Member Function Documentation

uint8_t oflag_t  oflag 
-

O_READ - Open for reading.

-

O_RDONLY - Same as O_READ.

-

O_WRITE - Open for writing.

-

O_WRONLY - Same as O_WRITE.

+

O_RDONLY - Open for reading.

+

O_READ - Same as O_RDONLY (GNU).

+

O_WRONLY - Open for writing.

+

O_WRITE - Same as O_WRONLY (GNU).

O_RDWR - Open for reading and writing.

O_APPEND - If set, the file offset shall be set to the end of the file prior to each write.

O_AT_END - Set the initial position at the end of the file.

O_CREAT - If the file exists, this flag has no effect except as noted under O_EXCL below. Otherwise, the file shall be created

-

O_EXCL - If O_CREAT and O_EXCL are set, open() shall fail if the file exists.

+

O_EXCL - If O_CREAT and O_EXCL are set, open() shall fail if the file exists.

O_SYNC - Call sync() after each write. This flag should not be used with write(uint8_t) or any functions do character at a time writes since sync() will be called after each byte.

O_TRUNC - If the file exists and is a regular file, and the file is successfully opened and is not read only, its length shall be truncated to 0.

WARNING: A given file must not be opened by more than one FatFile object or file corruption may occur.

@@ -1725,7 +1794,9 @@

Member Function Documentation

- + +

◆ open() [4/4]

+
@@ -1741,8 +1812,8 @@

Member Function Documentation

- - + + @@ -1760,7 +1831,7 @@

Member Function Documentation

Parameters
uint8_t oflag = O_READ oflag_t oflag = O_RDONLY 
- +
[in]pathA path with a valid 8.3 DOS name for a file to be opened.
[in]oflagbitwise-inclusive OR of open mode flags. See see FatFile::open(FatFile*, const char*, uint8_t).
[in]oflagbitwise-inclusive OR of open mode flags. See see FatFile::open(FatFile*, const char*, oflag_t).
@@ -1768,7 +1839,9 @@

Member Function Documentation

- + +

◆ openNext()

+
@@ -1781,8 +1854,8 @@

Member Function Documentation

- - + + @@ -1795,7 +1868,7 @@

Member Function Documentation

Parameters
uint8_t oflag = O_READ oflag_t oflag = O_RDONLY 
- +
[in]dirFileAn open FatFile instance for the directory containing the file to be opened.
[in]oflagbitwise-inclusive OR of open mode flags. See see FatFile::open(FatFile*, const char*, uint8_t).
[in]oflagbitwise-inclusive OR of open mode flags. See see FatFile::open(FatFile*, const char*, oflag_t).
@@ -1803,7 +1876,9 @@

Member Function Documentation

- + +

◆ openRoot()

+
@@ -1827,7 +1902,9 @@

Member Function Documentation

- + +

◆ peek()

+
@@ -1844,7 +1921,9 @@

Member Function Documentation

- + +

◆ printCreateDateTime()

+
@@ -1868,7 +1947,9 @@

Member Function Documentation

- + +

◆ printFatDate() [1/2]

+
@@ -1900,7 +1981,9 @@

Member Function Documentation

- + +

◆ printFatDate() [2/2]

+
@@ -1943,7 +2026,9 @@

Member Function Documentation

- + +

◆ printFatTime() [1/2]

+
@@ -1975,7 +2060,9 @@

Member Function Documentation

- + +

◆ printFatTime() [2/2]

+
@@ -2018,7 +2105,9 @@

Member Function Documentation

- + +

◆ printField() [1/5]

+
@@ -2059,7 +2148,9 @@

Member Function Documentation

- + +

◆ printField() [2/5]

+
@@ -2093,7 +2184,9 @@

Member Function Documentation

- + +

◆ printField() [3/5]

+
@@ -2127,7 +2220,9 @@

Member Function Documentation

- + +

◆ printField() [4/5]

+
@@ -2161,7 +2256,9 @@

Member Function Documentation

- + +

◆ printField() [5/5]

+
@@ -2195,7 +2292,9 @@

Member Function Documentation

- + +

◆ printFileSize()

+
@@ -2219,7 +2318,9 @@

Member Function Documentation

- + +

◆ printModifyDateTime()

+
@@ -2243,7 +2344,9 @@

Member Function Documentation

- + +

◆ printName() [1/2]

+
@@ -2268,7 +2371,9 @@

Member Function Documentation

- + +

◆ printName() [2/2]

+
@@ -2292,7 +2397,9 @@

Member Function Documentation

- + +

◆ printSFN()

+
@@ -2316,7 +2423,9 @@

Member Function Documentation

- + +

◆ read() [1/2]

+
@@ -2341,7 +2450,9 @@

Member Function Documentation

- + +

◆ read() [2/2]

+
@@ -2376,7 +2487,9 @@

Member Function Documentation

- + +

◆ readDir()

+
@@ -2400,7 +2513,9 @@

Member Function Documentation

- + +

◆ remove() [1/2]

+
@@ -2419,7 +2534,9 @@

Member Function Documentation

- + +

◆ remove() [2/2]

+
@@ -2464,7 +2581,9 @@

Member Function Documentation

- + +

◆ rename()

+
@@ -2499,7 +2618,9 @@

Member Function Documentation

- + +

◆ rewind()

+
@@ -2523,7 +2644,9 @@

Member Function Documentation

- + +

◆ rmdir()

+
@@ -2542,7 +2665,9 @@

Member Function Documentation

- + +

◆ rmRfStar()

+
@@ -2562,7 +2687,9 @@

Member Function Documentation

- + +

◆ seekCur()

+
@@ -2593,7 +2720,9 @@

Member Function Documentation

- + +

◆ seekEnd()

+
@@ -2624,7 +2753,9 @@

Member Function Documentation

- + +

◆ seekSet()

+
@@ -2648,7 +2779,9 @@

Member Function Documentation

- + +

◆ setCwd()

+
@@ -2680,7 +2813,9 @@

Member Function Documentation

- + +

◆ setpos()

+
@@ -2702,7 +2837,9 @@

Member Function Documentation

- + +

◆ sync()

+
@@ -2719,7 +2856,9 @@

Member Function Documentation

- + +

◆ timestamp() [1/2]

+
@@ -2744,7 +2883,9 @@

Member Function Documentation

- + +

◆ timestamp() [2/2]

+
@@ -2825,7 +2966,9 @@

Member Function Documentation

- + +

◆ truncate()

+
@@ -2849,7 +2992,9 @@

Member Function Documentation

- + +

◆ volume()

+
@@ -2873,7 +3018,9 @@

Member Function Documentation

- + +

◆ write() [1/3]

+
@@ -2904,7 +3051,9 @@

Member Function Documentation

- + +

◆ write() [2/3]

+
@@ -2935,7 +3084,9 @@

Member Function Documentation

- + +

◆ write() [3/3]

+
@@ -2981,9 +3132,9 @@

Member Function Documentation

diff --git a/extras/html/class_fat_file_system-members.html b/extras/html/class_fat_file_system-members.html index dae8a2ec..07f50dad 100644 --- a/extras/html/class_fat_file_system-members.html +++ b/extras/html/class_fat_file_system-members.html @@ -3,7 +3,8 @@ - + +SdFat: Member List @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
This is the complete list of members for FatFileSystem, including all inherited members.

- - + + - - - + + + - - + + @@ -112,24 +92,24 @@ - - + + - - + + - +
begin(BlockDriver *blockDev, uint8_t part=0)FatFileSysteminline
blocksPerCluster() const FatVolumeinline
blocksPerFat() const FatVolumeinline
blocksPerCluster() constFatVolumeinline
blocksPerFat() constFatVolumeinline
cacheClear()FatVolumeinline
chdir(bool set_cwd=false)FatFileSysteminline
chdir(const char *path, bool set_cwd=false)FatFileSysteminline
chvol()FatFileSysteminline
clusterCount() const FatVolumeinline
clusterSizeShift() const FatVolumeinline
dataStartBlock() const FatVolumeinline
clusterCount() constFatVolumeinline
clusterSizeShift() constFatVolumeinline
dataStartBlock() constFatVolumeinline
dbgFat(uint32_t n, uint32_t *v)FatVolumeinline
exists(const char *path)FatFileSysteminline
fatCount()FatVolumeinline
fatStartBlock() const FatVolumeinline
fatType() const FatVolumeinline
fatStartBlock() constFatVolumeinline
fatType() constFatVolumeinline
FatVolume()FatVolumeinline
freeClusterCount()FatVolume
init()FatVolumeinline
ls(print_t *pr, uint8_t flags=0)FatFileSysteminline
ls(print_t *pr, const char *path, uint8_t flags)FatFileSysteminline
mkdir(const char *path, bool pFlag=true)FatFileSysteminline
open(const char *path, uint8_t mode=FILE_READ)FatFileSysteminline
open(const String &path, uint8_t mode=FILE_READ)FatFileSysteminline
open(const char *path, oflag_t oflag=FILE_READ)FatFileSysteminline
open(const String &path, oflag_t oflag=FILE_READ)FatFileSysteminline
remove(const char *path)FatFileSysteminline
rename(const char *oldPath, const char *newPath)FatFileSysteminline
rmdir(const char *path)FatFileSysteminline
rootDirEntryCount() const FatVolumeinline
rootDirStart() const FatVolumeinline
rootDirEntryCount() constFatVolumeinline
rootDirStart() constFatVolumeinline
truncate(const char *path, uint32_t length)FatFileSysteminline
vol()FatFileSysteminline
volumeBlockCount() const FatVolumeinline
volumeBlockCount() constFatVolumeinline
vwd()FatFileSysteminline
wipe(print_t *pr=0)FatFileSysteminline
diff --git a/extras/html/class_fat_file_system.html b/extras/html/class_fat_file_system.html index ac0b556e..59c85963 100644 --- a/extras/html/class_fat_file_system.html +++ b/extras/html/class_fat_file_system.html @@ -3,7 +3,8 @@ - + + SdFat: FatFileSystem Class Reference @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
- - - - - - - - + + + + + + + + + +
[legend]
@@ -123,10 +105,10 @@ Public Member Functions bool begin (BlockDriver *blockDev, uint8_t part=0)   -uint8_t blocksPerCluster () const -  -uint32_t blocksPerFat () const -  +uint8_t blocksPerCluster () const +  +uint32_t blocksPerFat () const +  cache_tcacheClear ()   bool chdir (bool set_cwd=false) @@ -135,22 +117,22 @@   void chvol ()   -uint32_t clusterCount () const -  -uint8_t clusterSizeShift () const -  -uint32_t dataStartBlock () const -  +uint32_t clusterCount () const +  +uint8_t clusterSizeShift () const +  +uint32_t dataStartBlock () const +  int8_t dbgFat (uint32_t n, uint32_t *v)   bool exists (const char *path)   uint8_t fatCount ()   -uint32_t fatStartBlock () const -  -uint8_t fatType () const -  +uint32_t fatStartBlock () const +  +uint8_t fatType () const +  int32_t freeClusterCount ()   bool init () @@ -167,26 +149,26 @@   bool mkdir (const char *path, bool pFlag=true)   -File open (const char *path, uint8_t mode=FILE_READ) -  -File open (const String &path, uint8_t mode=FILE_READ) -  +File open (const char *path, oflag_t oflag=FILE_READ) +  +File open (const String &path, oflag_t oflag=FILE_READ) +  bool remove (const char *path)   bool rename (const char *oldPath, const char *newPath)   bool rmdir (const char *path)   -uint16_t rootDirEntryCount () const -  -uint32_t rootDirStart () const -  +uint16_t rootDirEntryCount () const +  +uint32_t rootDirStart () const +  bool truncate (const char *path, uint32_t length)   FatVolumevol ()   -uint32_t volumeBlockCount () const -  +uint32_t volumeBlockCount () const +  FatFilevwd ()   bool wipe (print_t *pr=0) @@ -195,7 +177,9 @@

Detailed Description

Integration class for the FatLib library.

Member Function Documentation

- + +

◆ begin()

+
@@ -237,7 +221,9 @@ - + +

◆ blocksPerCluster()

+
@@ -261,7 +247,9 @@ - + +

◆ blocksPerFat()

+
@@ -285,7 +273,9 @@ - + +

◆ cacheClear()

+
@@ -309,7 +299,9 @@ - + +

◆ chdir() [1/2]

+
@@ -342,7 +334,9 @@ - + +

◆ chdir() [2/2]

+
@@ -388,7 +382,9 @@ - + +

◆ chvol()

+
@@ -415,7 +411,9 @@ - + +

◆ clusterCount()

+
@@ -439,7 +437,9 @@ - + +

◆ clusterSizeShift()

+
@@ -463,7 +463,9 @@ - + +

◆ dataStartBlock()

+
@@ -487,7 +489,9 @@ - + +

◆ dbgFat()

+
@@ -526,11 +530,13 @@
-
Returns
true for success or false for failure
+
Returns
-1 error, 0 EOC, else 1.
- + +

◆ exists()

+
@@ -562,7 +568,9 @@ - + +

◆ fatCount()

+
@@ -586,7 +594,9 @@ - + +

◆ fatStartBlock()

+
@@ -610,7 +620,9 @@ - + +

◆ fatType()

+
@@ -634,7 +646,9 @@ - + +

◆ freeClusterCount()

+
@@ -659,7 +673,9 @@ - + +

◆ init() [1/2]

+
@@ -684,7 +700,9 @@ - + +

◆ init() [2/2]

+
@@ -716,7 +734,9 @@ - + +

◆ ls() [1/4]

+
@@ -750,7 +770,9 @@ - + +

◆ ls() [2/4]

+
@@ -795,7 +817,9 @@ - + +

◆ ls() [3/4]

+
@@ -840,7 +864,9 @@ - + +

◆ ls() [4/4]

+
@@ -892,7 +918,9 @@ - + +

◆ mkdir()

+
@@ -935,7 +963,9 @@ - + +

◆ open() [1/2]

+
@@ -951,8 +981,8 @@ - - + + @@ -970,7 +1000,7 @@
Parameters
uint8_t mode = FILE_READ oflag_t oflag = FILE_READ 
- +
[in]pathlocation of file to be opened.
[in]modeopen mode flags.
[in]oflagopen flags.
@@ -978,7 +1008,9 @@
- + +

◆ open() [2/2]

+
@@ -994,8 +1026,8 @@ - - + + @@ -1013,7 +1045,7 @@
Parameters
uint8_t mode = FILE_READ oflag_t oflag = FILE_READ 
- +
[in]pathlocation of file to be opened.
[in]modeopen mode flags.
[in]oflagopen flags.
@@ -1021,7 +1053,9 @@
- + +

◆ remove()

+
@@ -1053,7 +1087,9 @@ - + +

◆ rename()

+
@@ -1098,7 +1134,9 @@ - + +

◆ rmdir()

+
@@ -1131,7 +1169,9 @@ - + +

◆ rootDirEntryCount()

+
@@ -1155,7 +1195,9 @@ - + +

◆ rootDirStart()

+
@@ -1179,7 +1221,9 @@ - + +

◆ truncate()

+
@@ -1222,7 +1266,9 @@ - + +

◆ vol()

+
@@ -1246,7 +1292,9 @@ - + +

◆ volumeBlockCount()

+
@@ -1270,7 +1318,9 @@ - + +

◆ vwd()

+
@@ -1294,7 +1344,9 @@ - + +

◆ wipe()

+
@@ -1331,9 +1383,9 @@ diff --git a/extras/html/class_fat_file_system__inherit__graph.png b/extras/html/class_fat_file_system__inherit__graph.png index cbe4c173..a660a353 100644 Binary files a/extras/html/class_fat_file_system__inherit__graph.png and b/extras/html/class_fat_file_system__inherit__graph.png differ diff --git a/extras/html/class_fat_stream_base-members.html b/extras/html/class_fat_stream_base-members.html index 45cc445a..e4c20a03 100644 --- a/extras/html/class_fat_stream_base-members.html +++ b/extras/html/class_fat_stream_base-members.html @@ -3,7 +3,8 @@ - + +SdFat: Member List @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
appios_basestatic ateios_basestatic available()FatFileinlineprivate - bad() const iosinline + bad() constiosinline badbitios_basestatic basefieldios_basestatic beg enum valueios_base @@ -106,8 +86,8 @@ createContiguous(FatFile *dirFile, const char *path, uint32_t size)FatFileprivate createContiguous(const char *path, uint32_t size)FatFileinlineprivate cur enum valueios_base - curCluster() const FatFileinlineprivate - curPosition() const FatFileinlineprivate + curCluster() constFatFileinlineprivate + curPosition() constFatFileinlineprivate cwd()FatFileinlineprivatestatic dateTimeCallback(void(*dateTime)(uint16_t *date, uint16_t *time))FatFileinlineprivatestatic dateTimeCallbackCancel()FatFileinlineprivatestatic @@ -118,21 +98,21 @@ dirSize()FatFileprivate dmpFile(print_t *pr, uint32_t pos, size_t n)FatFileprivate end enum valueios_base - eof() const iosinline + eof() constiosinline eofbitios_basestatic exists(const char *path)FatFileinlineprivate - fail() const iosinline + fail() constiosinline failbitios_basestatic FatFile()FatFileinlineprivate - FatFile(const char *path, uint8_t oflag)FatFileinlineprivate + FatFile(const char *path, oflag_t oflag)FatFileinlineprivate fgets(char *str, int16_t num, char *delim=0)FatFileprivate - fileAttr() const FatFileinlineprivate - fileSize() const FatFileinlineprivate + fileAttr() constFatFileinlineprivate + fileSize() constFatFileinlineprivate fill()ios_baseinline fill(char c)ios_baseinline firstBlock()FatFileinlineprivate - firstCluster() const FatFileinlineprivate - flags() const ios_baseinline + firstCluster() constFatFileinlineprivate + flags() constios_baseinline flags(fmtflags fl)ios_baseinline fmtflags typedefios_base getError()FatFileinlineprivate @@ -140,7 +120,7 @@ getpos(FatPos_t *pos)FatFileprivate getSFN(char *name)FatFileprivate getWriteError()FatFileinlineprivate - good() const iosinline + good() constiosinline goodbitios_basestatic hexios_basestatic inios_basestatic @@ -148,17 +128,17 @@ ios()iosinline ios_base() (defined in ios_base)ios_baseinline iostate typedefios_base - isDir() const FatFileinlineprivate - isFile() const FatFileinlineprivate - isHidden() const FatFileinlineprivate - isLFN() const FatFileinlineprivate - isOpen() const FatFileinlineprivate - isReadOnly() const FatFileinlineprivate - isRoot() const FatFileinlineprivate - isRoot32() const FatFileinlineprivate - isRootFixed() const FatFileinlineprivate - isSubDir() const FatFileinlineprivate - isSystem() const FatFileinlineprivate + isDir() constFatFileinlineprivate + isFile() constFatFileinlineprivate + isHidden() constFatFileinlineprivate + isLFN() constFatFileinlineprivate + isOpen() constFatFileinlineprivate + isReadOnly() constFatFileinlineprivate + isRoot() constFatFileinlineprivate + isRoot32() constFatFileinlineprivate + isRootFixed() constFatFileinlineprivate + isSubDir() constFatFileinlineprivate + isSystem() constFatFileinlineprivate leftios_basestatic legal83Char(uint8_t c)FatFileinlineprivatestatic ls(uint8_t flags=0)FatFileinlineprivate @@ -166,19 +146,19 @@ mkdir(FatFile *dir, const char *path, bool pFlag=true)FatFileprivate octios_basestatic off_type typedefios_base - open(FatFileSystem *fs, const char *path, uint8_t oflag)FatFileprivate - open(FatFile *dirFile, uint16_t index, uint8_t oflag)FatFileprivate - open(FatFile *dirFile, const char *path, uint8_t oflag)FatFileprivate - open(const char *path, uint8_t oflag=O_READ)FatFileinlineprivate + open(FatFileSystem *fs, const char *path, oflag_t oflag)FatFileprivate + open(FatFile *dirFile, uint16_t index, oflag_t oflag)FatFileprivate + open(FatFile *dirFile, const char *path, oflag_t oflag)FatFileprivate + open(const char *path, oflag_t oflag=O_RDONLY)FatFileinlineprivate openmode typedefios_base - openNext(FatFile *dirFile, uint8_t oflag=O_READ)FatFileprivate + openNext(FatFile *dirFile, oflag_t oflag=O_RDONLY)FatFileprivate openRoot(FatVolume *vol)FatFileprivate - operator const void *() const iosinline - operator!() const iosinline + operator const void *() constiosinline + operator!() constiosinline outios_basestatic peek()FatFileprivate pos_type typedefios_base - precision() const ios_baseinline + precision() constios_baseinline precision(unsigned int n)ios_baseinline printCreateDateTime(print_t *pr)FatFileprivate printFatDate(uint16_t fatDate)FatFileinlineprivatestatic @@ -195,7 +175,7 @@ printName()FatFileinlineprivate printName(print_t *pr)FatFileprivate printSFN(print_t *pr)FatFileprivate - rdstate() const iosinline + rdstate() constiosinline read()FatFileinlineprivate read(void *buf, size_t nbyte)FatFileprivate readDir(dir_t *dir)FatFileprivate @@ -227,7 +207,7 @@ truncate(uint32_t length)FatFileprivate unsetf(fmtflags fl)ios_baseinline uppercaseios_basestatic - volume() const FatFileinlineprivate + volume() constFatFileinlineprivate width()ios_baseinline width(unsigned n)ios_baseinline write(const char *str)FatFileinlineprivate @@ -236,9 +216,9 @@
diff --git a/extras/html/class_fat_stream_base.html b/extras/html/class_fat_stream_base.html index 7fcc6666..843feb2e 100644 --- a/extras/html/class_fat_stream_base.html +++ b/extras/html/class_fat_stream_base.html @@ -3,7 +3,8 @@ - + + SdFat: FatStreamBase Class Reference @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
enum  seekdir { beg, cur, end - }  - + } +  typedef uint32_t streamsize   - - + + - - - - + + + + - - + + - - - - - - - - + + + + + + + + - - + + @@ -251,10 +231,10 @@ - - - - + + + + @@ -267,14 +247,14 @@ - - - - + + + + - - + + @@ -285,44 +265,44 @@ - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - + + + + + + + + + + @@ -377,12 +357,12 @@ - + - - + + @@ -418,7 +398,9 @@

Detailed Description

Base class for C++ style streams.

Member Typedef Documentation

- + +

◆ fmtflags

+

Public Member Functions

bool bad () const
 
bool bad () const
 
void clear (iostate state=goodbit)
 
bool eof () const
 
bool fail () const
 
bool eof () const
 
bool fail () const
 
char fill ()
 
char fill (char c)
 
fmtflags flags () const
 
fmtflags flags () const
 
fmtflags flags (fmtflags fl)
 
bool good () const
 
 operator const void * () const
 
bool operator! () const
 
int precision () const
 
bool good () const
 
 operator const void * () const
 
bool operator! () const
 
int precision () const
 
int precision (unsigned int n)
 
iostate rdstate () const
 
iostate rdstate () const
 
fmtflags setf (fmtflags fl)
 
fmtflags setf (fmtflags fl, fmtflags mask)
 
bool createContiguous (const char *path, uint32_t size)
 
uint32_t curCluster () const
 
uint32_t curPosition () const
 
uint32_t curCluster () const
 
uint32_t curPosition () const
 
bool dirEntry (dir_t *dir)
 
uint16_t dirIndex ()
 
int16_t fgets (char *str, int16_t num, char *delim=0)
 
uint8_t fileAttr () const
 
uint32_t fileSize () const
 
uint8_t fileAttr () const
 
uint32_t fileSize () const
 
uint32_t firstBlock ()
 
uint32_t firstCluster () const
 
uint32_t firstCluster () const
 
uint8_t getError ()
 
bool getName (char *name, size_t size)
 
bool getWriteError ()
 
bool isDir () const
 
bool isFile () const
 
bool isHidden () const
 
bool isLFN () const
 
bool isOpen () const
 
bool isReadOnly () const
 
bool isRoot () const
 
bool isRoot32 () const
 
bool isRootFixed () const
 
bool isSubDir () const
 
bool isSystem () const
 
void ls (uint8_t flags=0)
bool isDir () const
 
bool isFile () const
 
bool isHidden () const
 
bool isLFN () const
 
bool isOpen () const
 
bool isReadOnly () const
 
bool isRoot () const
 
bool isRoot32 () const
 
bool isRootFixed () const
 
bool isSubDir () const
 
bool isSystem () const
 
void ls (uint8_t flags=0)
 
void ls (print_t *pr, uint8_t flags=0, uint8_t indent=0)
void ls (print_t *pr, uint8_t flags=0, uint8_t indent=0)
 
bool mkdir (FatFile *dir, const char *path, bool pFlag=true)
 
bool open (FatFileSystem *fs, const char *path, uint8_t oflag)
 
bool open (FatFile *dirFile, uint16_t index, uint8_t oflag)
 
bool open (FatFile *dirFile, const char *path, uint8_t oflag)
 
bool open (const char *path, uint8_t oflag=O_READ)
 
bool openNext (FatFile *dirFile, uint8_t oflag=O_READ)
 
bool open (FatFileSystem *fs, const char *path, oflag_t oflag)
 
bool open (FatFile *dirFile, uint16_t index, oflag_t oflag)
 
bool open (FatFile *dirFile, const char *path, oflag_t oflag)
 
bool open (const char *path, oflag_t oflag=O_RDONLY)
 
bool openNext (FatFile *dirFile, oflag_t oflag=O_RDONLY)
 
bool openRoot (FatVolume *vol)
 
int peek ()
 
bool timestamp (FatFile *file)
 
bool timestamp (uint8_t flags, uint16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second)
bool timestamp (uint8_t flags, uint16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second)
 
bool truncate (uint32_t length)
 
FatVolumevolume () const
 
FatVolumevolume () const
 
int write (const char *str)
 
int write (uint8_t b)
@@ -439,7 +421,9 @@ - + +

◆ iostate

+
@@ -460,7 +444,9 @@ - + +

◆ off_type

+
@@ -481,7 +467,9 @@ - + +

◆ openmode

+
@@ -502,7 +490,9 @@ - + +

◆ pos_type

+
@@ -523,7 +513,9 @@ - + +

◆ streamsize

+
@@ -545,7 +537,9 @@

Member Enumeration Documentation

- + +

◆ seekdir

+
@@ -564,21 +558,20 @@

Member Enumeration Documentation

enumerated type for the direction of relative seeks

- - -
Enumerator
beg  -

seek relative to the beginning of the stream

+
Enumerator
beg 

seek relative to the beginning of the stream

cur  -

seek relative to the current stream position

+
cur 

seek relative to the current stream position

end  -

seek relative to the end of the stream

+
end 

seek relative to the end of the stream

Member Function Documentation

- + +

◆ bad()

+
@@ -602,7 +595,9 @@

Member Function Documentation

- + +

◆ clear()

+
@@ -633,7 +628,9 @@

Member Function Documentation

- + +

◆ eof()

+
@@ -655,11 +652,13 @@

Member Function Documentation

Returns
true if end of file has been reached else false.

Warning: An empty file returns false before the first read.

-

Moral: eof() is only useful in combination with fail(), to find out whether EOF was the cause for failure

+

Moral: eof() is only useful in combination with fail(), to find out whether EOF was the cause for failure

- + +

◆ fail()

+
@@ -683,7 +682,9 @@

Member Function Documentation

- + +

◆ fill() [1/2]

+
@@ -707,7 +708,9 @@

Member Function Documentation

- + +

◆ fill() [2/2]

+
@@ -738,7 +741,9 @@

Member Function Documentation

- + +

◆ flags() [1/2]

+
@@ -762,7 +767,9 @@

Member Function Documentation

- + +

◆ flags() [2/2]

+
@@ -793,7 +800,9 @@

Member Function Documentation

- + +

◆ good()

+
@@ -817,7 +826,9 @@

Member Function Documentation

- + +

◆ operator const void *()

+
@@ -837,11 +848,13 @@

Member Function Documentation

-
Returns
null pointer if fail() is true.
+
Returns
null pointer if fail() is true.
- + +

◆ operator!()

+
@@ -861,11 +874,13 @@

Member Function Documentation

-
Returns
true if fail() else false.
+
Returns
true if fail() else false.
- + +

◆ precision() [1/2]

+
@@ -889,7 +904,9 @@

Member Function Documentation

- + +

◆ precision() [2/2]

+
@@ -920,7 +937,9 @@

Member Function Documentation

- + +

◆ rdstate()

+
@@ -944,7 +963,9 @@

Member Function Documentation

- + +

◆ setf() [1/2]

+
@@ -975,7 +996,9 @@

Member Function Documentation

- + +

◆ setf() [2/2]

+
@@ -1017,7 +1040,9 @@

Member Function Documentation

- + +

◆ setstate()

+
@@ -1048,7 +1073,9 @@

Member Function Documentation

- + +

◆ unsetf()

+
@@ -1079,7 +1106,9 @@

Member Function Documentation

- + +

◆ width() [1/2]

+
@@ -1103,7 +1132,9 @@

Member Function Documentation

- + +

◆ width() [2/2]

+
@@ -1135,7 +1166,9 @@

Member Function Documentation

Member Data Documentation

- + +

◆ adjustfield

+
@@ -1156,7 +1189,9 @@

Member Data Documentation

- + +

◆ app

+
@@ -1177,7 +1212,9 @@

Member Data Documentation

- + +

◆ ate

+
@@ -1198,7 +1235,9 @@

Member Data Documentation

- + +

◆ badbit

+
@@ -1219,7 +1258,9 @@

Member Data Documentation

- + +

◆ basefield

+
@@ -1240,7 +1281,9 @@

Member Data Documentation

- + +

◆ binary

+
@@ -1261,7 +1304,9 @@

Member Data Documentation

- + +

◆ boolalpha

+
@@ -1282,7 +1327,9 @@

Member Data Documentation

- + +

◆ dec

+
@@ -1303,7 +1350,9 @@

Member Data Documentation

- + +

◆ eofbit

+
@@ -1324,7 +1373,9 @@

Member Data Documentation

- + +

◆ failbit

+
@@ -1345,7 +1396,9 @@

Member Data Documentation

- + +

◆ goodbit

+
@@ -1366,7 +1419,9 @@

Member Data Documentation

- + +

◆ hex

+
@@ -1387,7 +1442,9 @@

Member Data Documentation

- + +

◆ in

+
@@ -1408,7 +1465,9 @@

Member Data Documentation

- + +

◆ internal

+
@@ -1429,7 +1488,9 @@

Member Data Documentation

- + +

◆ left

+
@@ -1450,7 +1511,9 @@

Member Data Documentation

- + +

◆ oct

+
@@ -1471,7 +1534,9 @@

Member Data Documentation

- + +

◆ out

+
@@ -1492,7 +1557,9 @@

Member Data Documentation

- + +

◆ right

+
@@ -1513,7 +1580,9 @@

Member Data Documentation

- + +

◆ showbase

+
@@ -1534,7 +1603,9 @@

Member Data Documentation

- + +

◆ showpoint

+
@@ -1555,7 +1626,9 @@

Member Data Documentation

- + +

◆ showpos

+
@@ -1576,7 +1649,9 @@

Member Data Documentation

- + +

◆ skipws

+
@@ -1597,7 +1672,9 @@

Member Data Documentation

- + +

◆ trunc

+
@@ -1618,7 +1695,9 @@

Member Data Documentation

- + +

◆ uppercase

+
@@ -1645,9 +1724,9 @@

Member Data Documentation

diff --git a/extras/html/class_fat_volume-members.html b/extras/html/class_fat_volume-members.html index 543d2243..18e917e6 100644 --- a/extras/html/class_fat_volume-members.html +++ b/extras/html/class_fat_volume-members.html @@ -3,7 +3,8 @@ - + +SdFat: Member List @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
This is the complete list of members for FatVolume, including all inherited members.

- - + + - - - + + + - + - - - - + + + + - - - + + +
blocksPerCluster() const FatVolumeinline
blocksPerFat() const FatVolumeinline
blocksPerCluster() constFatVolumeinline
blocksPerFat() constFatVolumeinline
cacheClear()FatVolumeinline
clusterCount() const FatVolumeinline
clusterSizeShift() const FatVolumeinline
dataStartBlock() const FatVolumeinline
clusterCount() constFatVolumeinline
clusterSizeShift() constFatVolumeinline
dataStartBlock() constFatVolumeinline
dbgFat(uint32_t n, uint32_t *v)FatVolumeinline
FatCache (defined in FatVolume)FatVolumefriend
FatCache classFatVolumefriend
fatCount()FatVolumeinline
FatFile (defined in FatVolume)FatVolumefriend
FatFileSystem (defined in FatVolume)FatVolumefriend
fatStartBlock() const FatVolumeinline
fatType() const FatVolumeinline
FatFile classFatVolumefriend
FatFileSystem classFatVolumefriend
fatStartBlock() constFatVolumeinline
fatType() constFatVolumeinline
FatVolume()FatVolumeinline
freeClusterCount()FatVolume
init()FatVolumeinline
init(uint8_t part)FatVolume
rootDirEntryCount() const FatVolumeinline
rootDirStart() const FatVolumeinline
volumeBlockCount() const FatVolumeinline
rootDirEntryCount() constFatVolumeinline
rootDirStart() constFatVolumeinline
volumeBlockCount() constFatVolumeinline
wipe(print_t *pr=0)FatVolume
diff --git a/extras/html/class_fat_volume.html b/extras/html/class_fat_volume.html index d7a8a991..10169664 100644 --- a/extras/html/class_fat_volume.html +++ b/extras/html/class_fat_volume.html @@ -3,7 +3,8 @@ - + + SdFat: FatVolume Class Reference @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
Inheritance graph
- + - - - - - - - + + + + + + + + +
[legend]
- - - - + + + + - - - - - - + + + + + + - - - - + + + + @@ -142,31 +124,36 @@ - - - - - - + + + + + +

Public Member Functions

uint8_t blocksPerCluster () const
 
uint32_t blocksPerFat () const
 
uint8_t blocksPerCluster () const
 
uint32_t blocksPerFat () const
 
cache_tcacheClear ()
 
uint32_t clusterCount () const
 
uint8_t clusterSizeShift () const
 
uint32_t dataStartBlock () const
 
uint32_t clusterCount () const
 
uint8_t clusterSizeShift () const
 
uint32_t dataStartBlock () const
 
int8_t dbgFat (uint32_t n, uint32_t *v)
 
uint8_t fatCount ()
 
uint32_t fatStartBlock () const
 
uint8_t fatType () const
 
uint32_t fatStartBlock () const
 
uint8_t fatType () const
 
 FatVolume ()
 
int32_t freeClusterCount ()
 
bool init (uint8_t part)
 
uint16_t rootDirEntryCount () const
 
uint32_t rootDirStart () const
 
uint32_t volumeBlockCount () const
 
uint16_t rootDirEntryCount () const
 
uint32_t rootDirStart () const
 
uint32_t volumeBlockCount () const
 
bool wipe (print_t *pr=0)
 
- + + - + + - + +

Friends

-class FatCache
+class FatCache
 Allow access to FatVolume.
 
-class FatFile
+class FatFile
 Allow access to FatVolume.
 
-class FatFileSystem
+class FatFileSystem
 Allow access to FatVolume.
 

Detailed Description

Access FAT16 and FAT32 volumes on raw file devices.

Constructor & Destructor Documentation

- + +

◆ FatVolume()

+
@@ -191,7 +178,9 @@

Member Function Documentation

- + +

◆ blocksPerCluster()

+
@@ -215,7 +204,9 @@

Member Function Documentation

- + +

◆ blocksPerFat()

+
@@ -239,7 +230,9 @@

Member Function Documentation

- + +

◆ cacheClear()

+
@@ -263,7 +256,9 @@

Member Function Documentation

- + +

◆ clusterCount()

+
@@ -287,7 +282,9 @@

Member Function Documentation

- + +

◆ clusterSizeShift()

+
@@ -311,7 +308,9 @@

Member Function Documentation

- + +

◆ dataStartBlock()

+
@@ -335,7 +334,9 @@

Member Function Documentation

- + +

◆ dbgFat()

+
@@ -374,11 +375,13 @@

Member Function Documentation

-
Returns
true for success or false for failure
+
Returns
-1 error, 0 EOC, else 1.
- + +

◆ fatCount()

+
@@ -402,7 +405,9 @@

Member Function Documentation

- + +

◆ fatStartBlock()

+
@@ -426,7 +431,9 @@

Member Function Documentation

- + +

◆ fatType()

+
@@ -450,7 +457,9 @@

Member Function Documentation

- + +

◆ freeClusterCount()

+
@@ -467,7 +476,9 @@

Member Function Documentation

- + +

◆ init() [1/2]

+
@@ -492,7 +503,9 @@

Member Function Documentation

- + +

◆ init() [2/2]

+
@@ -516,7 +529,9 @@

Member Function Documentation

- + +

◆ rootDirEntryCount()

+
@@ -540,7 +555,9 @@

Member Function Documentation

- + +

◆ rootDirStart()

+
@@ -564,7 +581,9 @@

Member Function Documentation

- + +

◆ volumeBlockCount()

+
@@ -588,7 +607,9 @@

Member Function Documentation

- + +

◆ wipe()

+
@@ -618,9 +639,9 @@

Member Function Documentation

diff --git a/extras/html/class_fat_volume__inherit__graph.png b/extras/html/class_fat_volume__inherit__graph.png index 7773a799..bec96573 100644 Binary files a/extras/html/class_fat_volume__inherit__graph.png and b/extras/html/class_fat_volume__inherit__graph.png differ diff --git a/extras/html/class_file-members.html b/extras/html/class_file-members.html index 113bcf6e..94e57bdc 100644 --- a/extras/html/class_file-members.html +++ b/extras/html/class_file-members.html @@ -3,7 +3,8 @@ - + +SdFat: Member List @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
available()Fileinline clearError()FatFileinline - clearWriteError()FatFileinline - close()FatFile - contiguousRange(uint32_t *bgnBlock, uint32_t *endBlock)FatFile - createContiguous(FatFile *dirFile, const char *path, uint32_t size)FatFile - createContiguous(const char *path, uint32_t size)FatFileinline - curCluster() const FatFileinline - curPosition() const FatFileinline - cwd()FatFileinlinestatic - dateTimeCallback(void(*dateTime)(uint16_t *date, uint16_t *time))FatFileinlinestatic - dateTimeCallbackCancel()FatFileinlinestatic - dirEntry(dir_t *dir)FatFile - dirIndex()FatFileinline - dirName(const dir_t *dir, char *name)FatFilestatic - dirSize()FatFile - dmpFile(print_t *pr, uint32_t pos, size_t n)FatFile - exists(const char *path)FatFileinline - FatFile()FatFileinline - FatFile(const char *path, uint8_t oflag)FatFileinline - fgets(char *str, int16_t num, char *delim=0)FatFile - File() (defined in File)Fileinline - File(const char *path, uint8_t oflag)Fileinline - fileAttr() const FatFileinline - fileSize() const FatFileinline - firstBlock()FatFileinline - firstCluster() const FatFileinline - flush()Fileinline - getError()FatFileinline - getName(char *name, size_t size)FatFile - getpos(FatPos_t *pos)FatFile - getSFN(char *name)FatFile - getWriteError()FatFileinline - isDir() const FatFileinline + clearWriteError()Fileinline + FatFile::clearWriteError()FatFileinline + close()FatFile + contiguousRange(uint32_t *bgnBlock, uint32_t *endBlock)FatFile + createContiguous(FatFile *dirFile, const char *path, uint32_t size)FatFile + createContiguous(const char *path, uint32_t size)FatFileinline + curCluster() constFatFileinline + curPosition() constFatFileinline + cwd()FatFileinlinestatic + dateTimeCallback(void(*dateTime)(uint16_t *date, uint16_t *time))FatFileinlinestatic + dateTimeCallbackCancel()FatFileinlinestatic + dirEntry(dir_t *dir)FatFile + dirIndex()FatFileinline + dirName(const dir_t *dir, char *name)FatFilestatic + dirSize()FatFile + dmpFile(print_t *pr, uint32_t pos, size_t n)FatFile + exists(const char *path)FatFileinline + FatFile()FatFileinline + FatFile(const char *path, oflag_t oflag)FatFileinline + fgets(char *str, int16_t num, char *delim=0)FatFile + File() (defined in File)Fileinline + File(const char *path, oflag_t oflag)Fileinline + fileAttr() constFatFileinline + fileSize() constFatFileinline + firstBlock()FatFileinline + firstCluster() constFatFileinline + flush()Fileinline + getError()FatFileinline + getName(char *name, size_t size)FatFile + getpos(FatPos_t *pos)FatFile + getSFN(char *name)FatFile + getWriteError()Fileinline + FatFile::getWriteError()FatFileinline + isDir() constFatFileinline isDirectory()Fileinline - isFile() const FatFileinline - isHidden() const FatFileinline - isLFN() const FatFileinline - isOpen() const FatFileinline - isReadOnly() const FatFileinline - isRoot() const FatFileinline - isRoot32() const FatFileinline - isRootFixed() const FatFileinline - isSubDir() const FatFileinline - isSystem() const FatFileinline + isFile() constFatFileinline + isHidden() constFatFileinline + isLFN() constFatFileinline + isOpen() constFatFileinline + isReadOnly() constFatFileinline + isRoot() constFatFileinline + isRoot32() constFatFileinline + isRootFixed() constFatFileinline + isSubDir() constFatFileinline + isSystem() constFatFileinline legal83Char(uint8_t c)FatFileinlinestatic ls(uint8_t flags=0)FatFileinline ls(print_t *pr, uint8_t flags=0, uint8_t indent=0)FatFile mkdir(FatFile *dir, const char *path, bool pFlag=true)FatFile - name() const Fileinline - open(FatFileSystem *fs, const char *path, uint8_t oflag)FatFile - open(FatFile *dirFile, uint16_t index, uint8_t oflag)FatFile - open(FatFile *dirFile, const char *path, uint8_t oflag)FatFile - open(const char *path, uint8_t oflag=O_READ)FatFileinline - openNext(FatFile *dirFile, uint8_t oflag=O_READ)FatFile - openNextFile(uint8_t mode=O_READ)Fileinline + name() constFileinline + open(FatFileSystem *fs, const char *path, oflag_t oflag)FatFile + open(FatFile *dirFile, uint16_t index, oflag_t oflag)FatFile + open(FatFile *dirFile, const char *path, oflag_t oflag)FatFile + open(const char *path, oflag_t oflag=O_RDONLY)FatFileinline + openNext(FatFile *dirFile, oflag_t oflag=O_RDONLY)FatFile + openNextFile(oflag_t oflag=O_RDONLY)Fileinline openRoot(FatVolume *vol)FatFile operator bool()Fileinline peek()Fileinline @@ -164,6 +146,8 @@ printName(print_t *pr)FatFile printSFN(print_t *pr)FatFile read()Fileinline + read()Fileinline + read(void *buf, size_t nbyte)File FatFile::read(void *buf, size_t nbyte)FatFile readDir(dir_t *dir)FatFile remove()FatFile @@ -184,17 +168,20 @@ timestamp(FatFile *file)FatFile timestamp(uint8_t flags, uint16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second)FatFile truncate(uint32_t length)FatFile - volume() const FatFileinline + volume() constFatFileinline write(uint8_t b)Fileinline write(const uint8_t *buf, size_t size)Fileinline - FatFile::write(const char *str)FatFileinline - FatFile::write(const void *buf, size_t nbyte)FatFile + write(const char *str)Fileinline + write(uint8_t b)Fileinline + write(const void *buf, size_t nbyte)File + FatFile::write(const char *str)FatFileinline + FatFile::write(const void *buf, size_t nbyte)FatFile
diff --git a/extras/html/class_file.html b/extras/html/class_file.html index 5e32727e..0d033453 100644 --- a/extras/html/class_file.html +++ b/extras/html/class_file.html @@ -3,7 +3,8 @@ - + + SdFat: File Class Reference @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
  void clearError ()   +void clearWriteError () +  void clearWriteError ()   bool close () @@ -127,10 +109,10 @@   bool createContiguous (const char *path, uint32_t size)   -uint32_t curCluster () const -  -uint32_t curPosition () const -  +uint32_t curCluster () const +  +uint32_t curPosition () const +  bool dirEntry (dir_t *dir)   uint16_t dirIndex () @@ -143,72 +125,74 @@   int16_t fgets (char *str, int16_t num, char *delim=0)   - File (const char *path, uint8_t oflag) -  -uint8_t fileAttr () const -  -uint32_t fileSize () const -  + File (const char *path, oflag_t oflag) +  +uint8_t fileAttr () const +  +uint32_t fileSize () const +  uint32_t firstBlock ()   -uint32_t firstCluster () const -  +uint32_t firstCluster () const +  void flush ()   uint8_t getError ()   -bool getName (char *name, size_t size) +bool getName (char *name, size_t size)   void getpos (FatPos_t *pos)   -bool getSFN (char *name) +bool getSFN (char *name)   +bool getWriteError () +  bool getWriteError ()   -bool isDir () const -  +bool isDir () const +  bool isDirectory ()   -bool isFile () const -  -bool isHidden () const -  -bool isLFN () const -  -bool isOpen () const -  -bool isReadOnly () const -  -bool isRoot () const -  -bool isRoot32 () const -  -bool isRootFixed () const -  -bool isSubDir () const -  -bool isSystem () const -  +bool isFile () const +  +bool isHidden () const +  +bool isLFN () const +  +bool isOpen () const +  +bool isReadOnly () const +  +bool isRoot () const +  +bool isRoot32 () const +  +bool isRootFixed () const +  +bool isSubDir () const +  +bool isSystem () const +  void ls (uint8_t flags=0)   void ls (print_t *pr, uint8_t flags=0, uint8_t indent=0)   bool mkdir (FatFile *dir, const char *path, bool pFlag=true)   -const char * name () const -  -bool open (FatFileSystem *fs, const char *path, uint8_t oflag) -  -bool open (FatFile *dirFile, uint16_t index, uint8_t oflag) -  -bool open (FatFile *dirFile, const char *path, uint8_t oflag) -  -bool open (const char *path, uint8_t oflag=O_READ) -  -bool openNext (FatFile *dirFile, uint8_t oflag=O_READ) -  -File openNextFile (uint8_t mode=O_READ) -  +const char * name () const +  +bool open (FatFileSystem *fs, const char *path, oflag_t oflag) +  +bool open (FatFile *dirFile, uint16_t index, oflag_t oflag) +  +bool open (FatFile *dirFile, const char *path, oflag_t oflag) +  +bool open (const char *path, oflag_t oflag=O_RDONLY) +  +bool openNext (FatFile *dirFile, oflag_t oflag=O_RDONLY) +  +File openNextFile (oflag_t oflag=O_RDONLY) +  bool openRoot (FatVolume *vol)    operator bool () @@ -239,6 +223,10 @@   size_t printSFN (print_t *pr)   +int read (void *buf, size_t nbyte) +  +int read () +  int read ()   int read (void *buf, size_t nbyte) @@ -277,8 +265,14 @@   bool truncate (uint32_t length)   -FatVolumevolume () const -  +FatVolumevolume () const +  +int write (const char *str) +  +int write (uint8_t b) +  +int write (const void *buf, size_t nbyte) +  size_t write (uint8_t b)   size_t write (const uint8_t *buf, size_t size) @@ -296,7 +290,7 @@   static void dateTimeCallbackCancel ()   -static uint8_t dirName (const dir_t *dir, char *name) +static uint8_t dirName (const dir_t *dir, char *name)   static bool legal83Char (uint8_t c)   @@ -316,7 +310,9 @@

Detailed Description

Arduino SD.h style File API.

Constructor & Destructor Documentation

- + +

◆ File()

+
@@ -332,7 +328,7 @@ - + @@ -351,7 +347,7 @@
Parameters
uint8_t oflag_t  oflag 
- +
[in]pathA path with a valid 8.3 DOS name for a file to be opened.
[in]oflagValues for oflag are constructed by a bitwise-inclusive OR of open flags. see FatFile::open(FatFile*, const char*, uint8_t).
[in]oflagValues for oflag are constructed by a bitwise-inclusive OR of open flags. see FatFile::open(FatFile*, const char*, oflag_t).
@@ -359,7 +355,9 @@

Member Function Documentation

- + +

◆ available()

+
@@ -383,7 +381,9 @@

Member Function Documentation

- + +

◆ clearError()

+
@@ -407,7 +407,32 @@

Member Function Documentation

- + +

◆ clearWriteError() [1/2]

+ +
+
+
+ + + + +
+ + + + +
void FatFile::clearWriteError
+
+inline
+
+

Set writeError to zero

+ +
+
+ +

◆ clearWriteError() [2/2]

+
@@ -431,7 +456,9 @@

Member Function Documentation

- + +

◆ close()

+
@@ -456,7 +483,9 @@

Member Function Documentation

- + +

◆ contiguousRange()

+
@@ -499,7 +528,9 @@

Member Function Documentation

- + +

◆ createContiguous() [1/2]

+
@@ -549,7 +580,9 @@

Member Function Documentation

- + +

◆ createContiguous() [2/2]

+
@@ -592,7 +625,9 @@

Member Function Documentation

- + +

◆ curCluster()

+
@@ -616,7 +651,9 @@

Member Function Documentation

- + +

◆ curPosition()

+
@@ -640,7 +677,9 @@

Member Function Documentation

- + +

◆ cwd()

+
@@ -664,7 +703,9 @@

Member Function Documentation

- + +

◆ dateTimeCallback()

+
@@ -692,24 +733,14 @@

Member Function Documentation

-
void dateTime(uint16_t* date, uint16_t* time) {
-
uint16_t year;
-
uint8_t month, day, hour, minute, second;
-
-
// User gets date and time from GPS or real-time clock here
-
-
// return date using FAT_DATE macro to format fields
-
*date = FAT_DATE(year, month, day);
-
-
// return time using FAT_TIME macro to format fields
-
*time = FAT_TIME(hour, minute, second);
-
}
-

Sets the function that is called when a file is created or when a file's directory entry is modified by sync(). All timestamps, access, creation, and modify, are set when a file is created. sync() maintains the last access date and last modify date/time.

+
void dateTime(uint16_t* date, uint16_t* time) {
uint16_t year;
uint8_t month, day, hour, minute, second;
// User gets date and time from GPS or real-time clock here
// return date using FAT_DATE macro to format fields
*date = FAT_DATE(year, month, day);
// return time using FAT_TIME macro to format fields
*time = FAT_TIME(hour, minute, second);
}

Sets the function that is called when a file is created or when a file's directory entry is modified by sync(). All timestamps, access, creation, and modify, are set when a file is created. sync() maintains the last access date and last modify date/time.

See the timestamp() function.

- + +

◆ dateTimeCallbackCancel()

+
@@ -733,7 +764,9 @@

Member Function Documentation

- + +

◆ dirEntry()

+
@@ -765,7 +798,9 @@

Member Function Documentation

- + +

◆ dirIndex()

+
@@ -789,7 +824,9 @@

Member Function Documentation

- + +

◆ dirName()

+
@@ -832,7 +869,9 @@

Member Function Documentation

- + +

◆ dirSize()

+
@@ -856,7 +895,9 @@

Member Function Documentation

- + +

◆ dmpFile()

+
@@ -904,7 +945,9 @@

Member Function Documentation

- + +

◆ exists()

+
@@ -938,7 +981,9 @@

Member Function Documentation

- + +

◆ fgets()

+
@@ -990,7 +1035,9 @@

Member Function Documentation

- + +

◆ fileAttr()

+
@@ -1010,12 +1057,14 @@

Member Function Documentation

-

Type of file. You should use isFile() or isDir() instead of fileType() if possible.

+

Type of file. You should use isFile() or isDir() instead of fileType() if possible.

Returns
The file or directory type.
- + +

◆ fileSize()

+
@@ -1039,7 +1088,9 @@

Member Function Documentation

- + +

◆ firstBlock()

+
@@ -1063,7 +1114,9 @@

Member Function Documentation

- + +

◆ firstCluster()

+
@@ -1087,7 +1140,9 @@

Member Function Documentation

- + +

◆ flush()

+
@@ -1111,7 +1166,9 @@

Member Function Documentation

- + +

◆ getError()

+
@@ -1135,7 +1192,9 @@

Member Function Documentation

- + +

◆ getName()

+
@@ -1178,7 +1237,9 @@

Member Function Documentation

- + +

◆ getpos()

+
@@ -1208,7 +1269,9 @@

Member Function Documentation

- + +

◆ getSFN()

+
@@ -1236,11 +1299,41 @@

Member Function Documentation

-
Returns
The value true, is returned for success and the value false, is returned for failure.
+
Returns
The value true, is returned for success and the value false, is returned for failure.
+

Copyright (c) 2011-2018 Bill Greiman This file is part of the SdFat library for SD memory cards.

+

MIT License

+

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

- + +

◆ getWriteError() [1/2]

+ +
+
+ + + + + +
+ + + + +
bool FatFile::getWriteError
+
+inline
+
+
Returns
value of writeError
+ +
+
+ +

◆ getWriteError() [2/2]

+
@@ -1264,7 +1357,9 @@

Member Function Documentation

- + +

◆ isDir()

+
@@ -1288,7 +1383,9 @@

Member Function Documentation

- + +

◆ isDirectory()

+
@@ -1312,7 +1409,9 @@

Member Function Documentation

- + +

◆ isFile()

+
@@ -1336,7 +1435,9 @@

Member Function Documentation

- + +

◆ isHidden()

+
@@ -1360,7 +1461,9 @@

Member Function Documentation

- + +

◆ isLFN()

+
@@ -1384,7 +1487,9 @@

Member Function Documentation

- + +

◆ isOpen()

+
@@ -1408,7 +1513,9 @@

Member Function Documentation

- + +

◆ isReadOnly()

+
@@ -1432,7 +1539,9 @@

Member Function Documentation

- + +

◆ isRoot()

+
@@ -1456,7 +1565,9 @@

Member Function Documentation

- + +

◆ isRoot32()

+
@@ -1480,7 +1591,9 @@

Member Function Documentation

- + +

◆ isRootFixed()

+
@@ -1504,7 +1617,9 @@

Member Function Documentation

- + +

◆ isSubDir()

+
@@ -1528,7 +1643,9 @@

Member Function Documentation

- + +

◆ isSystem()

+
@@ -1552,7 +1669,9 @@

Member Function Documentation

- + +

◆ legal83Char()

+
@@ -1583,7 +1702,9 @@

Member Function Documentation

- + +

◆ ls() [1/2]

+
@@ -1617,7 +1738,9 @@

Member Function Documentation

- + +

◆ ls() [2/2]

+
@@ -1674,7 +1797,9 @@

Member Function Documentation

- + +

◆ mkdir()

+
@@ -1724,7 +1849,9 @@

Member Function Documentation

- + +

◆ name()

+
@@ -1749,7 +1876,9 @@

Member Function Documentation

- + +

◆ open() [1/4]

+
@@ -1771,7 +1900,7 @@

Member Function Documentation

- + @@ -1791,7 +1920,7 @@

Member Function Documentation

uint8_t oflag_t  oflag 
- +
[in]fsFile System where the file is located.
[in]pathwith a valid 8.3 DOS name for a file to be opened.
[in]oflagbitwise-inclusive OR of open mode flags. See see FatFile::open(FatFile*, const char*, uint8_t).
[in]oflagbitwise-inclusive OR of open mode flags. See see FatFile::open(FatFile*, const char*, oflag_t).
@@ -1799,7 +1928,9 @@

Member Function Documentation

- + +

◆ open() [2/4]

+
@@ -1821,7 +1952,7 @@

Member Function Documentation

- + @@ -1841,15 +1972,17 @@

Member Function Documentation

uint8_t oflag_t  oflag 
- +
[in]dirFileAn open FatFile instance for the directory.
[in]indexThe index of the directory entry for the file to be opened. The value for index is (directory file position)/32.
[in]oflagbitwise-inclusive OR of open mode flags. See see FatFile::open(FatFile*, const char*, uint8_t).
[in]oflagbitwise-inclusive OR of open mode flags. See see FatFile::open(FatFile*, const char*, oflag_t).
-

See open() by path for definition of flags.

Returns
true for success or false for failure.
+

See open() by path for definition of flags.

Returns
true for success or false for failure.
- + +

◆ open() [3/4]

+
@@ -1871,7 +2004,7 @@

Member Function Documentation

- + @@ -1895,16 +2028,16 @@

Member Function Documentation

uint8_t oflag_t  oflag 
-

O_READ - Open for reading.

-

O_RDONLY - Same as O_READ.

-

O_WRITE - Open for writing.

-

O_WRONLY - Same as O_WRITE.

+

O_RDONLY - Open for reading.

+

O_READ - Same as O_RDONLY (GNU).

+

O_WRONLY - Open for writing.

+

O_WRITE - Same as O_WRONLY (GNU).

O_RDWR - Open for reading and writing.

O_APPEND - If set, the file offset shall be set to the end of the file prior to each write.

O_AT_END - Set the initial position at the end of the file.

O_CREAT - If the file exists, this flag has no effect except as noted under O_EXCL below. Otherwise, the file shall be created

-

O_EXCL - If O_CREAT and O_EXCL are set, open() shall fail if the file exists.

-

O_SYNC - Call sync() after each write. This flag should not be used with write(uint8_t) or any functions do character at a time writes since sync() will be called after each byte.

+

O_EXCL - If O_CREAT and O_EXCL are set, open() shall fail if the file exists.

+

O_SYNC - Call sync() after each write. This flag should not be used with write(uint8_t) or any functions do character at a time writes since sync() will be called after each byte.

O_TRUNC - If the file exists and is a regular file, and the file is successfully opened and is not read only, its length shall be truncated to 0.

WARNING: A given file must not be opened by more than one FatFile object or file corruption may occur.

Note
Directory files must be opened read only. Write and truncation is not allowed for directory files.
@@ -1912,7 +2045,9 @@

Member Function Documentation

- + +

◆ open() [4/4]

+
@@ -1928,8 +2063,8 @@

Member Function Documentation

- - + + @@ -1947,7 +2082,7 @@

Member Function Documentation

Parameters
uint8_t oflag = O_READ oflag_t oflag = O_RDONLY 
- +
[in]pathA path with a valid 8.3 DOS name for a file to be opened.
[in]oflagbitwise-inclusive OR of open mode flags. See see FatFile::open(FatFile*, const char*, uint8_t).
[in]oflagbitwise-inclusive OR of open mode flags. See see FatFile::open(FatFile*, const char*, oflag_t).
@@ -1955,7 +2090,9 @@

Member Function Documentation

- + +

◆ openNext()

+
@@ -1971,8 +2108,8 @@

Member Function Documentation

- - + + @@ -1990,7 +2127,7 @@

Member Function Documentation

Parameters
uint8_t oflag = O_READ oflag_t oflag = O_RDONLY 
- +
[in]dirFileAn open FatFile instance for the directory containing the file to be opened.
[in]oflagbitwise-inclusive OR of open mode flags. See see FatFile::open(FatFile*, const char*, uint8_t).
[in]oflagbitwise-inclusive OR of open mode flags. See see FatFile::open(FatFile*, const char*, oflag_t).
@@ -1998,7 +2135,9 @@

Member Function Documentation

- + +

◆ openNextFile()

+
@@ -2008,8 +2147,8 @@

Member Function Documentation

- - + +
File File::openNextFile (uint8_t mode = O_READ)oflag_t oflag = O_RDONLY)
@@ -2022,7 +2161,7 @@

Member Function Documentation

Opens the next file or folder in a directory.

Parameters
- +
[in]modeopen mode flags.
[in]oflagopen oflag flags.
@@ -2030,7 +2169,9 @@

Member Function Documentation

- + +

◆ openRoot()

+
@@ -2062,7 +2203,9 @@

Member Function Documentation

- + +

◆ operator bool()

+
@@ -2087,7 +2230,9 @@

Member Function Documentation

- + +

◆ peek()

+
@@ -2112,7 +2257,9 @@

Member Function Documentation

- + +

◆ position()

+
@@ -2136,7 +2283,9 @@

Member Function Documentation

- + +

◆ printCreateDateTime()

+
@@ -2168,7 +2317,9 @@

Member Function Documentation

- + +

◆ printFatDate() [1/2]

+
@@ -2200,7 +2351,9 @@

Member Function Documentation

- + +

◆ printFatDate() [2/2]

+
@@ -2243,7 +2396,9 @@

Member Function Documentation

- + +

◆ printFatTime() [1/2]

+
@@ -2275,7 +2430,9 @@

Member Function Documentation

- + +

◆ printFatTime() [2/2]

+
@@ -2318,7 +2475,9 @@

Member Function Documentation

- + +

◆ printField() [1/5]

+
@@ -2367,7 +2526,9 @@

Member Function Documentation

- + +

◆ printField() [2/5]

+
@@ -2409,7 +2570,9 @@

Member Function Documentation

- + +

◆ printField() [3/5]

+
@@ -2451,7 +2614,9 @@

Member Function Documentation

- + +

◆ printField() [4/5]

+
@@ -2493,7 +2658,9 @@

Member Function Documentation

- + +

◆ printField() [5/5]

+
@@ -2535,7 +2702,9 @@

Member Function Documentation

- + +

◆ printFileSize()

+
@@ -2567,7 +2736,9 @@

Member Function Documentation

- + +

◆ printModifyDateTime()

+
@@ -2599,7 +2770,9 @@

Member Function Documentation

- + +

◆ printName() [1/2]

+
@@ -2624,7 +2797,9 @@

Member Function Documentation

- + +

◆ printName() [2/2]

+
@@ -2656,7 +2831,9 @@

Member Function Documentation

- + +

◆ printSFN()

+
@@ -2688,7 +2865,56 @@

Member Function Documentation

- + +

◆ read() [1/4]

+ +
+
+
+ + + + +
+ + + + +
int FatFile::read
+
+inline
+
+

Read the next byte from a file.

+
Returns
For success read returns the next byte in the file as an int. If an error occurs or end of file is reached -1 is returned.
+ +
+
+ +

◆ read() [2/4]

+ +
+
+ + + + +
int FatFile::read
+
+

Read data from a file starting at the current position.

+
Parameters
+ + + +
[out]bufPointer to the location that will receive the data.
[in]nbyteMaximum number of bytes to read.
+
+
+
Returns
For success read() returns the number of bytes read. A value less than nbyte, including zero, will be returned if end of file is reached. If an error occurs, read() returns -1. Possible errors include read() called before a file has been opened, corrupt file system or an I/O error occurred.
+ +
+
+ +

◆ read() [3/4]

+
@@ -2713,7 +2939,9 @@

Member Function Documentation

- + +

◆ read() [4/4]

+
@@ -2752,11 +2980,13 @@

Member Function Documentation

-
Returns
For success read() returns the number of bytes read. A value less than nbyte, including zero, will be returned if end of file is reached. If an error occurs, read() returns -1. Possible errors include read() called before a file has been opened, corrupt file system or an I/O error occurred.
+
Returns
For success read() returns the number of bytes read. A value less than nbyte, including zero, will be returned if end of file is reached. If an error occurs, read() returns -1. Possible errors include read() called before a file has been opened, corrupt file system or an I/O error occurred.
- + +

◆ readDir()

+
@@ -2788,7 +3018,9 @@

Member Function Documentation

- + +

◆ remove() [1/2]

+
@@ -2815,7 +3047,9 @@

Member Function Documentation

- + +

◆ remove() [2/2]

+
@@ -2860,7 +3094,9 @@

Member Function Documentation

- + +

◆ rename()

+
@@ -2903,7 +3139,9 @@

Member Function Documentation

- + +

◆ rewind()

+
@@ -2927,7 +3165,9 @@

Member Function Documentation

- + +

◆ rewindDirectory()

+
@@ -2951,7 +3191,9 @@

Member Function Documentation

- + +

◆ rmdir()

+
@@ -2978,7 +3220,9 @@

Member Function Documentation

- + +

◆ rmRfStar()

+
@@ -3006,7 +3250,9 @@

Member Function Documentation

- + +

◆ seek()

+
@@ -3038,7 +3284,9 @@

Member Function Documentation

- + +

◆ seekCur()

+
@@ -3069,7 +3317,9 @@

Member Function Documentation

- + +

◆ seekEnd()

+
@@ -3100,7 +3350,9 @@

Member Function Documentation

- + +

◆ seekSet()

+
@@ -3132,7 +3384,9 @@

Member Function Documentation

- + +

◆ setCwd()

+
@@ -3164,7 +3418,9 @@

Member Function Documentation

- + +

◆ setpos()

+
@@ -3194,7 +3450,9 @@

Member Function Documentation

- + +

◆ size()

+
@@ -3218,7 +3476,9 @@

Member Function Documentation

- + +

◆ sync()

+
@@ -3243,7 +3503,9 @@

Member Function Documentation

- + +

◆ timestamp() [1/2]

+
@@ -3276,7 +3538,9 @@

Member Function Documentation

- + +

◆ timestamp() [2/2]

+
@@ -3365,7 +3629,9 @@

Member Function Documentation

- + +

◆ truncate()

+
@@ -3397,7 +3663,9 @@

Member Function Documentation

- + +

◆ volume()

+
@@ -3421,7 +3689,91 @@

Member Function Documentation

- + +

◆ write() [1/7]

+ +
+
+
+ + + + +
+ + + + +
int FatFile::write
+
+inline
+
+

Write a single byte.

Parameters
+ + +
[in]bThe byte to be written.
+
+
+
Returns
+1 for success or -1 for failure.
+ +
+
+ +

◆ write() [2/7]

+ +
+
+ + + + + +
+ + + + +
int FatFile::write
+
+inline
+
+

Write a string to a file. Used by the Arduino Print class.

Parameters
+ + +
[in]strPointer to the string. Use getWriteError to check for errors.
+
+
+
Returns
count of characters written for success or -1 for failure.
+ +
+
+ +

◆ write() [3/7]

+ +
+
+ + + + +
int FatFile::write
+
+

Write data to an open file.

+
Note
Data is moved to the cache but may not be written to the storage device until sync() is called.
+
Parameters
+ + + +
[in]bufPointer to the location of the data to be written.
[in]nbyteNumber of bytes to write.
+
+
+
Returns
For success write() returns the number of bytes written, always nbyte. If an error occurs, write() returns -1. Possible errors include write() is called before a file has been opened, write is called for a read-only file, device is full, a corrupt file system or an I/O error.
+ +
+
+ +

◆ write() [4/7]

+
@@ -3452,7 +3804,9 @@

Member Function Documentation

- + +

◆ write() [5/7]

+
@@ -3496,7 +3850,9 @@

Member Function Documentation

- + +

◆ write() [6/7]

+
@@ -3527,7 +3883,9 @@

Member Function Documentation

- + +

◆ write() [7/7]

+
@@ -3567,7 +3925,7 @@

Member Function Documentation

-
Returns
For success write() returns the number of bytes written, always nbyte. If an error occurs, write() returns -1. Possible errors include write() is called before a file has been opened, write is called for a read-only file, device is full, a corrupt file system or an I/O error.
+
Returns
For success write() returns the number of bytes written, always nbyte. If an error occurs, write() returns -1. Possible errors include write() is called before a file has been opened, write is called for a read-only file, device is full, a corrupt file system or an I/O error.
@@ -3577,9 +3935,9 @@

Member Function Documentation

diff --git a/extras/html/class_minimum_serial-members.html b/extras/html/class_minimum_serial-members.html index 472096df..1848ac0a 100644 --- a/extras/html/class_minimum_serial-members.html +++ b/extras/html/class_minimum_serial-members.html @@ -3,7 +3,8 @@ - + + SdFat: Member List @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
diff --git a/extras/html/class_minimum_serial.html b/extras/html/class_minimum_serial.html index 27b4e056..96449046 100644 --- a/extras/html/class_minimum_serial.html +++ b/extras/html/class_minimum_serial.html @@ -3,7 +3,8 @@ - + + SdFat: MinimumSerial Class Reference @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +

Detailed Description

mini serial class for the SdFat library.

Member Function Documentation

- + +

◆ available()

+
@@ -142,7 +124,9 @@ - + +

◆ begin()

+
@@ -164,7 +148,9 @@ - + +

◆ flush()

+
@@ -180,7 +166,9 @@ - + +

◆ operator bool()

+
@@ -204,7 +192,9 @@ - + +

◆ read()

+
@@ -220,7 +210,9 @@ - + +

◆ write()

+
@@ -251,9 +243,9 @@ diff --git a/extras/html/class_print_file-members.html b/extras/html/class_print_file-members.html index 44473ffe..1d101c1c 100644 --- a/extras/html/class_print_file-members.html +++ b/extras/html/class_print_file-members.html @@ -3,7 +3,8 @@ - + +SdFat: Member List @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
available()PrintFileinline clearError()FatFileinline - clearWriteError()FatFileinline - close()FatFile - contiguousRange(uint32_t *bgnBlock, uint32_t *endBlock)FatFile - createContiguous(FatFile *dirFile, const char *path, uint32_t size)FatFile - createContiguous(const char *path, uint32_t size)FatFileinline - curCluster() const FatFileinline - curPosition() const FatFileinline - cwd()FatFileinlinestatic - dateTimeCallback(void(*dateTime)(uint16_t *date, uint16_t *time))FatFileinlinestatic - dateTimeCallbackCancel()FatFileinlinestatic - dirEntry(dir_t *dir)FatFile - dirIndex()FatFileinline - dirName(const dir_t *dir, char *name)FatFilestatic - dirSize()FatFile - dmpFile(print_t *pr, uint32_t pos, size_t n)FatFile - exists(const char *path)FatFileinline - FatFile()FatFileinline - FatFile(const char *path, uint8_t oflag)FatFileinline - fgets(char *str, int16_t num, char *delim=0)FatFile - fileAttr() const FatFileinline - fileSize() const FatFileinline - firstBlock()FatFileinline - firstCluster() const FatFileinline - flush()PrintFileinline - getError()FatFileinline - getName(char *name, size_t size)FatFile - getpos(FatPos_t *pos)FatFile - getSFN(char *name)FatFile - getWriteError()FatFileinline - isDir() const FatFileinline - isFile() const FatFileinline - isHidden() const FatFileinline - isLFN() const FatFileinline - isOpen() const FatFileinline - isReadOnly() const FatFileinline - isRoot() const FatFileinline - isRoot32() const FatFileinline - isRootFixed() const FatFileinline - isSubDir() const FatFileinline - isSystem() const FatFileinline + clearWriteError()PrintFileinline + FatFile::clearWriteError()FatFileinline + close()FatFile + contiguousRange(uint32_t *bgnBlock, uint32_t *endBlock)FatFile + createContiguous(FatFile *dirFile, const char *path, uint32_t size)FatFile + createContiguous(const char *path, uint32_t size)FatFileinline + curCluster() constFatFileinline + curPosition() constFatFileinline + cwd()FatFileinlinestatic + dateTimeCallback(void(*dateTime)(uint16_t *date, uint16_t *time))FatFileinlinestatic + dateTimeCallbackCancel()FatFileinlinestatic + dirEntry(dir_t *dir)FatFile + dirIndex()FatFileinline + dirName(const dir_t *dir, char *name)FatFilestatic + dirSize()FatFile + dmpFile(print_t *pr, uint32_t pos, size_t n)FatFile + exists(const char *path)FatFileinline + FatFile()FatFileinline + FatFile(const char *path, oflag_t oflag)FatFileinline + fgets(char *str, int16_t num, char *delim=0)FatFile + fileAttr() constFatFileinline + fileSize() constFatFileinline + firstBlock()FatFileinline + firstCluster() constFatFileinline + flush()PrintFileinline + getError()FatFileinline + getName(char *name, size_t size)FatFile + getpos(FatPos_t *pos)FatFile + getSFN(char *name)FatFile + getWriteError()PrintFileinline + FatFile::getWriteError()FatFileinline + isDir() constFatFileinline + isFile() constFatFileinline + isHidden() constFatFileinline + isLFN() constFatFileinline + isOpen() constFatFileinline + isReadOnly() constFatFileinline + isRoot() constFatFileinline + isRoot32() constFatFileinline + isRootFixed() constFatFileinline + isSubDir() constFatFileinline + isSystem() constFatFileinline legal83Char(uint8_t c)FatFileinlinestatic ls(uint8_t flags=0)FatFileinline ls(print_t *pr, uint8_t flags=0, uint8_t indent=0)FatFile mkdir(FatFile *dir, const char *path, bool pFlag=true)FatFile - open(FatFileSystem *fs, const char *path, uint8_t oflag)FatFile - open(FatFile *dirFile, uint16_t index, uint8_t oflag)FatFile - open(FatFile *dirFile, const char *path, uint8_t oflag)FatFile - open(const char *path, uint8_t oflag=O_READ)FatFileinline - openNext(FatFile *dirFile, uint8_t oflag=O_READ)FatFile + open(FatFileSystem *fs, const char *path, oflag_t oflag)FatFile + open(FatFile *dirFile, uint16_t index, oflag_t oflag)FatFile + open(FatFile *dirFile, const char *path, oflag_t oflag)FatFile + open(const char *path, oflag_t oflag=O_RDONLY)FatFileinline + openNext(FatFile *dirFile, oflag_t oflag=O_RDONLY)FatFile openRoot(FatVolume *vol)FatFile peek()PrintFileinline printCreateDateTime(print_t *pr)FatFile @@ -152,14 +134,16 @@ printField(int32_t value, char term)FatFile printField(uint32_t value, char term)FatFile PrintFile() (defined in PrintFile)PrintFileinline - PrintFile(const char *path, uint8_t oflag)PrintFileinline + PrintFile(const char *path, oflag_t oflag)PrintFileinline printFileSize(print_t *pr)FatFile printModifyDateTime(print_t *pr)FatFile printName()FatFileinline printName(print_t *pr)FatFile printSFN(print_t *pr)FatFile - read()FatFileinline - read(void *buf, size_t nbyte)FatFile + read()PrintFileinline + read(void *buf, size_t nbyte)PrintFile + FatFile::read()FatFileinline + FatFile::read(void *buf, size_t nbyte)FatFile readDir(dir_t *dir)FatFile remove()FatFile remove(FatFile *dirFile, const char *path)FatFilestatic @@ -176,17 +160,20 @@ timestamp(FatFile *file)FatFile timestamp(uint8_t flags, uint16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second)FatFile truncate(uint32_t length)FatFile - volume() const FatFileinline + volume() constFatFileinline write(uint8_t b)PrintFileinline write(const uint8_t *buf, size_t size)PrintFileinline - FatFile::write(const char *str)FatFileinline - FatFile::write(const void *buf, size_t nbyte)FatFile + write(const char *str)PrintFileinline + write(uint8_t b)PrintFileinline + write(const void *buf, size_t nbyte)PrintFile + FatFile::write(const char *str)FatFileinline + FatFile::write(const void *buf, size_t nbyte)FatFile
diff --git a/extras/html/class_print_file.html b/extras/html/class_print_file.html index ec56bef1..182bef34 100644 --- a/extras/html/class_print_file.html +++ b/extras/html/class_print_file.html @@ -3,7 +3,8 @@ - + + SdFat: PrintFile Class Reference @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
  void clearError ()   +void clearWriteError () +  void clearWriteError ()   bool close () @@ -128,10 +110,10 @@   bool createContiguous (const char *path, uint32_t size)   -uint32_t curCluster () const -  -uint32_t curPosition () const -  +uint32_t curCluster () const +  +uint32_t curPosition () const +  bool dirEntry (dir_t *dir)   uint16_t dirIndex () @@ -144,14 +126,14 @@   int16_t fgets (char *str, int16_t num, char *delim=0)   -uint8_t fileAttr () const -  -uint32_t fileSize () const -  +uint8_t fileAttr () const +  +uint32_t fileSize () const +  uint32_t firstBlock ()   -uint32_t firstCluster () const -  +uint32_t firstCluster () const +  void flush ()   uint8_t getError () @@ -162,46 +144,48 @@   bool getSFN (char *name)   +bool getWriteError () +  bool getWriteError ()   -bool isDir () const -  -bool isFile () const -  -bool isHidden () const -  -bool isLFN () const -  -bool isOpen () const -  -bool isReadOnly () const -  -bool isRoot () const -  -bool isRoot32 () const -  -bool isRootFixed () const -  -bool isSubDir () const -  -bool isSystem () const -  +bool isDir () const +  +bool isFile () const +  +bool isHidden () const +  +bool isLFN () const +  +bool isOpen () const +  +bool isReadOnly () const +  +bool isRoot () const +  +bool isRoot32 () const +  +bool isRootFixed () const +  +bool isSubDir () const +  +bool isSystem () const +  void ls (uint8_t flags=0)   void ls (print_t *pr, uint8_t flags=0, uint8_t indent=0)   bool mkdir (FatFile *dir, const char *path, bool pFlag=true)   -bool open (FatFileSystem *fs, const char *path, uint8_t oflag) -  -bool open (FatFile *dirFile, uint16_t index, uint8_t oflag) -  -bool open (FatFile *dirFile, const char *path, uint8_t oflag) -  -bool open (const char *path, uint8_t oflag=O_READ) -  -bool openNext (FatFile *dirFile, uint8_t oflag=O_READ) -  +bool open (FatFileSystem *fs, const char *path, oflag_t oflag) +  +bool open (FatFile *dirFile, uint16_t index, oflag_t oflag) +  +bool open (FatFile *dirFile, const char *path, oflag_t oflag) +  +bool open (const char *path, oflag_t oflag=O_RDONLY) +  +bool openNext (FatFile *dirFile, oflag_t oflag=O_RDONLY) +  bool openRoot (FatVolume *vol)   int peek () @@ -218,8 +202,8 @@   int printField (uint32_t value, char term)   - PrintFile (const char *path, uint8_t oflag) -  + PrintFile (const char *path, oflag_t oflag) +  size_t printFileSize (print_t *pr)   bool printModifyDateTime (print_t *pr) @@ -230,6 +214,10 @@   size_t printSFN (print_t *pr)   +int read () +  +int read (void *buf, size_t nbyte) +  int read ()   int read (void *buf, size_t nbyte) @@ -262,8 +250,14 @@   bool truncate (uint32_t length)   -FatVolumevolume () const -  +FatVolumevolume () const +  +int write (const void *buf, size_t nbyte) +  +int write (const char *str) +  +int write (uint8_t b) +  size_t write (uint8_t b)   size_t write (const uint8_t *buf, size_t size) @@ -301,7 +295,9 @@

Detailed Description

FatFile with Print.

Constructor & Destructor Documentation

- + +

◆ PrintFile()

+
@@ -317,7 +313,7 @@ - + @@ -336,7 +332,7 @@
Parameters
uint8_t oflag_t  oflag 
- +
[in]pathA path for a file to be opened.
[in]oflagValues for oflag are constructed by a bitwise-inclusive OR of open flags. see FatFile::open(FatFile*, const char*, uint8_t).
[in]oflagValues for oflag are constructed by a bitwise-inclusive OR of open flags. see FatFile::open(FatFile*, const char*, oflag_t).
@@ -344,7 +340,9 @@

Member Function Documentation

- + +

◆ available()

+
@@ -368,7 +366,9 @@

Member Function Documentation

- + +

◆ clearError()

+
@@ -392,7 +392,32 @@

Member Function Documentation

- + +

◆ clearWriteError() [1/2]

+ +
+
+
+ + + + +
+ + + + +
void FatFile::clearWriteError
+
+inline
+
+

Set writeError to zero

+ +
+
+ +

◆ clearWriteError() [2/2]

+
@@ -416,7 +441,9 @@

Member Function Documentation

- + +

◆ close()

+
@@ -441,7 +468,9 @@

Member Function Documentation

- + +

◆ contiguousRange()

+
@@ -484,7 +513,9 @@

Member Function Documentation

- + +

◆ createContiguous() [1/2]

+
@@ -534,7 +565,9 @@

Member Function Documentation

- + +

◆ createContiguous() [2/2]

+
@@ -577,7 +610,9 @@

Member Function Documentation

- + +

◆ curCluster()

+
@@ -601,7 +636,9 @@

Member Function Documentation

- + +

◆ curPosition()

+
@@ -625,7 +662,9 @@

Member Function Documentation

- + +

◆ cwd()

+
@@ -649,7 +688,9 @@

Member Function Documentation

- + +

◆ dateTimeCallback()

+
@@ -677,24 +718,14 @@

Member Function Documentation

-
void dateTime(uint16_t* date, uint16_t* time) {
-
uint16_t year;
-
uint8_t month, day, hour, minute, second;
-
-
// User gets date and time from GPS or real-time clock here
-
-
// return date using FAT_DATE macro to format fields
-
*date = FAT_DATE(year, month, day);
-
-
// return time using FAT_TIME macro to format fields
-
*time = FAT_TIME(hour, minute, second);
-
}
-

Sets the function that is called when a file is created or when a file's directory entry is modified by sync(). All timestamps, access, creation, and modify, are set when a file is created. sync() maintains the last access date and last modify date/time.

+
void dateTime(uint16_t* date, uint16_t* time) {
uint16_t year;
uint8_t month, day, hour, minute, second;
// User gets date and time from GPS or real-time clock here
// return date using FAT_DATE macro to format fields
*date = FAT_DATE(year, month, day);
// return time using FAT_TIME macro to format fields
*time = FAT_TIME(hour, minute, second);
}

Sets the function that is called when a file is created or when a file's directory entry is modified by sync(). All timestamps, access, creation, and modify, are set when a file is created. sync() maintains the last access date and last modify date/time.

See the timestamp() function.

- + +

◆ dateTimeCallbackCancel()

+
@@ -718,7 +749,9 @@

Member Function Documentation

- + +

◆ dirEntry()

+
@@ -750,7 +783,9 @@

Member Function Documentation

- + +

◆ dirIndex()

+
@@ -774,7 +809,9 @@

Member Function Documentation

- + +

◆ dirName()

+
@@ -817,7 +854,9 @@

Member Function Documentation

- + +

◆ dirSize()

+
@@ -841,7 +880,9 @@

Member Function Documentation

- + +

◆ dmpFile()

+
@@ -889,7 +930,9 @@

Member Function Documentation

- + +

◆ exists()

+
@@ -923,7 +966,9 @@

Member Function Documentation

- + +

◆ fgets()

+
@@ -975,7 +1020,9 @@

Member Function Documentation

- + +

◆ fileAttr()

+
@@ -995,12 +1042,14 @@

Member Function Documentation

-

Type of file. You should use isFile() or isDir() instead of fileType() if possible.

+

Type of file. You should use isFile() or isDir() instead of fileType() if possible.

Returns
The file or directory type.
- + +

◆ fileSize()

+
@@ -1024,7 +1073,9 @@

Member Function Documentation

- + +

◆ firstBlock()

+
@@ -1048,7 +1099,9 @@

Member Function Documentation

- + +

◆ firstCluster()

+
@@ -1072,7 +1125,9 @@

Member Function Documentation

- + +

◆ flush()

+
@@ -1096,7 +1151,9 @@

Member Function Documentation

- + +

◆ getError()

+
@@ -1120,7 +1177,9 @@

Member Function Documentation

- + +

◆ getName()

+
@@ -1163,7 +1222,9 @@

Member Function Documentation

- + +

◆ getpos()

+
@@ -1193,7 +1254,9 @@

Member Function Documentation

- + +

◆ getSFN()

+
@@ -1221,11 +1284,41 @@

Member Function Documentation

-
Returns
The value true, is returned for success and the value false, is returned for failure.
+
Returns
The value true, is returned for success and the value false, is returned for failure.
+

Copyright (c) 2011-2018 Bill Greiman This file is part of the SdFat library for SD memory cards.

+

MIT License

+

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+ +
+
+ +

◆ getWriteError() [1/2]

+ +
+
+ + + + + +
+ + + + +
bool FatFile::getWriteError
+
+inline
+
+
Returns
value of writeError
- + +

◆ getWriteError() [2/2]

+
@@ -1249,7 +1342,9 @@

Member Function Documentation

- + +

◆ isDir()

+
@@ -1273,7 +1368,9 @@

Member Function Documentation

- + +

◆ isFile()

+
@@ -1297,7 +1394,9 @@

Member Function Documentation

- + +

◆ isHidden()

+
@@ -1321,7 +1420,9 @@

Member Function Documentation

- + +

◆ isLFN()

+
@@ -1345,7 +1446,9 @@

Member Function Documentation

- + +

◆ isOpen()

+
@@ -1369,7 +1472,9 @@

Member Function Documentation

- + +

◆ isReadOnly()

+
@@ -1393,7 +1498,9 @@

Member Function Documentation

- + +

◆ isRoot()

+
@@ -1417,7 +1524,9 @@

Member Function Documentation

- + +

◆ isRoot32()

+
@@ -1441,7 +1550,9 @@

Member Function Documentation

- + +

◆ isRootFixed()

+
@@ -1465,7 +1576,9 @@

Member Function Documentation

- + +

◆ isSubDir()

+
@@ -1489,7 +1602,9 @@

Member Function Documentation

- + +

◆ isSystem()

+
@@ -1513,7 +1628,9 @@

Member Function Documentation

- + +

◆ legal83Char()

+
@@ -1544,7 +1661,9 @@

Member Function Documentation

- + +

◆ ls() [1/2]

+
@@ -1578,7 +1697,9 @@

Member Function Documentation

- + +

◆ ls() [2/2]

+
@@ -1635,7 +1756,9 @@

Member Function Documentation

- + +

◆ mkdir()

+
@@ -1685,7 +1808,9 @@

Member Function Documentation

- + +

◆ open() [1/4]

+
@@ -1707,7 +1832,7 @@

Member Function Documentation

- + @@ -1727,7 +1852,7 @@

Member Function Documentation

uint8_t oflag_t  oflag 
- +
[in]fsFile System where the file is located.
[in]pathwith a valid 8.3 DOS name for a file to be opened.
[in]oflagbitwise-inclusive OR of open mode flags. See see FatFile::open(FatFile*, const char*, uint8_t).
[in]oflagbitwise-inclusive OR of open mode flags. See see FatFile::open(FatFile*, const char*, oflag_t).
@@ -1735,7 +1860,9 @@

Member Function Documentation

- + +

◆ open() [2/4]

+
@@ -1757,7 +1884,7 @@

Member Function Documentation

- + @@ -1777,15 +1904,17 @@

Member Function Documentation

uint8_t oflag_t  oflag 
- +
[in]dirFileAn open FatFile instance for the directory.
[in]indexThe index of the directory entry for the file to be opened. The value for index is (directory file position)/32.
[in]oflagbitwise-inclusive OR of open mode flags. See see FatFile::open(FatFile*, const char*, uint8_t).
[in]oflagbitwise-inclusive OR of open mode flags. See see FatFile::open(FatFile*, const char*, oflag_t).
-

See open() by path for definition of flags.

Returns
true for success or false for failure.
+

See open() by path for definition of flags.

Returns
true for success or false for failure.
- + +

◆ open() [3/4]

+
@@ -1807,7 +1936,7 @@

Member Function Documentation

- + @@ -1831,16 +1960,16 @@

Member Function Documentation

uint8_t oflag_t  oflag 
-

O_READ - Open for reading.

-

O_RDONLY - Same as O_READ.

-

O_WRITE - Open for writing.

-

O_WRONLY - Same as O_WRITE.

+

O_RDONLY - Open for reading.

+

O_READ - Same as O_RDONLY (GNU).

+

O_WRONLY - Open for writing.

+

O_WRITE - Same as O_WRONLY (GNU).

O_RDWR - Open for reading and writing.

O_APPEND - If set, the file offset shall be set to the end of the file prior to each write.

O_AT_END - Set the initial position at the end of the file.

O_CREAT - If the file exists, this flag has no effect except as noted under O_EXCL below. Otherwise, the file shall be created

-

O_EXCL - If O_CREAT and O_EXCL are set, open() shall fail if the file exists.

-

O_SYNC - Call sync() after each write. This flag should not be used with write(uint8_t) or any functions do character at a time writes since sync() will be called after each byte.

+

O_EXCL - If O_CREAT and O_EXCL are set, open() shall fail if the file exists.

+

O_SYNC - Call sync() after each write. This flag should not be used with write(uint8_t) or any functions do character at a time writes since sync() will be called after each byte.

O_TRUNC - If the file exists and is a regular file, and the file is successfully opened and is not read only, its length shall be truncated to 0.

WARNING: A given file must not be opened by more than one FatFile object or file corruption may occur.

Note
Directory files must be opened read only. Write and truncation is not allowed for directory files.
@@ -1848,7 +1977,9 @@

Member Function Documentation

- + +

◆ open() [4/4]

+
@@ -1864,8 +1995,8 @@

Member Function Documentation

- - + + @@ -1883,7 +2014,7 @@

Member Function Documentation

Parameters
uint8_t oflag = O_READ oflag_t oflag = O_RDONLY 
- +
[in]pathA path with a valid 8.3 DOS name for a file to be opened.
[in]oflagbitwise-inclusive OR of open mode flags. See see FatFile::open(FatFile*, const char*, uint8_t).
[in]oflagbitwise-inclusive OR of open mode flags. See see FatFile::open(FatFile*, const char*, oflag_t).
@@ -1891,7 +2022,9 @@

Member Function Documentation

- + +

◆ openNext()

+
@@ -1907,8 +2040,8 @@

Member Function Documentation

- - + + @@ -1926,7 +2059,7 @@

Member Function Documentation

Parameters
uint8_t oflag = O_READ oflag_t oflag = O_RDONLY 
- +
[in]dirFileAn open FatFile instance for the directory containing the file to be opened.
[in]oflagbitwise-inclusive OR of open mode flags. See see FatFile::open(FatFile*, const char*, uint8_t).
[in]oflagbitwise-inclusive OR of open mode flags. See see FatFile::open(FatFile*, const char*, oflag_t).
@@ -1934,7 +2067,9 @@

Member Function Documentation

- + +

◆ openRoot()

+
@@ -1966,7 +2101,9 @@

Member Function Documentation

- + +

◆ peek()

+
@@ -1991,7 +2128,9 @@

Member Function Documentation

- + +

◆ printCreateDateTime()

+
@@ -2023,7 +2162,9 @@

Member Function Documentation

- + +

◆ printFatDate() [1/2]

+
@@ -2055,7 +2196,9 @@

Member Function Documentation

- + +

◆ printFatDate() [2/2]

+
@@ -2098,7 +2241,9 @@

Member Function Documentation

- + +

◆ printFatTime() [1/2]

+
@@ -2130,7 +2275,9 @@

Member Function Documentation

- + +

◆ printFatTime() [2/2]

+
@@ -2173,7 +2320,9 @@

Member Function Documentation

- + +

◆ printField() [1/5]

+
@@ -2222,7 +2371,9 @@

Member Function Documentation

- + +

◆ printField() [2/5]

+
@@ -2264,7 +2415,9 @@

Member Function Documentation

- + +

◆ printField() [3/5]

+
@@ -2306,7 +2459,9 @@

Member Function Documentation

- + +

◆ printField() [4/5]

+
@@ -2348,7 +2503,9 @@

Member Function Documentation

- + +

◆ printField() [5/5]

+
@@ -2390,7 +2547,9 @@

Member Function Documentation

- + +

◆ printFileSize()

+
@@ -2422,7 +2581,9 @@

Member Function Documentation

- + +

◆ printModifyDateTime()

+
@@ -2454,7 +2615,9 @@

Member Function Documentation

- + +

◆ printName() [1/2]

+
@@ -2479,7 +2642,9 @@

Member Function Documentation

- + +

◆ printName() [2/2]

+
@@ -2511,7 +2676,9 @@

Member Function Documentation

- + +

◆ printSFN()

+
@@ -2543,7 +2710,56 @@

Member Function Documentation

- + +

◆ read() [1/4]

+ +
+
+
+ + + +
int FatFile::read
+
+

Read data from a file starting at the current position.

+
Parameters
+ + + +
[out]bufPointer to the location that will receive the data.
[in]nbyteMaximum number of bytes to read.
+
+
+
Returns
For success read() returns the number of bytes read. A value less than nbyte, including zero, will be returned if end of file is reached. If an error occurs, read() returns -1. Possible errors include read() called before a file has been opened, corrupt file system or an I/O error occurred.
+ +
+
+ +

◆ read() [2/4]

+ +
+
+ + + + + +
+ + + + +
int FatFile::read
+
+inline
+
+

Read the next byte from a file.

+
Returns
For success read returns the next byte in the file as an int. If an error occurs or end of file is reached -1 is returned.
+ +
+
+ +

◆ read() [3/4]

+
@@ -2568,7 +2784,9 @@

Member Function Documentation

- + +

◆ read() [4/4]

+
@@ -2611,7 +2829,9 @@

Member Function Documentation

- + +

◆ readDir()

+
@@ -2643,7 +2863,9 @@

Member Function Documentation

- + +

◆ remove() [1/2]

+
@@ -2670,7 +2892,9 @@

Member Function Documentation

- + +

◆ remove() [2/2]

+
@@ -2715,7 +2939,9 @@

Member Function Documentation

- + +

◆ rename()

+
@@ -2758,7 +2984,9 @@

Member Function Documentation

- + +

◆ rewind()

+
@@ -2782,7 +3010,9 @@

Member Function Documentation

- + +

◆ rmdir()

+
@@ -2809,7 +3039,9 @@

Member Function Documentation

- + +

◆ rmRfStar()

+
@@ -2837,7 +3069,9 @@

Member Function Documentation

- + +

◆ seekCur()

+
@@ -2868,7 +3102,9 @@

Member Function Documentation

- + +

◆ seekEnd()

+
@@ -2899,7 +3135,9 @@

Member Function Documentation

- + +

◆ seekSet()

+
@@ -2931,7 +3169,9 @@

Member Function Documentation

- + +

◆ setCwd()

+
@@ -2963,7 +3203,9 @@

Member Function Documentation

- + +

◆ setpos()

+
@@ -2993,7 +3235,9 @@

Member Function Documentation

- + +

◆ sync()

+
@@ -3018,7 +3262,9 @@

Member Function Documentation

- + +

◆ timestamp() [1/2]

+
@@ -3051,7 +3297,9 @@

Member Function Documentation

- + +

◆ timestamp() [2/2]

+
@@ -3140,7 +3388,9 @@

Member Function Documentation

- + +

◆ truncate()

+
@@ -3172,7 +3422,9 @@

Member Function Documentation

- + +

◆ volume()

+
@@ -3196,7 +3448,91 @@

Member Function Documentation

- + +

◆ write() [1/7]

+ +
+
+
+ + + + +
+ + + + +
int FatFile::write
+
+inline
+
+

Write a single byte.

Parameters
+ + +
[in]bThe byte to be written.
+
+
+
Returns
+1 for success or -1 for failure.
+ +
+
+ +

◆ write() [2/7]

+ +
+
+ + + + +
int FatFile::write
+
+

Write data to an open file.

+
Note
Data is moved to the cache but may not be written to the storage device until sync() is called.
+
Parameters
+ + + +
[in]bufPointer to the location of the data to be written.
[in]nbyteNumber of bytes to write.
+
+
+
Returns
For success write() returns the number of bytes written, always nbyte. If an error occurs, write() returns -1. Possible errors include write() is called before a file has been opened, write is called for a read-only file, device is full, a corrupt file system or an I/O error.
+ +
+
+ +

◆ write() [3/7]

+ +
+
+ + + + + +
+ + + + +
int FatFile::write
+
+inline
+
+

Write a string to a file. Used by the Arduino Print class.

Parameters
+ + +
[in]strPointer to the string. Use getWriteError to check for errors.
+
+
+
Returns
count of characters written for success or -1 for failure.
+ +
+
+ +

◆ write() [4/7]

+
@@ -3229,7 +3565,9 @@

Member Function Documentation

- + +

◆ write() [5/7]

+
@@ -3273,7 +3611,9 @@

Member Function Documentation

- + +

◆ write() [6/7]

+
@@ -3304,7 +3644,9 @@

Member Function Documentation

- + +

◆ write() [7/7]

+
@@ -3344,7 +3686,7 @@

Member Function Documentation

-
Returns
For success write() returns the number of bytes written, always nbyte. If an error occurs, write() returns -1. Possible errors include write() is called before a file has been opened, write is called for a read-only file, device is full, a corrupt file system or an I/O error.
+
Returns
For success write() returns the number of bytes written, always nbyte. If an error occurs, write() returns -1. Possible errors include write() is called before a file has been opened, write is called for a read-only file, device is full, a corrupt file system or an I/O error.
@@ -3354,9 +3696,9 @@

Member Function Documentation

diff --git a/extras/html/class_sd2_card-members.html b/extras/html/class_sd2_card-members.html index 0ad99b48..242e6cb4 100644 --- a/extras/html/class_sd2_card-members.html +++ b/extras/html/class_sd2_card-members.html @@ -3,7 +3,8 @@ - + + SdFat: Member List @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
erase(uint32_t firstBlock, uint32_t lastBlock)SdSpiCard eraseSingleBlockEnable()SdSpiCard error(uint8_t code)SdSpiCardinline - errorCode() const SdSpiCardinline - errorData() const SdSpiCardinline + errorCode() constSdSpiCardinline + errorData() constSdSpiCardinline isBusy()SdSpiCard readBlock(uint32_t lba, uint8_t *dst)SdSpiCard readBlocks(uint32_t lba, uint8_t *dst, size_t nb)SdSpiCard @@ -110,7 +90,7 @@ spiStart()SdSpiCard spiStop()SdSpiCard syncBlocks()SdSpiCardinline - type() const SdSpiCardinline + type() constSdSpiCardinline writeBlock(uint32_t lba, const uint8_t *src)SdSpiCard writeBlocks(uint32_t lba, const uint8_t *src, size_t nb)SdSpiCard writeData(const uint8_t *src)SdSpiCard @@ -120,9 +100,9 @@
diff --git a/extras/html/class_sd2_card.html b/extras/html/class_sd2_card.html index 1ba9a572..2cacb56c 100644 --- a/extras/html/class_sd2_card.html +++ b/extras/html/class_sd2_card.html @@ -3,7 +3,8 @@ - + + SdFat: Sd2Card Class Reference @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@ - + - - + + + +
  void error (uint8_t code)   -int errorCode () const -  -int errorData () const -  +int errorCode () const +  +int errorData () const +  bool isBusy ()   bool readBlock (uint32_t lba, uint8_t *dst) @@ -154,8 +134,8 @@   bool syncBlocks ()   -int type () const -  +int type () const +  bool writeBlock (uint32_t lba, const uint8_t *src)   bool writeBlocks (uint32_t lba, const uint8_t *src, size_t nb) @@ -172,7 +152,9 @@

Detailed Description

Raw access to SD and SDHC card using default SPI library.

Member Function Documentation

- + +

◆ begin() [1/2]

+
@@ -221,7 +203,9 @@ - + +

◆ begin() [2/2]

+
@@ -263,7 +247,9 @@ - + +

◆ cardSize()

+
@@ -288,7 +274,9 @@ - + +

◆ erase()

+
@@ -332,7 +320,9 @@ - + +

◆ eraseSingleBlockEnable()

+
@@ -357,7 +347,9 @@ - + +

◆ error()

+
@@ -387,7 +379,9 @@ - + +

◆ errorCode()

+
@@ -411,7 +405,9 @@ - + +

◆ errorData()

+
@@ -435,7 +431,9 @@ - + +

◆ isBusy()

+
@@ -460,7 +458,9 @@ - + +

◆ readBlock()

+
@@ -503,7 +503,9 @@ - + +

◆ readBlocks()

+
@@ -553,7 +555,9 @@ - + +

◆ readCID()

+
@@ -585,7 +589,9 @@ - + +

◆ readCSD()

+
@@ -617,7 +623,9 @@ - + +

◆ readData()

+
@@ -649,7 +657,9 @@ - + +

◆ readOCR()

+
@@ -681,7 +691,9 @@ - + +

◆ readStart()

+
@@ -714,7 +726,9 @@ - + +

◆ readStatus()

+
@@ -745,7 +759,9 @@ - + +

◆ readStop()

+
@@ -770,7 +786,9 @@ - + +

◆ spiStart()

+
@@ -794,7 +812,9 @@ - + +

◆ spiStop()

+
@@ -818,7 +838,9 @@ - + +

◆ syncBlocks()

+
@@ -842,7 +864,9 @@ - + +

◆ type()

+
@@ -866,7 +890,9 @@ - + +

◆ writeBlock()

+
@@ -909,7 +935,9 @@ - + +

◆ writeBlocks()

+
@@ -959,7 +987,9 @@ - + +

◆ writeData()

+
@@ -990,7 +1020,9 @@ - + +

◆ writeStart() [1/2]

+
@@ -1023,7 +1055,9 @@ - + +

◆ writeStart() [2/2]

+
@@ -1067,7 +1101,9 @@ - + +

◆ writeStop()

+
@@ -1098,9 +1134,9 @@ diff --git a/extras/html/class_sd_base_file-members.html b/extras/html/class_sd_base_file-members.html index 72f47a42..388a6f86 100644 --- a/extras/html/class_sd_base_file-members.html +++ b/extras/html/class_sd_base_file-members.html @@ -3,7 +3,8 @@ - + +SdFat: Member List @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
contiguousRange(uint32_t *bgnBlock, uint32_t *endBlock)FatFile createContiguous(FatFile *dirFile, const char *path, uint32_t size)FatFile createContiguous(const char *path, uint32_t size)FatFileinline - curCluster() const FatFileinline - curPosition() const FatFileinline + curCluster() constFatFileinline + curPosition() constFatFileinline cwd()FatFileinlinestatic dateTimeCallback(void(*dateTime)(uint16_t *date, uint16_t *time))FatFileinlinestatic dateTimeCallbackCancel()FatFileinlinestatic @@ -107,37 +87,37 @@ dmpFile(print_t *pr, uint32_t pos, size_t n)FatFile exists(const char *path)FatFileinline FatFile()FatFileinline - FatFile(const char *path, uint8_t oflag)FatFileinline + FatFile(const char *path, oflag_t oflag)FatFileinline fgets(char *str, int16_t num, char *delim=0)FatFile - fileAttr() const FatFileinline - fileSize() const FatFileinline + fileAttr() constFatFileinline + fileSize() constFatFileinline firstBlock()FatFileinline - firstCluster() const FatFileinline + firstCluster() constFatFileinline getError()FatFileinline getName(char *name, size_t size)FatFile getpos(FatPos_t *pos)FatFile getSFN(char *name)FatFile getWriteError()FatFileinline - isDir() const FatFileinline - isFile() const FatFileinline - isHidden() const FatFileinline - isLFN() const FatFileinline - isOpen() const FatFileinline - isReadOnly() const FatFileinline - isRoot() const FatFileinline - isRoot32() const FatFileinline - isRootFixed() const FatFileinline - isSubDir() const FatFileinline - isSystem() const FatFileinline + isDir() constFatFileinline + isFile() constFatFileinline + isHidden() constFatFileinline + isLFN() constFatFileinline + isOpen() constFatFileinline + isReadOnly() constFatFileinline + isRoot() constFatFileinline + isRoot32() constFatFileinline + isRootFixed() constFatFileinline + isSubDir() constFatFileinline + isSystem() constFatFileinline legal83Char(uint8_t c)FatFileinlinestatic ls(uint8_t flags=0)FatFileinline ls(print_t *pr, uint8_t flags=0, uint8_t indent=0)FatFile mkdir(FatFile *dir, const char *path, bool pFlag=true)FatFile - open(FatFileSystem *fs, const char *path, uint8_t oflag)FatFile - open(FatFile *dirFile, uint16_t index, uint8_t oflag)FatFile - open(FatFile *dirFile, const char *path, uint8_t oflag)FatFile - open(const char *path, uint8_t oflag=O_READ)FatFileinline - openNext(FatFile *dirFile, uint8_t oflag=O_READ)FatFile + open(FatFileSystem *fs, const char *path, oflag_t oflag)FatFile + open(FatFile *dirFile, uint16_t index, oflag_t oflag)FatFile + open(FatFile *dirFile, const char *path, oflag_t oflag)FatFile + open(const char *path, oflag_t oflag=O_RDONLY)FatFileinline + openNext(FatFile *dirFile, oflag_t oflag=O_RDONLY)FatFile openRoot(FatVolume *vol)FatFile peek()FatFile printCreateDateTime(print_t *pr)FatFile @@ -165,7 +145,7 @@ rmdir()FatFile rmRfStar()FatFile SdBaseFile() (defined in SdBaseFile)SdBaseFileinline - SdBaseFile(const char *path, uint8_t oflag)SdBaseFileinline + SdBaseFile(const char *path, oflag_t oflag)SdBaseFileinline seekCur(int32_t offset)FatFileinline seekEnd(int32_t offset=0)FatFileinline seekSet(uint32_t pos)FatFile @@ -175,16 +155,16 @@ timestamp(FatFile *file)FatFile timestamp(uint8_t flags, uint16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second)FatFile truncate(uint32_t length)FatFile - volume() const FatFileinline + volume() constFatFileinline write(const char *str)FatFileinline write(uint8_t b)FatFileinline write(const void *buf, size_t nbyte)FatFile
diff --git a/extras/html/class_sd_base_file.html b/extras/html/class_sd_base_file.html index 525c284f..8379d9ed 100644 --- a/extras/html/class_sd_base_file.html +++ b/extras/html/class_sd_base_file.html @@ -3,7 +3,8 @@ - + + SdFat: SdBaseFile Class Reference @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
  bool createContiguous (const char *path, uint32_t size)   -uint32_t curCluster () const -  -uint32_t curPosition () const -  +uint32_t curCluster () const +  +uint32_t curPosition () const +  bool dirEntry (dir_t *dir)   uint16_t dirIndex () @@ -143,14 +123,14 @@   int16_t fgets (char *str, int16_t num, char *delim=0)   -uint8_t fileAttr () const -  -uint32_t fileSize () const -  +uint8_t fileAttr () const +  +uint32_t fileSize () const +  uint32_t firstBlock ()   -uint32_t firstCluster () const -  +uint32_t firstCluster () const +  uint8_t getError ()   bool getName (char *name, size_t size) @@ -161,44 +141,44 @@   bool getWriteError ()   -bool isDir () const -  -bool isFile () const -  -bool isHidden () const -  -bool isLFN () const -  -bool isOpen () const -  -bool isReadOnly () const -  -bool isRoot () const -  -bool isRoot32 () const -  -bool isRootFixed () const -  -bool isSubDir () const -  -bool isSystem () const -  +bool isDir () const +  +bool isFile () const +  +bool isHidden () const +  +bool isLFN () const +  +bool isOpen () const +  +bool isReadOnly () const +  +bool isRoot () const +  +bool isRoot32 () const +  +bool isRootFixed () const +  +bool isSubDir () const +  +bool isSystem () const +  void ls (uint8_t flags=0)   void ls (print_t *pr, uint8_t flags=0, uint8_t indent=0)   bool mkdir (FatFile *dir, const char *path, bool pFlag=true)   -bool open (FatFileSystem *fs, const char *path, uint8_t oflag) -  -bool open (FatFile *dirFile, uint16_t index, uint8_t oflag) -  -bool open (FatFile *dirFile, const char *path, uint8_t oflag) -  -bool open (const char *path, uint8_t oflag=O_READ) -  -bool openNext (FatFile *dirFile, uint8_t oflag=O_READ) -  +bool open (FatFileSystem *fs, const char *path, oflag_t oflag) +  +bool open (FatFile *dirFile, uint16_t index, oflag_t oflag) +  +bool open (FatFile *dirFile, const char *path, oflag_t oflag) +  +bool open (const char *path, oflag_t oflag=O_RDONLY) +  +bool openNext (FatFile *dirFile, oflag_t oflag=O_RDONLY) +  bool openRoot (FatVolume *vol)   int peek () @@ -241,8 +221,8 @@   bool rmRfStar ()   - SdBaseFile (const char *path, uint8_t oflag) -  + SdBaseFile (const char *path, oflag_t oflag) +  bool seekCur (int32_t offset)   bool seekEnd (int32_t offset=0) @@ -259,8 +239,8 @@   bool truncate (uint32_t length)   -FatVolumevolume () const -  +FatVolumevolume () const +  int write (const char *str)   int write (uint8_t b) @@ -296,7 +276,9 @@

Detailed Description

Class for backward compatibility.

Constructor & Destructor Documentation

- + +

◆ SdBaseFile()

+
@@ -312,7 +294,7 @@ - + @@ -331,7 +313,7 @@
Parameters
uint8_t oflag_t  oflag 
- +
[in]pathA path for a file to be opened.
[in]oflagValues for oflag are constructed by a bitwise-inclusive OR of open flags. see FatFile::open(FatFile*, const char*, uint8_t).
[in]oflagValues for oflag are constructed by a bitwise-inclusive OR of open flags. see FatFile::open(FatFile*, const char*, oflag_t).
@@ -339,7 +321,9 @@

Member Function Documentation

- + +

◆ available()

+
@@ -363,7 +347,9 @@

Member Function Documentation

- + +

◆ clearError()

+
@@ -387,7 +373,9 @@

Member Function Documentation

- + +

◆ clearWriteError()

+
@@ -411,7 +399,9 @@

Member Function Documentation

- + +

◆ close()

+
@@ -436,7 +426,9 @@

Member Function Documentation

- + +

◆ contiguousRange()

+
@@ -479,7 +471,9 @@

Member Function Documentation

- + +

◆ createContiguous() [1/2]

+
@@ -529,7 +523,9 @@

Member Function Documentation

- + +

◆ createContiguous() [2/2]

+
@@ -572,7 +568,9 @@

Member Function Documentation

- + +

◆ curCluster()

+
@@ -596,7 +594,9 @@

Member Function Documentation

- + +

◆ curPosition()

+
@@ -620,7 +620,9 @@

Member Function Documentation

- + +

◆ cwd()

+
@@ -644,7 +646,9 @@

Member Function Documentation

- + +

◆ dateTimeCallback()

+
@@ -672,24 +676,14 @@

Member Function Documentation

-
void dateTime(uint16_t* date, uint16_t* time) {
-
uint16_t year;
-
uint8_t month, day, hour, minute, second;
-
-
// User gets date and time from GPS or real-time clock here
-
-
// return date using FAT_DATE macro to format fields
-
*date = FAT_DATE(year, month, day);
-
-
// return time using FAT_TIME macro to format fields
-
*time = FAT_TIME(hour, minute, second);
-
}
-

Sets the function that is called when a file is created or when a file's directory entry is modified by sync(). All timestamps, access, creation, and modify, are set when a file is created. sync() maintains the last access date and last modify date/time.

+
void dateTime(uint16_t* date, uint16_t* time) {
uint16_t year;
uint8_t month, day, hour, minute, second;
// User gets date and time from GPS or real-time clock here
// return date using FAT_DATE macro to format fields
*date = FAT_DATE(year, month, day);
// return time using FAT_TIME macro to format fields
*time = FAT_TIME(hour, minute, second);
}

Sets the function that is called when a file is created or when a file's directory entry is modified by sync(). All timestamps, access, creation, and modify, are set when a file is created. sync() maintains the last access date and last modify date/time.

See the timestamp() function.

- + +

◆ dateTimeCallbackCancel()

+
@@ -713,7 +707,9 @@

Member Function Documentation

- + +

◆ dirEntry()

+
@@ -745,7 +741,9 @@

Member Function Documentation

- + +

◆ dirIndex()

+
@@ -769,7 +767,9 @@

Member Function Documentation

- + +

◆ dirName()

+
@@ -812,7 +812,9 @@

Member Function Documentation

- + +

◆ dirSize()

+
@@ -836,7 +838,9 @@

Member Function Documentation

- + +

◆ dmpFile()

+
@@ -884,7 +888,9 @@

Member Function Documentation

- + +

◆ exists()

+
@@ -918,7 +924,9 @@

Member Function Documentation

- + +

◆ fgets()

+
@@ -970,7 +978,9 @@

Member Function Documentation

- + +

◆ fileAttr()

+
@@ -990,12 +1000,14 @@

Member Function Documentation

-

Type of file. You should use isFile() or isDir() instead of fileType() if possible.

+

Type of file. You should use isFile() or isDir() instead of fileType() if possible.

Returns
The file or directory type.
- + +

◆ fileSize()

+
@@ -1019,7 +1031,9 @@

Member Function Documentation

- + +

◆ firstBlock()

+
@@ -1043,7 +1057,9 @@

Member Function Documentation

- + +

◆ firstCluster()

+
@@ -1067,7 +1083,9 @@

Member Function Documentation

- + +

◆ getError()

+
@@ -1091,7 +1109,9 @@

Member Function Documentation

- + +

◆ getName()

+
@@ -1134,7 +1154,9 @@

Member Function Documentation

- + +

◆ getpos()

+
@@ -1164,7 +1186,9 @@

Member Function Documentation

- + +

◆ getSFN()

+
@@ -1192,11 +1216,18 @@

Member Function Documentation

-
Returns
The value true, is returned for success and the value false, is returned for failure.
+
Returns
The value true, is returned for success and the value false, is returned for failure.
+

Copyright (c) 2011-2018 Bill Greiman This file is part of the SdFat library for SD memory cards.

+

MIT License

+

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

- + +

◆ getWriteError()

+
@@ -1220,7 +1251,9 @@

Member Function Documentation

- + +

◆ isDir()

+
@@ -1244,7 +1277,9 @@

Member Function Documentation

- + +

◆ isFile()

+
@@ -1268,7 +1303,9 @@

Member Function Documentation

- + +

◆ isHidden()

+
@@ -1292,7 +1329,9 @@

Member Function Documentation

- + +

◆ isLFN()

+
@@ -1316,7 +1355,9 @@

Member Function Documentation

- + +

◆ isOpen()

+
@@ -1340,7 +1381,9 @@

Member Function Documentation

- + +

◆ isReadOnly()

+
@@ -1364,7 +1407,9 @@

Member Function Documentation

- + +

◆ isRoot()

+
@@ -1388,7 +1433,9 @@

Member Function Documentation

- + +

◆ isRoot32()

+
@@ -1412,7 +1459,9 @@

Member Function Documentation

- + +

◆ isRootFixed()

+
@@ -1436,7 +1485,9 @@

Member Function Documentation

- + +

◆ isSubDir()

+
@@ -1460,7 +1511,9 @@

Member Function Documentation

- + +

◆ isSystem()

+
@@ -1484,7 +1537,9 @@

Member Function Documentation

- + +

◆ legal83Char()

+
@@ -1515,7 +1570,9 @@

Member Function Documentation

- + +

◆ ls() [1/2]

+
@@ -1549,7 +1606,9 @@

Member Function Documentation

- + +

◆ ls() [2/2]

+
@@ -1606,7 +1665,9 @@

Member Function Documentation

- + +

◆ mkdir()

+
@@ -1656,7 +1717,9 @@

Member Function Documentation

- + +

◆ open() [1/4]

+
@@ -1678,7 +1741,7 @@

Member Function Documentation

- + @@ -1698,7 +1761,7 @@

Member Function Documentation

uint8_t oflag_t  oflag 
- +
[in]fsFile System where the file is located.
[in]pathwith a valid 8.3 DOS name for a file to be opened.
[in]oflagbitwise-inclusive OR of open mode flags. See see FatFile::open(FatFile*, const char*, uint8_t).
[in]oflagbitwise-inclusive OR of open mode flags. See see FatFile::open(FatFile*, const char*, oflag_t).
@@ -1706,7 +1769,9 @@

Member Function Documentation

- + +

◆ open() [2/4]

+
@@ -1728,7 +1793,7 @@

Member Function Documentation

- + @@ -1748,15 +1813,17 @@

Member Function Documentation

uint8_t oflag_t  oflag 
- +
[in]dirFileAn open FatFile instance for the directory.
[in]indexThe index of the directory entry for the file to be opened. The value for index is (directory file position)/32.
[in]oflagbitwise-inclusive OR of open mode flags. See see FatFile::open(FatFile*, const char*, uint8_t).
[in]oflagbitwise-inclusive OR of open mode flags. See see FatFile::open(FatFile*, const char*, oflag_t).
-

See open() by path for definition of flags.

Returns
true for success or false for failure.
+

See open() by path for definition of flags.

Returns
true for success or false for failure.
- + +

◆ open() [3/4]

+
@@ -1778,7 +1845,7 @@

Member Function Documentation

- + @@ -1802,15 +1869,15 @@

Member Function Documentation

uint8_t oflag_t  oflag 
-

O_READ - Open for reading.

-

O_RDONLY - Same as O_READ.

-

O_WRITE - Open for writing.

-

O_WRONLY - Same as O_WRITE.

+

O_RDONLY - Open for reading.

+

O_READ - Same as O_RDONLY (GNU).

+

O_WRONLY - Open for writing.

+

O_WRITE - Same as O_WRONLY (GNU).

O_RDWR - Open for reading and writing.

O_APPEND - If set, the file offset shall be set to the end of the file prior to each write.

O_AT_END - Set the initial position at the end of the file.

O_CREAT - If the file exists, this flag has no effect except as noted under O_EXCL below. Otherwise, the file shall be created

-

O_EXCL - If O_CREAT and O_EXCL are set, open() shall fail if the file exists.

+

O_EXCL - If O_CREAT and O_EXCL are set, open() shall fail if the file exists.

O_SYNC - Call sync() after each write. This flag should not be used with write(uint8_t) or any functions do character at a time writes since sync() will be called after each byte.

O_TRUNC - If the file exists and is a regular file, and the file is successfully opened and is not read only, its length shall be truncated to 0.

WARNING: A given file must not be opened by more than one FatFile object or file corruption may occur.

@@ -1819,7 +1886,9 @@

Member Function Documentation

- + +

◆ open() [4/4]

+
@@ -1835,8 +1904,8 @@

Member Function Documentation

- - + + @@ -1854,7 +1923,7 @@

Member Function Documentation

Parameters
uint8_t oflag = O_READ oflag_t oflag = O_RDONLY 
- +
[in]pathA path with a valid 8.3 DOS name for a file to be opened.
[in]oflagbitwise-inclusive OR of open mode flags. See see FatFile::open(FatFile*, const char*, uint8_t).
[in]oflagbitwise-inclusive OR of open mode flags. See see FatFile::open(FatFile*, const char*, oflag_t).
@@ -1862,7 +1931,9 @@

Member Function Documentation

- + +

◆ openNext()

+
@@ -1878,8 +1949,8 @@

Member Function Documentation

- - + + @@ -1897,7 +1968,7 @@

Member Function Documentation

Parameters
uint8_t oflag = O_READ oflag_t oflag = O_RDONLY 
- +
[in]dirFileAn open FatFile instance for the directory containing the file to be opened.
[in]oflagbitwise-inclusive OR of open mode flags. See see FatFile::open(FatFile*, const char*, uint8_t).
[in]oflagbitwise-inclusive OR of open mode flags. See see FatFile::open(FatFile*, const char*, oflag_t).
@@ -1905,7 +1976,9 @@

Member Function Documentation

- + +

◆ openRoot()

+
@@ -1937,7 +2010,9 @@

Member Function Documentation

- + +

◆ peek()

+
@@ -1962,7 +2037,9 @@

Member Function Documentation

- + +

◆ printCreateDateTime()

+
@@ -1994,7 +2071,9 @@

Member Function Documentation

- + +

◆ printFatDate() [1/2]

+
@@ -2026,7 +2105,9 @@

Member Function Documentation

- + +

◆ printFatDate() [2/2]

+
@@ -2069,7 +2150,9 @@

Member Function Documentation

- + +

◆ printFatTime() [1/2]

+
@@ -2101,7 +2184,9 @@

Member Function Documentation

- + +

◆ printFatTime() [2/2]

+
@@ -2144,7 +2229,9 @@

Member Function Documentation

- + +

◆ printField() [1/5]

+
@@ -2193,7 +2280,9 @@

Member Function Documentation

- + +

◆ printField() [2/5]

+
@@ -2235,7 +2324,9 @@

Member Function Documentation

- + +

◆ printField() [3/5]

+
@@ -2277,7 +2368,9 @@

Member Function Documentation

- + +

◆ printField() [4/5]

+
@@ -2319,7 +2412,9 @@

Member Function Documentation

- + +

◆ printField() [5/5]

+
@@ -2361,7 +2456,9 @@

Member Function Documentation

- + +

◆ printFileSize()

+
@@ -2393,7 +2490,9 @@

Member Function Documentation

- + +

◆ printModifyDateTime()

+
@@ -2425,7 +2524,9 @@

Member Function Documentation

- + +

◆ printName() [1/2]

+
@@ -2450,7 +2551,9 @@

Member Function Documentation

- + +

◆ printName() [2/2]

+
@@ -2482,7 +2585,9 @@

Member Function Documentation

- + +

◆ printSFN()

+
@@ -2514,7 +2619,9 @@

Member Function Documentation

- + +

◆ read() [1/2]

+
@@ -2539,7 +2646,9 @@

Member Function Documentation

- + +

◆ read() [2/2]

+
@@ -2582,7 +2691,9 @@

Member Function Documentation

- + +

◆ readDir()

+
@@ -2614,7 +2725,9 @@

Member Function Documentation

- + +

◆ remove() [1/2]

+
@@ -2641,7 +2754,9 @@

Member Function Documentation

- + +

◆ remove() [2/2]

+
@@ -2686,7 +2801,9 @@

Member Function Documentation

- + +

◆ rename()

+
@@ -2729,7 +2846,9 @@

Member Function Documentation

- + +

◆ rewind()

+
@@ -2753,7 +2872,9 @@

Member Function Documentation

- + +

◆ rmdir()

+
@@ -2780,7 +2901,9 @@

Member Function Documentation

- + +

◆ rmRfStar()

+
@@ -2808,7 +2931,9 @@

Member Function Documentation

- + +

◆ seekCur()

+
@@ -2839,7 +2964,9 @@

Member Function Documentation

- + +

◆ seekEnd()

+
@@ -2870,7 +2997,9 @@

Member Function Documentation

- + +

◆ seekSet()

+
@@ -2902,7 +3031,9 @@

Member Function Documentation

- + +

◆ setCwd()

+
@@ -2934,7 +3065,9 @@

Member Function Documentation

- + +

◆ setpos()

+
@@ -2964,7 +3097,9 @@

Member Function Documentation

- + +

◆ sync()

+
@@ -2989,7 +3124,9 @@

Member Function Documentation

- + +

◆ timestamp() [1/2]

+
@@ -3022,7 +3159,9 @@

Member Function Documentation

- + +

◆ timestamp() [2/2]

+
@@ -3111,7 +3250,9 @@

Member Function Documentation

- + +

◆ truncate()

+
@@ -3143,7 +3284,9 @@

Member Function Documentation

- + +

◆ volume()

+
@@ -3167,7 +3310,9 @@

Member Function Documentation

- + +

◆ write() [1/3]

+
@@ -3198,7 +3343,9 @@

Member Function Documentation

- + +

◆ write() [2/3]

+
@@ -3229,7 +3376,9 @@

Member Function Documentation

- + +

◆ write() [3/3]

+
@@ -3279,9 +3428,9 @@

Member Function Documentation

diff --git a/extras/html/class_sd_fat-members.html b/extras/html/class_sd_fat-members.html index 4ea22a41..33403afc 100644 --- a/extras/html/class_sd_fat-members.html +++ b/extras/html/class_sd_fat-members.html @@ -3,7 +3,8 @@ - + +SdFat: Member List @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
begin(uint8_t csPin=SS, SPISettings spiSettings=SPI_FULL_SPEED)SdFatinline SdFileSystem< SdSpiCard >::begin()SdFileSystem< SdSpiCard >inline FatFileSystem::begin(BlockDriver *blockDev, uint8_t part=0)FatFileSysteminline - blocksPerCluster() const FatVolumeinline - blocksPerFat() const FatVolumeinline + blocksPerCluster() constFatVolumeinline + blocksPerFat() constFatVolumeinline cacheClear()FatVolumeinline card()SdFileSystem< SdSpiCard >inline cardBegin(uint8_t csPin=SS, SPISettings settings=SPI_FULL_SPEED)SdFatinline @@ -101,9 +81,9 @@ chdir(bool set_cwd=false)FatFileSysteminline chdir(const char *path, bool set_cwd=false)FatFileSysteminline chvol()FatFileSysteminline - clusterCount() const FatVolumeinline - clusterSizeShift() const FatVolumeinline - dataStartBlock() const FatVolumeinline + clusterCount() constFatVolumeinline + clusterSizeShift() constFatVolumeinline + dataStartBlock() constFatVolumeinline dbgFat(uint32_t n, uint32_t *v)FatVolumeinline errorHalt()SdFileSystem< SdSpiCard >inline errorHalt(Print *pr)SdFileSystem< SdSpiCard >inline @@ -119,8 +99,8 @@ errorPrint(Print *pr, const __FlashStringHelper *msg)SdFileSystem< SdSpiCard >inline exists(const char *path)FatFileSysteminline fatCount()FatVolumeinline - fatStartBlock() const FatVolumeinline - fatType() const FatVolumeinline + fatStartBlock() constFatVolumeinline + fatType() constFatVolumeinline FatVolume()FatVolumeinline freeClusterCount()FatVolume fsBegin()SdFatinline @@ -143,26 +123,26 @@ ls(print_t *pr, uint8_t flags=0)FatFileSysteminline ls(print_t *pr, const char *path, uint8_t flags)FatFileSysteminline mkdir(const char *path, bool pFlag=true)FatFileSysteminline - open(const char *path, uint8_t mode=FILE_READ)FatFileSysteminline - open(const String &path, uint8_t mode=FILE_READ)FatFileSysteminline + open(const char *path, oflag_t oflag=FILE_READ)FatFileSysteminline + open(const String &path, oflag_t oflag=FILE_READ)FatFileSysteminline remove(const char *path)FatFileSysteminline rename(const char *oldPath, const char *newPath)FatFileSysteminline rmdir(const char *path)FatFileSysteminline - rootDirEntryCount() const FatVolumeinline - rootDirStart() const FatVolumeinline + rootDirEntryCount() constFatVolumeinline + rootDirStart() constFatVolumeinline SdFat() (defined in SdFat)SdFatinline - SdFat(uint8_t spiPort)SdFatinlineexplicit + SdFat(SPIClass *spiPort)SdFatinlineexplicit truncate(const char *path, uint32_t length)FatFileSysteminline vol()FatFileSysteminline - volumeBlockCount() const FatVolumeinline + volumeBlockCount() constFatVolumeinline vwd()FatFileSysteminline wipe(print_t *pr=0)FatFileSysteminline
diff --git a/extras/html/class_sd_fat.html b/extras/html/class_sd_fat.html index 96214e79..cfe155af 100644 --- a/extras/html/class_sd_fat.html +++ b/extras/html/class_sd_fat.html @@ -3,7 +3,8 @@ - + + SdFat: SdFat Class Reference @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
  bool begin (uint8_t csPin=SS, SPISettings spiSettings=SPI_FULL_SPEED)   -uint8_t blocksPerCluster () const -  -uint32_t blocksPerFat () const -  +uint8_t blocksPerCluster () const +  +uint32_t blocksPerFat () const +  cache_tcacheClear ()   SdSpiCardcard () @@ -142,12 +122,12 @@   void chvol ()   -uint32_t clusterCount () const -  -uint8_t clusterSizeShift () const -  -uint32_t dataStartBlock () const -  +uint32_t clusterCount () const +  +uint8_t clusterSizeShift () const +  +uint32_t dataStartBlock () const +  int8_t dbgFat (uint32_t n, uint32_t *v)   void errorHalt () @@ -178,10 +158,10 @@   uint8_t fatCount ()   -uint32_t fatStartBlock () const -  -uint8_t fatType () const -  +uint32_t fatStartBlock () const +  +uint8_t fatType () const +  int32_t freeClusterCount ()   bool fsBegin () @@ -224,28 +204,28 @@   bool mkdir (const char *path, bool pFlag=true)   -File open (const char *path, uint8_t mode=FILE_READ) -  -File open (const String &path, uint8_t mode=FILE_READ) -  +File open (const char *path, oflag_t oflag=FILE_READ) +  +File open (const String &path, oflag_t oflag=FILE_READ) +  bool remove (const char *path)   bool rename (const char *oldPath, const char *newPath)   bool rmdir (const char *path)   -uint16_t rootDirEntryCount () const -  -uint32_t rootDirStart () const -  - SdFat (uint8_t spiPort) -  +uint16_t rootDirEntryCount () const +  +uint32_t rootDirStart () const +  + SdFat (SPIClass *spiPort) +  bool truncate (const char *path, uint32_t length)   FatVolumevol ()   -uint32_t volumeBlockCount () const -  +uint32_t volumeBlockCount () const +  FatFilevwd ()   bool wipe (print_t *pr=0) @@ -254,7 +234,9 @@

Detailed Description

Main file system class for SdFat library.

Constructor & Destructor Documentation

- + +

◆ SdFat()

+
@@ -264,7 +246,7 @@ - + @@ -285,7 +267,9 @@

Member Function Documentation

- + +

◆ begin() [1/3]

+
SdFat::SdFat (uint8_t SPIClass *  spiPort)
@@ -327,7 +311,9 @@

Member Function Documentation

- + +

◆ begin() [2/3]

+
@@ -351,7 +337,9 @@

Member Function Documentation

- + +

◆ begin() [3/3]

+
@@ -394,7 +382,9 @@

Member Function Documentation

- + +

◆ blocksPerCluster()

+
@@ -418,7 +408,9 @@

Member Function Documentation

- + +

◆ blocksPerFat()

+
@@ -442,7 +434,9 @@

Member Function Documentation

- + +

◆ cacheClear()

+
@@ -466,7 +460,9 @@

Member Function Documentation

- + +

◆ card()

+
@@ -490,7 +486,9 @@

Member Function Documentation

- + +

◆ cardBegin()

+
@@ -533,7 +531,9 @@

Member Function Documentation

- + +

◆ cardErrorCode()

+
@@ -557,7 +557,9 @@

Member Function Documentation

- + +

◆ cardErrorData()

+
@@ -581,7 +583,9 @@

Member Function Documentation

- + +

◆ chdir() [1/2]

+
@@ -614,7 +618,9 @@

Member Function Documentation

- + +

◆ chdir() [2/2]

+
@@ -660,7 +666,9 @@

Member Function Documentation

- + +

◆ chvol()

+
@@ -687,7 +695,9 @@

Member Function Documentation

- + +

◆ clusterCount()

+
@@ -711,7 +721,9 @@

Member Function Documentation

- + +

◆ clusterSizeShift()

+
@@ -735,7 +747,9 @@

Member Function Documentation

- + +

◆ dataStartBlock()

+
@@ -759,7 +773,9 @@

Member Function Documentation

- + +

◆ dbgFat()

+
@@ -798,11 +814,13 @@

Member Function Documentation

-
Returns
true for success or false for failure
+
Returns
-1 error, 0 EOC, else 1.
- + +

◆ errorHalt() [1/6]

+
@@ -826,7 +844,9 @@

Member Function Documentation

- + +

◆ errorHalt() [2/6]

+
@@ -857,7 +877,9 @@

Member Function Documentation

- + +

◆ errorHalt() [3/6]

+
@@ -888,7 +910,9 @@

Member Function Documentation

- + +

◆ errorHalt() [4/6]

+
@@ -930,7 +954,9 @@

Member Function Documentation

- + +

◆ errorHalt() [5/6]

+
@@ -961,7 +987,9 @@

Member Function Documentation

- + +

◆ errorHalt() [6/6]

+
@@ -1003,7 +1031,9 @@

Member Function Documentation

- + +

◆ errorPrint() [1/6]

+
@@ -1027,7 +1057,9 @@

Member Function Documentation

- + +

◆ errorPrint() [2/6]

+
@@ -1057,7 +1089,9 @@

Member Function Documentation

- + +

◆ errorPrint() [3/6]

+
@@ -1088,7 +1122,9 @@

Member Function Documentation

- + +

◆ errorPrint() [4/6]

+
@@ -1130,7 +1166,9 @@

Member Function Documentation

- + +

◆ errorPrint() [5/6]

+
@@ -1161,7 +1199,9 @@

Member Function Documentation

- + +

◆ errorPrint() [6/6]

+
@@ -1203,7 +1243,9 @@

Member Function Documentation

- + +

◆ exists()

+
@@ -1235,7 +1277,9 @@

Member Function Documentation

- + +

◆ fatCount()

+
@@ -1259,7 +1303,9 @@

Member Function Documentation

- + +

◆ fatStartBlock()

+
@@ -1283,7 +1329,9 @@

Member Function Documentation

- + +

◆ fatType()

+
@@ -1307,7 +1355,9 @@

Member Function Documentation

- + +

◆ freeClusterCount()

+
@@ -1332,7 +1382,9 @@

Member Function Documentation

- + +

◆ fsBegin()

+
@@ -1356,7 +1408,9 @@

Member Function Documentation

- + +

◆ init() [1/2]

+
@@ -1381,7 +1435,9 @@

Member Function Documentation

- + +

◆ init() [2/2]

+
@@ -1413,7 +1469,9 @@

Member Function Documentation

- + +

◆ initErrorHalt() [1/6]

+
@@ -1437,7 +1495,9 @@

Member Function Documentation

- + +

◆ initErrorHalt() [2/6]

+
@@ -1468,7 +1528,9 @@

Member Function Documentation

- + +

◆ initErrorHalt() [3/6]

+
@@ -1499,7 +1561,9 @@

Member Function Documentation

- + +

◆ initErrorHalt() [4/6]

+
@@ -1540,7 +1604,9 @@

Member Function Documentation

- + +

◆ initErrorHalt() [5/6]

+
@@ -1571,7 +1637,9 @@

Member Function Documentation

- + +

◆ initErrorHalt() [6/6]

+
@@ -1612,7 +1680,9 @@

Member Function Documentation

- + +

◆ initErrorPrint() [1/6]

+
@@ -1636,7 +1706,9 @@

Member Function Documentation

- + +

◆ initErrorPrint() [2/6]

+
@@ -1667,7 +1739,9 @@

Member Function Documentation

- + +

◆ initErrorPrint() [3/6]

+
@@ -1698,7 +1772,9 @@

Member Function Documentation

- + +

◆ initErrorPrint() [4/6]

+
@@ -1740,7 +1816,9 @@

Member Function Documentation

- + +

◆ initErrorPrint() [5/6]

+
@@ -1771,7 +1849,9 @@

Member Function Documentation

- + +

◆ initErrorPrint() [6/6]

+
@@ -1813,7 +1893,9 @@

Member Function Documentation

- + +

◆ ls() [1/4]

+
@@ -1847,7 +1929,9 @@

Member Function Documentation

- + +

◆ ls() [2/4]

+
@@ -1892,7 +1976,9 @@

Member Function Documentation

- + +

◆ ls() [3/4]

+
@@ -1937,7 +2023,9 @@

Member Function Documentation

- + +

◆ ls() [4/4]

+
@@ -1989,7 +2077,9 @@

Member Function Documentation

- + +

◆ mkdir()

+
@@ -2032,7 +2122,9 @@

Member Function Documentation

- + +

◆ open() [1/2]

+
@@ -2048,8 +2140,8 @@

Member Function Documentation

- - + + @@ -2067,7 +2159,7 @@

Member Function Documentation

Parameters
uint8_t mode = FILE_READ oflag_t oflag = FILE_READ 
- +
[in]pathlocation of file to be opened.
[in]modeopen mode flags.
[in]oflagopen flags.
@@ -2075,7 +2167,9 @@

Member Function Documentation

- + +

◆ open() [2/2]

+
@@ -2091,8 +2185,8 @@

Member Function Documentation

- - + + @@ -2110,7 +2204,7 @@

Member Function Documentation

Parameters
uint8_t mode = FILE_READ oflag_t oflag = FILE_READ 
- +
[in]pathlocation of file to be opened.
[in]modeopen mode flags.
[in]oflagopen flags.
@@ -2118,7 +2212,9 @@

Member Function Documentation

- + +

◆ remove()

+
@@ -2150,7 +2246,9 @@

Member Function Documentation

- + +

◆ rename()

+
@@ -2195,7 +2293,9 @@

Member Function Documentation

- + +

◆ rmdir()

+
@@ -2228,7 +2328,9 @@

Member Function Documentation

- + +

◆ rootDirEntryCount()

+
@@ -2252,7 +2354,9 @@

Member Function Documentation

- + +

◆ rootDirStart()

+
@@ -2276,7 +2380,9 @@

Member Function Documentation

- + +

◆ truncate()

+
@@ -2319,7 +2425,9 @@

Member Function Documentation

- + +

◆ vol()

+
@@ -2343,7 +2451,9 @@

Member Function Documentation

- + +

◆ volumeBlockCount()

+
@@ -2367,7 +2477,9 @@

Member Function Documentation

- + +

◆ vwd()

+
@@ -2391,7 +2503,9 @@

Member Function Documentation

- + +

◆ wipe()

+
@@ -2428,9 +2542,9 @@

Member Function Documentation

diff --git a/extras/html/class_sd_fat_e_x-members.html b/extras/html/class_sd_fat_e_x-members.html index b283f664..116bda77 100644 --- a/extras/html/class_sd_fat_e_x-members.html +++ b/extras/html/class_sd_fat_e_x-members.html @@ -3,7 +3,8 @@ - + +SdFat: Member List @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
begin(uint8_t csPin=SS, SPISettings spiSettings=SPI_FULL_SPEED)SdFatEXinline SdFileSystem< SdSpiCardEX >::begin()SdFileSystem< SdSpiCardEX >inline FatFileSystem::begin(BlockDriver *blockDev, uint8_t part=0)FatFileSysteminline - blocksPerCluster() const FatVolumeinline - blocksPerFat() const FatVolumeinline + blocksPerCluster() constFatVolumeinline + blocksPerFat() constFatVolumeinline cacheClear()FatVolumeinline card()SdFileSystem< SdSpiCardEX >inline cardErrorCode()SdFileSystem< SdSpiCardEX >inline @@ -100,9 +80,9 @@ chdir(bool set_cwd=false)FatFileSysteminline chdir(const char *path, bool set_cwd=false)FatFileSysteminline chvol()FatFileSysteminline - clusterCount() const FatVolumeinline - clusterSizeShift() const FatVolumeinline - dataStartBlock() const FatVolumeinline + clusterCount() constFatVolumeinline + clusterSizeShift() constFatVolumeinline + dataStartBlock() constFatVolumeinline dbgFat(uint32_t n, uint32_t *v)FatVolumeinline errorHalt()SdFileSystem< SdSpiCardEX >inline errorHalt(Print *pr)SdFileSystem< SdSpiCardEX >inline @@ -118,8 +98,8 @@ errorPrint(Print *pr, const __FlashStringHelper *msg)SdFileSystem< SdSpiCardEX >inline exists(const char *path)FatFileSysteminline fatCount()FatVolumeinline - fatStartBlock() const FatVolumeinline - fatType() const FatVolumeinline + fatStartBlock() constFatVolumeinline + fatType() constFatVolumeinline FatVolume()FatVolumeinline freeClusterCount()FatVolume init()FatVolumeinline @@ -141,26 +121,26 @@ ls(print_t *pr, uint8_t flags=0)FatFileSysteminline ls(print_t *pr, const char *path, uint8_t flags)FatFileSysteminline mkdir(const char *path, bool pFlag=true)FatFileSysteminline - open(const char *path, uint8_t mode=FILE_READ)FatFileSysteminline - open(const String &path, uint8_t mode=FILE_READ)FatFileSysteminline + open(const char *path, oflag_t oflag=FILE_READ)FatFileSysteminline + open(const String &path, oflag_t oflag=FILE_READ)FatFileSysteminline remove(const char *path)FatFileSysteminline rename(const char *oldPath, const char *newPath)FatFileSysteminline rmdir(const char *path)FatFileSysteminline - rootDirEntryCount() const FatVolumeinline - rootDirStart() const FatVolumeinline + rootDirEntryCount() constFatVolumeinline + rootDirStart() constFatVolumeinline SdFatEX() (defined in SdFatEX)SdFatEXinline - SdFatEX(uint8_t spiPort)SdFatEXinlineexplicit + SdFatEX(SPIClass *spiPort)SdFatEXinlineexplicit truncate(const char *path, uint32_t length)FatFileSysteminline vol()FatFileSysteminline - volumeBlockCount() const FatVolumeinline + volumeBlockCount() constFatVolumeinline vwd()FatFileSysteminline wipe(print_t *pr=0)FatFileSysteminline
diff --git a/extras/html/class_sd_fat_e_x.html b/extras/html/class_sd_fat_e_x.html index 33f77ab2..e51b2b88 100644 --- a/extras/html/class_sd_fat_e_x.html +++ b/extras/html/class_sd_fat_e_x.html @@ -3,7 +3,8 @@ - + + SdFat: SdFatEX Class Reference @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
  bool begin (uint8_t csPin=SS, SPISettings spiSettings=SPI_FULL_SPEED)   -uint8_t blocksPerCluster () const -  -uint32_t blocksPerFat () const -  +uint8_t blocksPerCluster () const +  +uint32_t blocksPerFat () const +  cache_tcacheClear ()   SdSpiCardEXcard () @@ -140,12 +120,12 @@   void chvol ()   -uint32_t clusterCount () const -  -uint8_t clusterSizeShift () const -  -uint32_t dataStartBlock () const -  +uint32_t clusterCount () const +  +uint8_t clusterSizeShift () const +  +uint32_t dataStartBlock () const +  int8_t dbgFat (uint32_t n, uint32_t *v)   void errorHalt () @@ -176,10 +156,10 @@   uint8_t fatCount ()   -uint32_t fatStartBlock () const -  -uint8_t fatType () const -  +uint32_t fatStartBlock () const +  +uint8_t fatType () const +  int32_t freeClusterCount ()   bool init () @@ -220,28 +200,28 @@   bool mkdir (const char *path, bool pFlag=true)   -File open (const char *path, uint8_t mode=FILE_READ) -  -File open (const String &path, uint8_t mode=FILE_READ) -  +File open (const char *path, oflag_t oflag=FILE_READ) +  +File open (const String &path, oflag_t oflag=FILE_READ) +  bool remove (const char *path)   bool rename (const char *oldPath, const char *newPath)   bool rmdir (const char *path)   -uint16_t rootDirEntryCount () const -  -uint32_t rootDirStart () const -  - SdFatEX (uint8_t spiPort) -  +uint16_t rootDirEntryCount () const +  +uint32_t rootDirStart () const +  + SdFatEX (SPIClass *spiPort) +  bool truncate (const char *path, uint32_t length)   FatVolumevol ()   -uint32_t volumeBlockCount () const -  +uint32_t volumeBlockCount () const +  FatFilevwd ()   bool wipe (print_t *pr=0) @@ -250,7 +230,9 @@

Detailed Description

SdFat class with extended SD I/O.

Constructor & Destructor Documentation

- + +

◆ SdFatEX()

+
@@ -260,7 +242,7 @@ - + @@ -281,7 +263,9 @@

Member Function Documentation

- + +

◆ begin() [1/3]

+
SdFatEX::SdFatEX (uint8_t SPIClass *  spiPort)
@@ -323,7 +307,9 @@

Member Function Documentation

- + +

◆ begin() [2/3]

+
@@ -347,7 +333,9 @@

Member Function Documentation

- + +

◆ begin() [3/3]

+
@@ -390,7 +378,9 @@

Member Function Documentation

- + +

◆ blocksPerCluster()

+
@@ -414,7 +404,9 @@

Member Function Documentation

- + +

◆ blocksPerFat()

+
@@ -438,7 +430,9 @@

Member Function Documentation

- + +

◆ cacheClear()

+
@@ -462,7 +456,9 @@

Member Function Documentation

- + +

◆ card()

+
@@ -486,7 +482,9 @@

Member Function Documentation

- + +

◆ cardErrorCode()

+
@@ -510,7 +508,9 @@

Member Function Documentation

- + +

◆ cardErrorData()

+
@@ -534,7 +534,9 @@

Member Function Documentation

- + +

◆ chdir() [1/2]

+
@@ -567,7 +569,9 @@

Member Function Documentation

- + +

◆ chdir() [2/2]

+
@@ -613,7 +617,9 @@

Member Function Documentation

- + +

◆ chvol()

+
@@ -640,7 +646,9 @@

Member Function Documentation

- + +

◆ clusterCount()

+
@@ -664,7 +672,9 @@

Member Function Documentation

- + +

◆ clusterSizeShift()

+
@@ -688,7 +698,9 @@

Member Function Documentation

- + +

◆ dataStartBlock()

+
@@ -712,7 +724,9 @@

Member Function Documentation

- + +

◆ dbgFat()

+
@@ -751,11 +765,13 @@

Member Function Documentation

-
Returns
true for success or false for failure
+
Returns
-1 error, 0 EOC, else 1.
- + +

◆ errorHalt() [1/6]

+
@@ -779,7 +795,9 @@

Member Function Documentation

- + +

◆ errorHalt() [2/6]

+
@@ -810,7 +828,9 @@

Member Function Documentation

- + +

◆ errorHalt() [3/6]

+
@@ -841,7 +861,9 @@

Member Function Documentation

- + +

◆ errorHalt() [4/6]

+
@@ -883,7 +905,9 @@

Member Function Documentation

- + +

◆ errorHalt() [5/6]

+
@@ -914,7 +938,9 @@

Member Function Documentation

- + +

◆ errorHalt() [6/6]

+
@@ -956,7 +982,9 @@

Member Function Documentation

- + +

◆ errorPrint() [1/6]

+
@@ -980,7 +1008,9 @@

Member Function Documentation

- + +

◆ errorPrint() [2/6]

+
@@ -1010,7 +1040,9 @@

Member Function Documentation

- + +

◆ errorPrint() [3/6]

+
@@ -1041,7 +1073,9 @@

Member Function Documentation

- + +

◆ errorPrint() [4/6]

+
@@ -1083,7 +1117,9 @@

Member Function Documentation

- + +

◆ errorPrint() [5/6]

+
@@ -1114,7 +1150,9 @@

Member Function Documentation

- + +

◆ errorPrint() [6/6]

+
@@ -1156,7 +1194,9 @@

Member Function Documentation

- + +

◆ exists()

+
@@ -1188,7 +1228,9 @@

Member Function Documentation

- + +

◆ fatCount()

+
@@ -1212,7 +1254,9 @@

Member Function Documentation

- + +

◆ fatStartBlock()

+
@@ -1236,7 +1280,9 @@

Member Function Documentation

- + +

◆ fatType()

+
@@ -1260,7 +1306,9 @@

Member Function Documentation

- + +

◆ freeClusterCount()

+
@@ -1285,7 +1333,9 @@

Member Function Documentation

- + +

◆ init() [1/2]

+
@@ -1310,7 +1360,9 @@

Member Function Documentation

- + +

◆ init() [2/2]

+
@@ -1342,7 +1394,9 @@

Member Function Documentation

- + +

◆ initErrorHalt() [1/6]

+
@@ -1366,7 +1420,9 @@

Member Function Documentation

- + +

◆ initErrorHalt() [2/6]

+
@@ -1397,7 +1453,9 @@

Member Function Documentation

- + +

◆ initErrorHalt() [3/6]

+
@@ -1428,7 +1486,9 @@

Member Function Documentation

- + +

◆ initErrorHalt() [4/6]

+
@@ -1469,7 +1529,9 @@

Member Function Documentation

- + +

◆ initErrorHalt() [5/6]

+
@@ -1500,7 +1562,9 @@

Member Function Documentation

- + +

◆ initErrorHalt() [6/6]

+
@@ -1541,7 +1605,9 @@

Member Function Documentation

- + +

◆ initErrorPrint() [1/6]

+
@@ -1565,7 +1631,9 @@

Member Function Documentation

- + +

◆ initErrorPrint() [2/6]

+
@@ -1596,7 +1664,9 @@

Member Function Documentation

- + +

◆ initErrorPrint() [3/6]

+
@@ -1627,7 +1697,9 @@

Member Function Documentation

- + +

◆ initErrorPrint() [4/6]

+
@@ -1669,7 +1741,9 @@

Member Function Documentation

- + +

◆ initErrorPrint() [5/6]

+
@@ -1700,7 +1774,9 @@

Member Function Documentation

- + +

◆ initErrorPrint() [6/6]

+
@@ -1742,7 +1818,9 @@

Member Function Documentation

- + +

◆ ls() [1/4]

+
@@ -1776,7 +1854,9 @@

Member Function Documentation

- + +

◆ ls() [2/4]

+
@@ -1821,7 +1901,9 @@

Member Function Documentation

- + +

◆ ls() [3/4]

+
@@ -1866,7 +1948,9 @@

Member Function Documentation

- + +

◆ ls() [4/4]

+
@@ -1918,7 +2002,9 @@

Member Function Documentation

- + +

◆ mkdir()

+
@@ -1961,7 +2047,9 @@

Member Function Documentation

- + +

◆ open() [1/2]

+
@@ -1977,8 +2065,8 @@

Member Function Documentation

- - + + @@ -1996,7 +2084,7 @@

Member Function Documentation

Parameters
uint8_t mode = FILE_READ oflag_t oflag = FILE_READ 
- +
[in]pathlocation of file to be opened.
[in]modeopen mode flags.
[in]oflagopen flags.
@@ -2004,7 +2092,9 @@

Member Function Documentation

- + +

◆ open() [2/2]

+
@@ -2020,8 +2110,8 @@

Member Function Documentation

- - + + @@ -2039,7 +2129,7 @@

Member Function Documentation

Parameters
uint8_t mode = FILE_READ oflag_t oflag = FILE_READ 
- +
[in]pathlocation of file to be opened.
[in]modeopen mode flags.
[in]oflagopen flags.
@@ -2047,7 +2137,9 @@

Member Function Documentation

- + +

◆ remove()

+
@@ -2079,7 +2171,9 @@

Member Function Documentation

- + +

◆ rename()

+
@@ -2124,7 +2218,9 @@

Member Function Documentation

- + +

◆ rmdir()

+
@@ -2157,7 +2253,9 @@

Member Function Documentation

- + +

◆ rootDirEntryCount()

+
@@ -2181,7 +2279,9 @@

Member Function Documentation

- + +

◆ rootDirStart()

+
@@ -2205,7 +2305,9 @@

Member Function Documentation

- + +

◆ truncate()

+
@@ -2248,7 +2350,9 @@

Member Function Documentation

- + +

◆ vol()

+
@@ -2272,7 +2376,9 @@

Member Function Documentation

- + +

◆ volumeBlockCount()

+
@@ -2296,7 +2402,9 @@

Member Function Documentation

- + +

◆ vwd()

+
@@ -2320,7 +2428,9 @@

Member Function Documentation

- + +

◆ wipe()

+
@@ -2357,9 +2467,9 @@

Member Function Documentation

diff --git a/extras/html/class_sd_fat_sdio-members.html b/extras/html/class_sd_fat_sdio-members.html index 902f6a88..d524f8f9 100644 --- a/extras/html/class_sd_fat_sdio-members.html +++ b/extras/html/class_sd_fat_sdio-members.html @@ -3,7 +3,8 @@ - + +SdFat: Member List @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
begin()SdFatSdioinline FatFileSystem::begin(BlockDriver *blockDev, uint8_t part=0)FatFileSysteminline - blocksPerCluster() const FatVolumeinline - blocksPerFat() const FatVolumeinline + blocksPerCluster() constFatVolumeinline + blocksPerFat() constFatVolumeinline cacheClear()FatVolumeinline card()SdFileSystem< SdioCard >inline cardBegin()SdFatSdioinline @@ -100,9 +80,9 @@ chdir(bool set_cwd=false)FatFileSysteminline chdir(const char *path, bool set_cwd=false)FatFileSysteminline chvol()FatFileSysteminline - clusterCount() const FatVolumeinline - clusterSizeShift() const FatVolumeinline - dataStartBlock() const FatVolumeinline + clusterCount() constFatVolumeinline + clusterSizeShift() constFatVolumeinline + dataStartBlock() constFatVolumeinline dbgFat(uint32_t n, uint32_t *v)FatVolumeinline errorHalt()SdFileSystem< SdioCard >inline errorHalt(Print *pr)SdFileSystem< SdioCard >inline @@ -118,8 +98,8 @@ errorPrint(Print *pr, const __FlashStringHelper *msg)SdFileSystem< SdioCard >inline exists(const char *path)FatFileSysteminline fatCount()FatVolumeinline - fatStartBlock() const FatVolumeinline - fatType() const FatVolumeinline + fatStartBlock() constFatVolumeinline + fatType() constFatVolumeinline FatVolume()FatVolumeinline freeClusterCount()FatVolume fsBegin()SdFatSdioinline @@ -142,24 +122,24 @@ ls(print_t *pr, uint8_t flags=0)FatFileSysteminline ls(print_t *pr, const char *path, uint8_t flags)FatFileSysteminline mkdir(const char *path, bool pFlag=true)FatFileSysteminline - open(const char *path, uint8_t mode=FILE_READ)FatFileSysteminline - open(const String &path, uint8_t mode=FILE_READ)FatFileSysteminline + open(const char *path, oflag_t oflag=FILE_READ)FatFileSysteminline + open(const String &path, oflag_t oflag=FILE_READ)FatFileSysteminline remove(const char *path)FatFileSysteminline rename(const char *oldPath, const char *newPath)FatFileSysteminline rmdir(const char *path)FatFileSysteminline - rootDirEntryCount() const FatVolumeinline - rootDirStart() const FatVolumeinline + rootDirEntryCount() constFatVolumeinline + rootDirStart() constFatVolumeinline truncate(const char *path, uint32_t length)FatFileSysteminline vol()FatFileSysteminline - volumeBlockCount() const FatVolumeinline + volumeBlockCount() constFatVolumeinline vwd()FatFileSysteminline wipe(print_t *pr=0)FatFileSysteminline
diff --git a/extras/html/class_sd_fat_sdio.html b/extras/html/class_sd_fat_sdio.html index b876bb10..1fe68066 100644 --- a/extras/html/class_sd_fat_sdio.html +++ b/extras/html/class_sd_fat_sdio.html @@ -3,7 +3,8 @@ - + + SdFat: SdFatSdio Class Reference @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
  bool begin ()   -uint8_t blocksPerCluster () const -  -uint32_t blocksPerFat () const -  +uint8_t blocksPerCluster () const +  +uint32_t blocksPerFat () const +  cache_tcacheClear ()   SdioCardcard () @@ -140,12 +120,12 @@   void chvol ()   -uint32_t clusterCount () const -  -uint8_t clusterSizeShift () const -  -uint32_t dataStartBlock () const -  +uint32_t clusterCount () const +  +uint8_t clusterSizeShift () const +  +uint32_t dataStartBlock () const +  int8_t dbgFat (uint32_t n, uint32_t *v)   void errorHalt () @@ -176,10 +156,10 @@   uint8_t fatCount ()   -uint32_t fatStartBlock () const -  -uint8_t fatType () const -  +uint32_t fatStartBlock () const +  +uint8_t fatType () const +  int32_t freeClusterCount ()   bool fsBegin () @@ -222,26 +202,26 @@   bool mkdir (const char *path, bool pFlag=true)   -File open (const char *path, uint8_t mode=FILE_READ) -  -File open (const String &path, uint8_t mode=FILE_READ) -  +File open (const char *path, oflag_t oflag=FILE_READ) +  +File open (const String &path, oflag_t oflag=FILE_READ) +  bool remove (const char *path)   bool rename (const char *oldPath, const char *newPath)   bool rmdir (const char *path)   -uint16_t rootDirEntryCount () const -  -uint32_t rootDirStart () const -  +uint16_t rootDirEntryCount () const +  +uint32_t rootDirStart () const +  bool truncate (const char *path, uint32_t length)   FatVolumevol ()   -uint32_t volumeBlockCount () const -  +uint32_t volumeBlockCount () const +  FatFilevwd ()   bool wipe (print_t *pr=0) @@ -250,7 +230,9 @@

Detailed Description

SdFat class using SDIO.

Member Function Documentation

- + +

◆ begin() [1/2]

+
@@ -292,7 +274,9 @@ - + +

◆ begin() [2/2]

+
@@ -316,7 +300,9 @@ - + +

◆ blocksPerCluster()

+
@@ -340,7 +326,9 @@ - + +

◆ blocksPerFat()

+
@@ -364,7 +352,9 @@ - + +

◆ cacheClear()

+
@@ -388,7 +378,9 @@ - + +

◆ card()

+
@@ -412,7 +404,9 @@ - + +

◆ cardBegin()

+
@@ -437,7 +431,9 @@ - + +

◆ cardErrorCode()

+
@@ -461,7 +457,9 @@ - + +

◆ cardErrorData()

+
@@ -485,7 +483,9 @@ - + +

◆ chdir() [1/2]

+
@@ -518,7 +518,9 @@ - + +

◆ chdir() [2/2]

+
@@ -564,7 +566,9 @@ - + +

◆ chvol()

+
@@ -591,7 +595,9 @@ - + +

◆ clusterCount()

+
@@ -615,7 +621,9 @@ - + +

◆ clusterSizeShift()

+
@@ -639,7 +647,9 @@ - + +

◆ dataStartBlock()

+
@@ -663,7 +673,9 @@ - + +

◆ dbgFat()

+
@@ -702,11 +714,13 @@
-
Returns
true for success or false for failure
+
Returns
-1 error, 0 EOC, else 1.
- + +

◆ errorHalt() [1/6]

+
@@ -730,7 +744,9 @@ - + +

◆ errorHalt() [2/6]

+
@@ -761,7 +777,9 @@ - + +

◆ errorHalt() [3/6]

+
@@ -792,7 +810,9 @@ - + +

◆ errorHalt() [4/6]

+
@@ -834,7 +854,9 @@ - + +

◆ errorHalt() [5/6]

+
@@ -865,7 +887,9 @@ - + +

◆ errorHalt() [6/6]

+
@@ -907,7 +931,9 @@ - + +

◆ errorPrint() [1/6]

+
@@ -931,7 +957,9 @@ - + +

◆ errorPrint() [2/6]

+
@@ -961,7 +989,9 @@ - + +

◆ errorPrint() [3/6]

+
@@ -992,7 +1022,9 @@ - + +

◆ errorPrint() [4/6]

+
@@ -1034,7 +1066,9 @@ - + +

◆ errorPrint() [5/6]

+
@@ -1065,7 +1099,9 @@ - + +

◆ errorPrint() [6/6]

+
@@ -1107,7 +1143,9 @@ - + +

◆ exists()

+
@@ -1139,7 +1177,9 @@ - + +

◆ fatCount()

+
@@ -1163,7 +1203,9 @@ - + +

◆ fatStartBlock()

+
@@ -1187,7 +1229,9 @@ - + +

◆ fatType()

+
@@ -1211,7 +1255,9 @@ - + +

◆ freeClusterCount()

+
@@ -1236,7 +1282,9 @@ - + +

◆ fsBegin()

+
@@ -1260,7 +1308,9 @@ - + +

◆ init() [1/2]

+
@@ -1285,7 +1335,9 @@ - + +

◆ init() [2/2]

+
@@ -1317,7 +1369,9 @@ - + +

◆ initErrorHalt() [1/6]

+
@@ -1341,7 +1395,9 @@ - + +

◆ initErrorHalt() [2/6]

+
@@ -1372,7 +1428,9 @@ - + +

◆ initErrorHalt() [3/6]

+
@@ -1393,7 +1451,7 @@
-

Print message, error details, and halt after begin() fails.

+

Print message, error details, and halt after begin() fails.

Parameters
@@ -1403,7 +1461,9 @@ - + +

◆ initErrorHalt() [4/6]

+
[in]msgMessage to print.
@@ -1434,7 +1494,7 @@
-

Print message, error details, and halt after begin() fails.

Parameters
+

Print message, error details, and halt after begin() fails.

Parameters
@@ -1444,7 +1504,9 @@ - + +

◆ initErrorHalt() [5/6]

+
[in]prPrint device.
[in]msgMessage to print.
@@ -1465,7 +1527,7 @@
-

Print message, error details, and halt after begin() fails.

+

Print message, error details, and halt after begin() fails.

Parameters
@@ -1475,7 +1537,9 @@ - + +

◆ initErrorHalt() [6/6]

+
[in]msgMessage to print.
@@ -1506,7 +1570,7 @@
-

Print message, error details, and halt after begin() fails.

Parameters
+

Print message, error details, and halt after begin() fails.

Parameters
@@ -1516,7 +1580,9 @@ - + +

◆ initErrorPrint() [1/6]

+
[in]prPrint device for message.
[in]msgMessage to print.
@@ -1536,11 +1602,13 @@
-

Print error details after begin() fails.

+

Print error details after begin() fails.

- + +

◆ initErrorPrint() [2/6]

+
@@ -1561,7 +1629,7 @@
-

Print error details after begin() fails.

+

Print error details after begin() fails.

Parameters
@@ -1571,7 +1639,9 @@ - + +

◆ initErrorPrint() [3/6]

+
[in]prPrint destination.
@@ -1592,7 +1662,7 @@
-

Print message and error details and halt after begin() fails.

+

Print message and error details and halt after begin() fails.

Parameters
@@ -1602,7 +1672,9 @@ - + +

◆ initErrorPrint() [4/6]

+
[in]msgMessage to print.
@@ -1633,7 +1705,7 @@
-

Print message and error details and halt after begin() fails.

+

Print message and error details and halt after begin() fails.

Parameters
@@ -1644,7 +1716,9 @@ - + +

◆ initErrorPrint() [5/6]

+
[in]prPrint destination.
@@ -1665,7 +1739,7 @@
-

Print message and error details and halt after begin() fails.

+

Print message and error details and halt after begin() fails.

Parameters
@@ -1675,7 +1749,9 @@ - + +

◆ initErrorPrint() [6/6]

+
[in]msgMessage to print.
@@ -1706,7 +1782,7 @@
-

Print message and error details and halt after begin() fails.

+

Print message and error details and halt after begin() fails.

Parameters
@@ -1717,7 +1793,9 @@ - + +

◆ ls() [1/4]

+
[in]prPrint destination.
@@ -1751,7 +1829,9 @@ - + +

◆ ls() [2/4]

+
@@ -1796,7 +1876,9 @@ - + +

◆ ls() [3/4]

+
@@ -1841,7 +1923,9 @@ - + +

◆ ls() [4/4]

+
@@ -1893,7 +1977,9 @@ - + +

◆ mkdir()

+
@@ -1936,7 +2022,9 @@ - + +

◆ open() [1/2]

+
@@ -1952,8 +2040,8 @@ - - + + @@ -1971,7 +2059,7 @@
Parameters
uint8_t mode = FILE_READ oflag_t oflag = FILE_READ 
- +
[in]pathlocation of file to be opened.
[in]modeopen mode flags.
[in]oflagopen flags.
@@ -1979,7 +2067,9 @@
- + +

◆ open() [2/2]

+
@@ -1995,8 +2085,8 @@ - - + + @@ -2014,7 +2104,7 @@
Parameters
uint8_t mode = FILE_READ oflag_t oflag = FILE_READ 
- +
[in]pathlocation of file to be opened.
[in]modeopen mode flags.
[in]oflagopen flags.
@@ -2022,7 +2112,9 @@
- + +

◆ remove()

+
@@ -2054,7 +2146,9 @@ - + +

◆ rename()

+
@@ -2099,7 +2193,9 @@ - + +

◆ rmdir()

+
@@ -2132,7 +2228,9 @@ - + +

◆ rootDirEntryCount()

+
@@ -2156,7 +2254,9 @@ - + +

◆ rootDirStart()

+
@@ -2180,7 +2280,9 @@ - + +

◆ truncate()

+
@@ -2223,7 +2325,9 @@ - + +

◆ vol()

+
@@ -2247,7 +2351,9 @@ - + +

◆ volumeBlockCount()

+
@@ -2271,7 +2377,9 @@ - + +

◆ vwd()

+
@@ -2295,7 +2403,9 @@ - + +

◆ wipe()

+
@@ -2332,9 +2442,9 @@ diff --git a/extras/html/class_sd_fat_sdio_e_x-members.html b/extras/html/class_sd_fat_sdio_e_x-members.html new file mode 100644 index 00000000..9a8a67e7 --- /dev/null +++ b/extras/html/class_sd_fat_sdio_e_x-members.html @@ -0,0 +1,145 @@ + + + + + + + +SdFat: Member List + + + + + + + + + +
+
+
+ + + + + +
+
SdFat +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
+
SdFatSdioEX Member List
+
+
+ +

This is the complete list of members for SdFatSdioEX, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
begin()SdFatSdioEXinline
FatFileSystem::begin(BlockDriver *blockDev, uint8_t part=0)FatFileSysteminline
blocksPerCluster() constFatVolumeinline
blocksPerFat() constFatVolumeinline
cacheClear()FatVolumeinline
card()SdFatSdioEXinline
cardBegin()SdFatSdioEXinline
cardErrorCode()SdFileSystem< SdioCardEX >inline
cardErrorData()SdFileSystem< SdioCardEX >inline
chdir(bool set_cwd=false)FatFileSysteminline
chdir(const char *path, bool set_cwd=false)FatFileSysteminline
chvol()FatFileSysteminline
clusterCount() constFatVolumeinline
clusterSizeShift() constFatVolumeinline
dataStartBlock() constFatVolumeinline
dbgFat(uint32_t n, uint32_t *v)FatVolumeinline
errorHalt()SdFileSystem< SdioCardEX >inline
errorHalt(Print *pr)SdFileSystem< SdioCardEX >inline
errorHalt(char const *msg)SdFileSystem< SdioCardEX >inline
errorHalt(Print *pr, char const *msg)SdFileSystem< SdioCardEX >inline
errorHalt(const __FlashStringHelper *msg)SdFileSystem< SdioCardEX >inline
errorHalt(Print *pr, const __FlashStringHelper *msg)SdFileSystem< SdioCardEX >inline
errorPrint()SdFileSystem< SdioCardEX >inline
errorPrint(Print *pr)SdFileSystem< SdioCardEX >inline
errorPrint(const char *msg)SdFileSystem< SdioCardEX >inline
errorPrint(Print *pr, char const *msg)SdFileSystem< SdioCardEX >inline
errorPrint(const __FlashStringHelper *msg)SdFileSystem< SdioCardEX >inline
errorPrint(Print *pr, const __FlashStringHelper *msg)SdFileSystem< SdioCardEX >inline
exists(const char *path)FatFileSysteminline
fatCount()FatVolumeinline
fatStartBlock() constFatVolumeinline
fatType() constFatVolumeinline
FatVolume()FatVolumeinline
freeClusterCount()FatVolume
fsBegin()SdFatSdioEXinline
init()FatVolumeinline
init(uint8_t part)FatVolume
initErrorHalt()SdFileSystem< SdioCardEX >inline
initErrorHalt(Print *pr)SdFileSystem< SdioCardEX >inline
initErrorHalt(char const *msg)SdFileSystem< SdioCardEX >inline
initErrorHalt(Print *pr, char const *msg)SdFileSystem< SdioCardEX >inline
initErrorHalt(const __FlashStringHelper *msg)SdFileSystem< SdioCardEX >inline
initErrorHalt(Print *pr, const __FlashStringHelper *msg)SdFileSystem< SdioCardEX >inline
initErrorPrint()SdFileSystem< SdioCardEX >inline
initErrorPrint(Print *pr)SdFileSystem< SdioCardEX >inline
initErrorPrint(char const *msg)SdFileSystem< SdioCardEX >inline
initErrorPrint(Print *pr, char const *msg)SdFileSystem< SdioCardEX >inline
initErrorPrint(const __FlashStringHelper *msg)SdFileSystem< SdioCardEX >inline
initErrorPrint(Print *pr, const __FlashStringHelper *msg)SdFileSystem< SdioCardEX >inline
ls(uint8_t flags=0)FatFileSysteminline
ls(const char *path, uint8_t flags=0)FatFileSysteminline
ls(print_t *pr, uint8_t flags=0)FatFileSysteminline
ls(print_t *pr, const char *path, uint8_t flags)FatFileSysteminline
mkdir(const char *path, bool pFlag=true)FatFileSysteminline
open(const char *path, oflag_t oflag=FILE_READ)FatFileSysteminline
open(const String &path, oflag_t oflag=FILE_READ)FatFileSysteminline
remove(const char *path)FatFileSysteminline
rename(const char *oldPath, const char *newPath)FatFileSysteminline
rmdir(const char *path)FatFileSysteminline
rootDirEntryCount() constFatVolumeinline
rootDirStart() constFatVolumeinline
truncate(const char *path, uint32_t length)FatFileSysteminline
vol()FatFileSysteminline
volumeBlockCount() constFatVolumeinline
vwd()FatFileSysteminline
wipe(print_t *pr=0)FatFileSysteminline
+ + + + diff --git a/extras/html/class_sd_fat_sdio_e_x.html b/extras/html/class_sd_fat_sdio_e_x.html new file mode 100644 index 00000000..d8c95f20 --- /dev/null +++ b/extras/html/class_sd_fat_sdio_e_x.html @@ -0,0 +1,2450 @@ + + + + + + + +SdFat: SdFatSdioEX Class Reference + + + + + + + + + +
+
+ + + + + + +
+
SdFat +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+ +
+
SdFatSdioEX Class Reference
+
+
+ +

SdFat class using SDIO. + More...

+ +

#include <SdFat.h>

+
+Inheritance diagram for SdFatSdioEX:
+
+
Inheritance graph
+ + + + + +
[legend]
+
+Collaboration diagram for SdFatSdioEX:
+
+
Collaboration graph
+ + + + + +
[legend]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

bool begin (BlockDriver *blockDev, uint8_t part=0)
 
bool begin ()
 
uint8_t blocksPerCluster () const
 
uint32_t blocksPerFat () const
 
cache_tcacheClear ()
 
SdioCardEXcard ()
 
bool cardBegin ()
 
uint8_t cardErrorCode ()
 
uint32_t cardErrorData ()
 
bool chdir (bool set_cwd=false)
 
bool chdir (const char *path, bool set_cwd=false)
 
void chvol ()
 
uint32_t clusterCount () const
 
uint8_t clusterSizeShift () const
 
uint32_t dataStartBlock () const
 
int8_t dbgFat (uint32_t n, uint32_t *v)
 
void errorHalt ()
 
void errorHalt (Print *pr)
 
void errorHalt (char const *msg)
 
void errorHalt (Print *pr, char const *msg)
 
void errorHalt (const __FlashStringHelper *msg)
 
void errorHalt (Print *pr, const __FlashStringHelper *msg)
 
void errorPrint ()
 
void errorPrint (Print *pr)
 
void errorPrint (const char *msg)
 
void errorPrint (Print *pr, char const *msg)
 
void errorPrint (const __FlashStringHelper *msg)
 
void errorPrint (Print *pr, const __FlashStringHelper *msg)
 
bool exists (const char *path)
 
uint8_t fatCount ()
 
uint32_t fatStartBlock () const
 
uint8_t fatType () const
 
int32_t freeClusterCount ()
 
bool fsBegin ()
 
bool init ()
 
bool init (uint8_t part)
 
void initErrorHalt ()
 
void initErrorHalt (Print *pr)
 
void initErrorHalt (char const *msg)
 
void initErrorHalt (Print *pr, char const *msg)
 
void initErrorHalt (const __FlashStringHelper *msg)
 
void initErrorHalt (Print *pr, const __FlashStringHelper *msg)
 
void initErrorPrint ()
 
void initErrorPrint (Print *pr)
 
void initErrorPrint (char const *msg)
 
void initErrorPrint (Print *pr, char const *msg)
 
void initErrorPrint (const __FlashStringHelper *msg)
 
void initErrorPrint (Print *pr, const __FlashStringHelper *msg)
 
void ls (uint8_t flags=0)
 
void ls (const char *path, uint8_t flags=0)
 
void ls (print_t *pr, uint8_t flags=0)
 
void ls (print_t *pr, const char *path, uint8_t flags)
 
bool mkdir (const char *path, bool pFlag=true)
 
File open (const char *path, oflag_t oflag=FILE_READ)
 
File open (const String &path, oflag_t oflag=FILE_READ)
 
bool remove (const char *path)
 
bool rename (const char *oldPath, const char *newPath)
 
bool rmdir (const char *path)
 
uint16_t rootDirEntryCount () const
 
uint32_t rootDirStart () const
 
bool truncate (const char *path, uint32_t length)
 
FatVolumevol ()
 
uint32_t volumeBlockCount () const
 
FatFilevwd ()
 
bool wipe (print_t *pr=0)
 
+

Detailed Description

+

SdFat class using SDIO.

+

Member Function Documentation

+ +

◆ begin() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool FatFileSystem::begin (BlockDriverblockDev,
uint8_t part = 0 
)
+
+inlineinherited
+
+

Initialize an FatFileSystem object.

Parameters
+ + + +
[in]blockDevDevice block driver.
[in]partpartition to initialize.
+
+
+
Returns
The value true is returned for success and the value false is returned for failure.
+ +
+
+ +

◆ begin() [2/2]

+ +
+
+ + + + + +
+ + + + + + + +
bool SdFatSdioEX::begin ()
+
+inline
+
+

Initialize SD card and file system.

Returns
true for success else false.
+ +
+
+ +

◆ blocksPerCluster()

+ +
+
+ + + + + +
+ + + + + + + +
uint8_t FatVolume::blocksPerCluster () const
+
+inlineinherited
+
+
Returns
The volume's cluster size in blocks.
+ +
+
+ +

◆ blocksPerFat()

+ +
+
+ + + + + +
+ + + + + + + +
uint32_t FatVolume::blocksPerFat () const
+
+inlineinherited
+
+
Returns
The number of blocks in one FAT.
+ +
+
+ +

◆ cacheClear()

+ +
+
+ + + + + +
+ + + + + + + +
cache_t* FatVolume::cacheClear ()
+
+inlineinherited
+
+

Clear the cache and returns a pointer to the cache. Not for normal apps.

Returns
A pointer to the cache buffer or zero if an error occurs.
+ +
+
+ +

◆ card()

+ +
+
+ + + + + +
+ + + + + + + +
SdioCardEX* SdFatSdioEX::card ()
+
+inline
+
+
Returns
Pointer to SD card object
+ +
+
+ +

◆ cardBegin()

+ +
+
+ + + + + +
+ + + + + + + +
bool SdFatSdioEX::cardBegin ()
+
+inline
+
+

Initialize SD card for diagnostic use only.

+
Returns
true for success else false.
+ +
+
+ +

◆ cardErrorCode()

+ +
+
+ + + + + +
+ + + + + + + +
uint8_t SdFileSystem< SdioCardEX >::cardErrorCode ()
+
+inlineinherited
+
+
Returns
The card error code
+ +
+
+ +

◆ cardErrorData()

+ +
+
+ + + + + +
+ + + + + + + +
uint32_t SdFileSystem< SdioCardEX >::cardErrorData ()
+
+inlineinherited
+
+
Returns
the card error data
+ +
+
+ +

◆ chdir() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + +
bool FatFileSystem::chdir (bool set_cwd = false)
+
+inlineinherited
+
+

Change a volume's working directory to root

+

Changes the volume's working directory to the SD's root directory. Optionally set the current working directory to the volume's working directory.

+
Parameters
+ + +
[in]set_cwdSet the current working directory to this volume's working directory if true.
+
+
+
Returns
The value true is returned for success and the value false is returned for failure.
+ +
+
+ +

◆ chdir() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool FatFileSystem::chdir (const char * path,
bool set_cwd = false 
)
+
+inlineinherited
+
+

Change a volume's working directory

+

Changes the volume working directory to the path subdirectory. Optionally set the current working directory to the volume's working directory.

+

Example: If the volume's working directory is "/DIR", chdir("SUB") will change the volume's working directory from "/DIR" to "/DIR/SUB".

+

If path is "/", the volume's working directory will be changed to the root directory

+
Parameters
+ + + +
[in]pathThe name of the subdirectory.
[in]set_cwdSet the current working directory to this volume's working directory if true.
+
+
+
Returns
The value true is returned for success and the value false is returned for failure.
+ +
+
+ +

◆ chvol()

+ +
+
+ + + + + +
+ + + + + + + +
void FatFileSystem::chvol ()
+
+inlineinherited
+
+

Set the current working directory to a volume's working directory.

+

This is useful with multiple SD cards.

+

The current working directory is changed to this volume's working directory.

+

This is like the Windows/DOS <drive letter>: command.

+ +
+
+ +

◆ clusterCount()

+ +
+
+ + + + + +
+ + + + + + + +
uint32_t FatVolume::clusterCount () const
+
+inlineinherited
+
+
Returns
The total number of clusters in the volume.
+ +
+
+ +

◆ clusterSizeShift()

+ +
+
+ + + + + +
+ + + + + + + +
uint8_t FatVolume::clusterSizeShift () const
+
+inlineinherited
+
+
Returns
The shift count required to multiply by blocksPerCluster.
+ +
+
+ +

◆ dataStartBlock()

+ +
+
+ + + + + +
+ + + + + + + +
uint32_t FatVolume::dataStartBlock () const
+
+inlineinherited
+
+
Returns
The logical block number for the start of file data.
+ +
+
+ +

◆ dbgFat()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
int8_t FatVolume::dbgFat (uint32_t n,
uint32_t * v 
)
+
+inlineinherited
+
+

Debug access to FAT table

+
Parameters
+ + + +
[in]ncluster number.
[out]vvalue of entry
+
+
+
Returns
-1 error, 0 EOC, else 1.
+ +
+
+ +

◆ errorHalt() [1/6]

+ +
+
+ + + + + +
+ + + + + + + +
void SdFileSystem< SdioCardEX >::errorHalt ()
+
+inlineinherited
+
+

Print any SD error code to Serial and halt.

+ +
+
+ +

◆ errorHalt() [2/6]

+ +
+
+ + + + + +
+ + + + + + + + +
void SdFileSystem< SdioCardEX >::errorHalt (Print * pr)
+
+inlineinherited
+
+

Print any SD error code and halt.

+
Parameters
+ + +
[in]prPrint destination.
+
+
+ +
+
+ +

◆ errorHalt() [3/6]

+ +
+
+ + + + + +
+ + + + + + + + +
void SdFileSystem< SdioCardEX >::errorHalt (char const * msg)
+
+inlineinherited
+
+

Print msg, any SD error code and halt.

+
Parameters
+ + +
[in]msgMessage to print.
+
+
+ +
+
+ +

◆ errorHalt() [4/6]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void SdFileSystem< SdioCardEX >::errorHalt (Print * pr,
char const * msg 
)
+
+inlineinherited
+
+

Print msg, any SD error code, and halt.

+
Parameters
+ + + +
[in]prPrint destination.
[in]msgMessage to print.
+
+
+ +
+
+ +

◆ errorHalt() [5/6]

+ +
+
+ + + + + +
+ + + + + + + + +
void SdFileSystem< SdioCardEX >::errorHalt (const __FlashStringHelper * msg)
+
+inlineinherited
+
+

Print msg, any SD error code, and halt.

+
Parameters
+ + +
[in]msgMessage to print.
+
+
+ +
+
+ +

◆ errorHalt() [6/6]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void SdFileSystem< SdioCardEX >::errorHalt (Print * pr,
const __FlashStringHelper * msg 
)
+
+inlineinherited
+
+

Print msg, any SD error code, and halt.

+
Parameters
+ + + +
[in]prPrint destination.
[in]msgMessage to print.
+
+
+ +
+
+ +

◆ errorPrint() [1/6]

+ +
+
+ + + + + +
+ + + + + + + +
void SdFileSystem< SdioCardEX >::errorPrint ()
+
+inlineinherited
+
+

Print any SD error code to Serial

+ +
+
+ +

◆ errorPrint() [2/6]

+ +
+
+ + + + + +
+ + + + + + + + +
void SdFileSystem< SdioCardEX >::errorPrint (Print * pr)
+
+inlineinherited
+
+

Print any SD error code.

Parameters
+ + +
[in]prPrint device.
+
+
+ +
+
+ +

◆ errorPrint() [3/6]

+ +
+
+ + + + + +
+ + + + + + + + +
void SdFileSystem< SdioCardEX >::errorPrint (const char * msg)
+
+inlineinherited
+
+

Print msg, any SD error code.

+
Parameters
+ + +
[in]msgMessage to print.
+
+
+ +
+
+ +

◆ errorPrint() [4/6]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void SdFileSystem< SdioCardEX >::errorPrint (Print * pr,
char const * msg 
)
+
+inlineinherited
+
+

Print msg, any SD error code.

+
Parameters
+ + + +
[in]prPrint destination.
[in]msgMessage to print.
+
+
+ +
+
+ +

◆ errorPrint() [5/6]

+ +
+
+ + + + + +
+ + + + + + + + +
void SdFileSystem< SdioCardEX >::errorPrint (const __FlashStringHelper * msg)
+
+inlineinherited
+
+

Print msg, any SD error code.

+
Parameters
+ + +
[in]msgMessage to print.
+
+
+ +
+
+ +

◆ errorPrint() [6/6]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void SdFileSystem< SdioCardEX >::errorPrint (Print * pr,
const __FlashStringHelper * msg 
)
+
+inlineinherited
+
+

Print msg, any SD error code.

+
Parameters
+ + + +
[in]prPrint destination.
[in]msgMessage to print.
+
+
+ +
+
+ +

◆ exists()

+ +
+
+ + + + + +
+ + + + + + + + +
bool FatFileSystem::exists (const char * path)
+
+inlineinherited
+
+

Test for the existence of a file.

+
Parameters
+ + +
[in]pathPath of the file to be tested for.
+
+
+
Returns
true if the file exists else false.
+ +
+
+ +

◆ fatCount()

+ +
+
+ + + + + +
+ + + + + + + +
uint8_t FatVolume::fatCount ()
+
+inlineinherited
+
+
Returns
The number of File Allocation Tables.
+ +
+
+ +

◆ fatStartBlock()

+ +
+
+ + + + + +
+ + + + + + + +
uint32_t FatVolume::fatStartBlock () const
+
+inlineinherited
+
+
Returns
The logical block number for the start of the first FAT.
+ +
+
+ +

◆ fatType()

+ +
+
+ + + + + +
+ + + + + + + +
uint8_t FatVolume::fatType () const
+
+inlineinherited
+
+
Returns
The FAT type of the volume. Values are 12, 16 or 32.
+ +
+
+ +

◆ freeClusterCount()

+ +
+
+ + + + + +
+ + + + + + + +
int32_t FatVolume::freeClusterCount ()
+
+inherited
+
+

Volume free space in clusters.

+
Returns
Count of free clusters for success or -1 if an error occurs.
+ +
+
+ +

◆ fsBegin()

+ +
+
+ + + + + +
+ + + + + + + +
bool SdFatSdioEX::fsBegin ()
+
+inline
+
+

Initialize file system for diagnostic use only.

Returns
true for success else false.
+ +
+
+ +

◆ init() [1/2]

+ +
+
+ + + + + +
+ + + + + + + +
bool FatVolume::init ()
+
+inlineinherited
+
+

Initialize a FAT volume. Try partition one first then try super floppy format.

+
Returns
The value true is returned for success and the value false is returned for failure.
+ +
+
+ +

◆ init() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + +
bool FatVolume::init (uint8_t part)
+
+inherited
+
+

Initialize a FAT volume.

+
Parameters
+ + +
[in]partThe partition to be used. Legal values for part are 1-4 to use the corresponding partition on a device formatted with a MBR, Master Boot Record, or zero if the device is formatted as a super floppy with the FAT boot sector in block zero.
+
+
+
Returns
The value true is returned for success and the value false is returned for failure.
+ +
+
+ +

◆ initErrorHalt() [1/6]

+ +
+
+ + + + + +
+ + + + + + + +
void SdFileSystem< SdioCardEX >::initErrorHalt ()
+
+inlineinherited
+
+

Print any SD error code and halt.

+ +
+
+ +

◆ initErrorHalt() [2/6]

+ +
+
+ + + + + +
+ + + + + + + + +
void SdFileSystem< SdioCardEX >::initErrorHalt (Print * pr)
+
+inlineinherited
+
+

Print error details and halt after begin fails.

+
Parameters
+ + +
[in]prPrint destination.
+
+
+ +
+
+ +

◆ initErrorHalt() [3/6]

+ +
+
+ + + + + +
+ + + + + + + + +
void SdFileSystem< SdioCardEX >::initErrorHalt (char const * msg)
+
+inlineinherited
+
+

Print message, error details, and halt after begin() fails.

+
Parameters
+ + +
[in]msgMessage to print.
+
+
+ +
+
+ +

◆ initErrorHalt() [4/6]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void SdFileSystem< SdioCardEX >::initErrorHalt (Print * pr,
char const * msg 
)
+
+inlineinherited
+
+

Print message, error details, and halt after begin() fails.

Parameters
+ + + +
[in]prPrint device.
[in]msgMessage to print.
+
+
+ +
+
+ +

◆ initErrorHalt() [5/6]

+ +
+
+ + + + + +
+ + + + + + + + +
void SdFileSystem< SdioCardEX >::initErrorHalt (const __FlashStringHelper * msg)
+
+inlineinherited
+
+

Print message, error details, and halt after begin() fails.

+
Parameters
+ + +
[in]msgMessage to print.
+
+
+ +
+
+ +

◆ initErrorHalt() [6/6]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void SdFileSystem< SdioCardEX >::initErrorHalt (Print * pr,
const __FlashStringHelper * msg 
)
+
+inlineinherited
+
+

Print message, error details, and halt after begin() fails.

Parameters
+ + + +
[in]prPrint device for message.
[in]msgMessage to print.
+
+
+ +
+
+ +

◆ initErrorPrint() [1/6]

+ +
+
+ + + + + +
+ + + + + + + +
void SdFileSystem< SdioCardEX >::initErrorPrint ()
+
+inlineinherited
+
+

Print error details after begin() fails.

+ +
+
+ +

◆ initErrorPrint() [2/6]

+ +
+
+ + + + + +
+ + + + + + + + +
void SdFileSystem< SdioCardEX >::initErrorPrint (Print * pr)
+
+inlineinherited
+
+

Print error details after begin() fails.

+
Parameters
+ + +
[in]prPrint destination.
+
+
+ +
+
+ +

◆ initErrorPrint() [3/6]

+ +
+
+ + + + + +
+ + + + + + + + +
void SdFileSystem< SdioCardEX >::initErrorPrint (char const * msg)
+
+inlineinherited
+
+

Print message and error details and halt after begin() fails.

+
Parameters
+ + +
[in]msgMessage to print.
+
+
+ +
+
+ +

◆ initErrorPrint() [4/6]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void SdFileSystem< SdioCardEX >::initErrorPrint (Print * pr,
char const * msg 
)
+
+inlineinherited
+
+

Print message and error details and halt after begin() fails.

+
Parameters
+ + + +
[in]prPrint destination.
[in]msgMessage to print.
+
+
+ +
+
+ +

◆ initErrorPrint() [5/6]

+ +
+
+ + + + + +
+ + + + + + + + +
void SdFileSystem< SdioCardEX >::initErrorPrint (const __FlashStringHelper * msg)
+
+inlineinherited
+
+

Print message and error details and halt after begin() fails.

+
Parameters
+ + +
[in]msgMessage to print.
+
+
+ +
+
+ +

◆ initErrorPrint() [6/6]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void SdFileSystem< SdioCardEX >::initErrorPrint (Print * pr,
const __FlashStringHelper * msg 
)
+
+inlineinherited
+
+

Print message and error details and halt after begin() fails.

+
Parameters
+ + + +
[in]prPrint destination.
[in]msgMessage to print.
+
+
+ +
+
+ +

◆ ls() [1/4]

+ +
+
+ + + + + +
+ + + + + + + + +
void FatFileSystem::ls (uint8_t flags = 0)
+
+inlineinherited
+
+

List the directory contents of the volume working directory to Serial.

+
Parameters
+ + +
[in]flagsThe inclusive OR of
+
+
+

LS_DATE - Print file modification date

+

LS_SIZE - Print file size.

+

LS_R - Recursive list of subdirectories.

+ +
+
+ +

◆ ls() [2/4]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void FatFileSystem::ls (const char * path,
uint8_t flags = 0 
)
+
+inlineinherited
+
+

List the directory contents of a directory to Serial.

+
Parameters
+ + + +
[in]pathdirectory to list.
[in]flagsThe inclusive OR of
+
+
+

LS_DATE - Print file modification date

+

LS_SIZE - Print file size.

+

LS_R - Recursive list of subdirectories.

+ +
+
+ +

◆ ls() [3/4]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void FatFileSystem::ls (print_tpr,
uint8_t flags = 0 
)
+
+inlineinherited
+
+

List the directory contents of the volume working directory.

+
Parameters
+ + + +
[in]prPrint stream for list.
[in]flagsThe inclusive OR of
+
+
+

LS_DATE - Print file modification date

+

LS_SIZE - Print file size.

+

LS_R - Recursive list of subdirectories.

+ +
+
+ +

◆ ls() [4/4]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
void FatFileSystem::ls (print_tpr,
const char * path,
uint8_t flags 
)
+
+inlineinherited
+
+

List the directory contents of a directory.

+
Parameters
+ + + + +
[in]prPrint stream for list.
[in]pathdirectory to list.
[in]flagsThe inclusive OR of
+
+
+

LS_DATE - Print file modification date

+

LS_SIZE - Print file size.

+

LS_R - Recursive list of subdirectories.

+ +
+
+ +

◆ mkdir()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool FatFileSystem::mkdir (const char * path,
bool pFlag = true 
)
+
+inlineinherited
+
+

Make a subdirectory in the volume working directory.

+
Parameters
+ + + +
[in]pathA path with a valid 8.3 DOS name for the subdirectory.
[in]pFlagCreate missing parent directories if true.
+
+
+
Returns
The value true is returned for success and the value false is returned for failure.
+ +
+
+ +

◆ open() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
File FatFileSystem::open (const char * path,
oflag_t oflag = FILE_READ 
)
+
+inlineinherited
+
+

open a file

+
Parameters
+ + + +
[in]pathlocation of file to be opened.
[in]oflagopen flags.
+
+
+
Returns
a File object.
+ +
+
+ +

◆ open() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
File FatFileSystem::open (const String & path,
oflag_t oflag = FILE_READ 
)
+
+inlineinherited
+
+

open a file

+
Parameters
+ + + +
[in]pathlocation of file to be opened.
[in]oflagopen flags.
+
+
+
Returns
a File object.
+ +
+
+ +

◆ remove()

+ +
+
+ + + + + +
+ + + + + + + + +
bool FatFileSystem::remove (const char * path)
+
+inlineinherited
+
+

Remove a file from the volume working directory.

+
Parameters
+ + +
[in]pathA path with a valid 8.3 DOS name for the file.
+
+
+
Returns
The value true is returned for success and the value false is returned for failure.
+ +
+
+ +

◆ rename()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool FatFileSystem::rename (const char * oldPath,
const char * newPath 
)
+
+inlineinherited
+
+

Rename a file or subdirectory.

+
Parameters
+ + + +
[in]oldPathPath name to the file or subdirectory to be renamed.
[in]newPathNew path name of the file or subdirectory.
+
+
+

The newPath object must not exist before the rename call.

+

The file to be renamed must not be open. The directory entry may be moved and file system corruption could occur if the file is accessed by a file object that was opened before the rename() call.

+
Returns
The value true is returned for success and the value false is returned for failure.
+ +
+
+ +

◆ rmdir()

+ +
+
+ + + + + +
+ + + + + + + + +
bool FatFileSystem::rmdir (const char * path)
+
+inlineinherited
+
+

Remove a subdirectory from the volume's working directory.

+
Parameters
+ + +
[in]pathA path with a valid 8.3 DOS name for the subdirectory.
+
+
+

The subdirectory file will be removed only if it is empty.

+
Returns
The value true is returned for success and the value false is returned for failure.
+ +
+
+ +

◆ rootDirEntryCount()

+ +
+
+ + + + + +
+ + + + + + + +
uint16_t FatVolume::rootDirEntryCount () const
+
+inlineinherited
+
+
Returns
The number of entries in the root directory for FAT16 volumes.
+ +
+
+ +

◆ rootDirStart()

+ +
+
+ + + + + +
+ + + + + + + +
uint32_t FatVolume::rootDirStart () const
+
+inlineinherited
+
+
Returns
The logical block number for the start of the root directory on FAT16 volumes or the first cluster number on FAT32 volumes.
+ +
+
+ +

◆ truncate()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool FatFileSystem::truncate (const char * path,
uint32_t length 
)
+
+inlineinherited
+
+

Truncate a file to a specified length. The current file position will be maintained if it is less than or equal to length otherwise it will be set to end of file.

+
Parameters
+ + + +
[in]pathA path with a valid 8.3 DOS name for the file.
[in]lengthThe desired length for the file.
+
+
+
Returns
The value true is returned for success and the value false is returned for failure.
+ +
+
+ +

◆ vol()

+ +
+
+ + + + + +
+ + + + + + + +
FatVolume* FatFileSystem::vol ()
+
+inlineinherited
+
+
Returns
a pointer to the FatVolume object.
+ +
+
+ +

◆ volumeBlockCount()

+ +
+
+ + + + + +
+ + + + + + + +
uint32_t FatVolume::volumeBlockCount () const
+
+inlineinherited
+
+
Returns
The number of blocks in the volume
+ +
+
+ +

◆ vwd()

+ +
+
+ + + + + +
+ + + + + + + +
FatFile* FatFileSystem::vwd ()
+
+inlineinherited
+
+
Returns
a pointer to the volume working directory.
+ +
+
+ +

◆ wipe()

+ +
+
+ + + + + +
+ + + + + + + + +
bool FatFileSystem::wipe (print_tpr = 0)
+
+inlineinherited
+
+

Wipe all data from the volume. You must reinitialize the volume before accessing it again.

Parameters
+ + +
[in]prprint stream for status dots.
+
+
+
Returns
true for success else false.
+ +
+
+
The documentation for this class was generated from the following file:
    +
  • Arduino/libraries/SdFat/src/SdFat.h
  • +
+
+ + + + diff --git a/extras/html/class_sd_fat_sdio_e_x__coll__graph.png b/extras/html/class_sd_fat_sdio_e_x__coll__graph.png new file mode 100644 index 00000000..cf84ef93 Binary files /dev/null and b/extras/html/class_sd_fat_sdio_e_x__coll__graph.png differ diff --git a/extras/html/class_sd_fat_sdio_e_x__inherit__graph.png b/extras/html/class_sd_fat_sdio_e_x__inherit__graph.png new file mode 100644 index 00000000..cf84ef93 Binary files /dev/null and b/extras/html/class_sd_fat_sdio_e_x__inherit__graph.png differ diff --git a/extras/html/class_sd_fat_soft_spi-members.html b/extras/html/class_sd_fat_soft_spi-members.html index a5fa07f8..0507c206 100644 --- a/extras/html/class_sd_fat_soft_spi-members.html +++ b/extras/html/class_sd_fat_soft_spi-members.html @@ -3,7 +3,8 @@ - + + SdFat: Member List @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
begin(uint8_t csPin=SS, SPISettings spiSettings=SPI_FULL_SPEED)SdFatSoftSpi< MisoPin, MosiPin, SckPin >inline SdFileSystem< SdSpiCard >::begin()SdFileSystem< SdSpiCard >inline FatFileSystem::begin(BlockDriver *blockDev, uint8_t part=0)FatFileSysteminline - blocksPerCluster() const FatVolumeinline - blocksPerFat() const FatVolumeinline + blocksPerCluster() constFatVolumeinline + blocksPerFat() constFatVolumeinline cacheClear()FatVolumeinline card()SdFileSystem< SdSpiCard >inline cardErrorCode()SdFileSystem< SdSpiCard >inline @@ -100,9 +80,9 @@ chdir(bool set_cwd=false)FatFileSysteminline chdir(const char *path, bool set_cwd=false)FatFileSysteminline chvol()FatFileSysteminline - clusterCount() const FatVolumeinline - clusterSizeShift() const FatVolumeinline - dataStartBlock() const FatVolumeinline + clusterCount() constFatVolumeinline + clusterSizeShift() constFatVolumeinline + dataStartBlock() constFatVolumeinline dbgFat(uint32_t n, uint32_t *v)FatVolumeinline errorHalt()SdFileSystem< SdSpiCard >inline errorHalt(Print *pr)SdFileSystem< SdSpiCard >inline @@ -118,8 +98,8 @@ errorPrint(Print *pr, const __FlashStringHelper *msg)SdFileSystem< SdSpiCard >inline exists(const char *path)FatFileSysteminline fatCount()FatVolumeinline - fatStartBlock() const FatVolumeinline - fatType() const FatVolumeinline + fatStartBlock() constFatVolumeinline + fatType() constFatVolumeinline FatVolume()FatVolumeinline freeClusterCount()FatVolume init()FatVolumeinline @@ -141,24 +121,24 @@ ls(print_t *pr, uint8_t flags=0)FatFileSysteminline ls(print_t *pr, const char *path, uint8_t flags)FatFileSysteminline mkdir(const char *path, bool pFlag=true)FatFileSysteminline - open(const char *path, uint8_t mode=FILE_READ)FatFileSysteminline - open(const String &path, uint8_t mode=FILE_READ)FatFileSysteminline + open(const char *path, oflag_t oflag=FILE_READ)FatFileSysteminline + open(const String &path, oflag_t oflag=FILE_READ)FatFileSysteminline remove(const char *path)FatFileSysteminline rename(const char *oldPath, const char *newPath)FatFileSysteminline rmdir(const char *path)FatFileSysteminline - rootDirEntryCount() const FatVolumeinline - rootDirStart() const FatVolumeinline + rootDirEntryCount() constFatVolumeinline + rootDirStart() constFatVolumeinline truncate(const char *path, uint32_t length)FatFileSysteminline vol()FatFileSysteminline - volumeBlockCount() const FatVolumeinline + volumeBlockCount() constFatVolumeinline vwd()FatFileSysteminline wipe(print_t *pr=0)FatFileSysteminline
diff --git a/extras/html/class_sd_fat_soft_spi.html b/extras/html/class_sd_fat_soft_spi.html index ae13854a..8ec7c9e1 100644 --- a/extras/html/class_sd_fat_soft_spi.html +++ b/extras/html/class_sd_fat_soft_spi.html @@ -3,7 +3,8 @@ - + + SdFat: SdFatSoftSpi< MisoPin, MosiPin, SckPin > Class Template Reference @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
  bool begin (uint8_t csPin=SS, SPISettings spiSettings=SPI_FULL_SPEED)   -uint8_t blocksPerCluster () const -  -uint32_t blocksPerFat () const -  +uint8_t blocksPerCluster () const +  +uint32_t blocksPerFat () const +  cache_tcacheClear ()   SdSpiCardcard () @@ -140,12 +120,12 @@   void chvol ()   -uint32_t clusterCount () const -  -uint8_t clusterSizeShift () const -  -uint32_t dataStartBlock () const -  +uint32_t clusterCount () const +  +uint8_t clusterSizeShift () const +  +uint32_t dataStartBlock () const +  int8_t dbgFat (uint32_t n, uint32_t *v)   void errorHalt () @@ -176,10 +156,10 @@   uint8_t fatCount ()   -uint32_t fatStartBlock () const -  -uint8_t fatType () const -  +uint32_t fatStartBlock () const +  +uint8_t fatType () const +  int32_t freeClusterCount ()   bool init () @@ -220,26 +200,26 @@   bool mkdir (const char *path, bool pFlag=true)   -File open (const char *path, uint8_t mode=FILE_READ) -  -File open (const String &path, uint8_t mode=FILE_READ) -  +File open (const char *path, oflag_t oflag=FILE_READ) +  +File open (const String &path, oflag_t oflag=FILE_READ) +  bool remove (const char *path)   bool rename (const char *oldPath, const char *newPath)   bool rmdir (const char *path)   -uint16_t rootDirEntryCount () const -  -uint32_t rootDirStart () const -  +uint16_t rootDirEntryCount () const +  +uint32_t rootDirStart () const +  bool truncate (const char *path, uint32_t length)   FatVolumevol ()   -uint32_t volumeBlockCount () const -  +uint32_t volumeBlockCount () const +  FatFilevwd ()   bool wipe (print_t *pr=0) @@ -251,7 +231,9 @@

SdFat class using software SPI.

Member Function Documentation

- + +

◆ begin() [1/3]

+
@@ -293,7 +275,9 @@ - + +

◆ begin() [2/3]

+
@@ -317,7 +301,9 @@ - + +

◆ begin() [3/3]

+
@@ -362,7 +348,9 @@
- + +

◆ blocksPerCluster()

+
@@ -386,7 +374,9 @@ - + +

◆ blocksPerFat()

+
@@ -410,7 +400,9 @@ - + +

◆ cacheClear()

+
@@ -434,7 +426,9 @@ - + +

◆ card()

+
@@ -458,7 +452,9 @@ - + +

◆ cardErrorCode()

+
@@ -482,7 +478,9 @@ - + +

◆ cardErrorData()

+
@@ -506,7 +504,9 @@ - + +

◆ chdir() [1/2]

+
@@ -539,7 +539,9 @@ - + +

◆ chdir() [2/2]

+
@@ -585,7 +587,9 @@ - + +

◆ chvol()

+
@@ -612,7 +616,9 @@ - + +

◆ clusterCount()

+
@@ -636,7 +642,9 @@ - + +

◆ clusterSizeShift()

+
@@ -660,7 +668,9 @@ - + +

◆ dataStartBlock()

+
@@ -684,7 +694,9 @@ - + +

◆ dbgFat()

+
@@ -723,11 +735,13 @@
-
Returns
true for success or false for failure
+
Returns
-1 error, 0 EOC, else 1.
- + +

◆ errorHalt() [1/6]

+
@@ -751,7 +765,9 @@ - + +

◆ errorHalt() [2/6]

+
@@ -782,7 +798,9 @@ - + +

◆ errorHalt() [3/6]

+
@@ -813,7 +831,9 @@ - + +

◆ errorHalt() [4/6]

+
@@ -855,7 +875,9 @@ - + +

◆ errorHalt() [5/6]

+
@@ -886,7 +908,9 @@ - + +

◆ errorHalt() [6/6]

+
@@ -928,7 +952,9 @@ - + +

◆ errorPrint() [1/6]

+
@@ -952,7 +978,9 @@ - + +

◆ errorPrint() [2/6]

+
@@ -982,7 +1010,9 @@ - + +

◆ errorPrint() [3/6]

+
@@ -1013,7 +1043,9 @@ - + +

◆ errorPrint() [4/6]

+
@@ -1055,7 +1087,9 @@ - + +

◆ errorPrint() [5/6]

+
@@ -1086,7 +1120,9 @@ - + +

◆ errorPrint() [6/6]

+
@@ -1128,7 +1164,9 @@ - + +

◆ exists()

+
@@ -1160,7 +1198,9 @@ - + +

◆ fatCount()

+
@@ -1184,7 +1224,9 @@ - + +

◆ fatStartBlock()

+
@@ -1208,7 +1250,9 @@ - + +

◆ fatType()

+
@@ -1232,7 +1276,9 @@ - + +

◆ freeClusterCount()

+
@@ -1257,7 +1303,9 @@ - + +

◆ init() [1/2]

+
@@ -1282,7 +1330,9 @@ - + +

◆ init() [2/2]

+
@@ -1314,7 +1364,9 @@ - + +

◆ initErrorHalt() [1/6]

+
@@ -1338,7 +1390,9 @@ - + +

◆ initErrorHalt() [2/6]

+
@@ -1369,7 +1423,9 @@ - + +

◆ initErrorHalt() [3/6]

+
@@ -1400,7 +1456,9 @@ - + +

◆ initErrorHalt() [4/6]

+
@@ -1441,7 +1499,9 @@ - + +

◆ initErrorHalt() [5/6]

+
@@ -1472,7 +1532,9 @@ - + +

◆ initErrorHalt() [6/6]

+
@@ -1513,7 +1575,9 @@ - + +

◆ initErrorPrint() [1/6]

+
@@ -1537,7 +1601,9 @@ - + +

◆ initErrorPrint() [2/6]

+
@@ -1568,7 +1634,9 @@ - + +

◆ initErrorPrint() [3/6]

+
@@ -1599,7 +1667,9 @@ - + +

◆ initErrorPrint() [4/6]

+
@@ -1641,7 +1711,9 @@ - + +

◆ initErrorPrint() [5/6]

+
@@ -1672,7 +1744,9 @@ - + +

◆ initErrorPrint() [6/6]

+
@@ -1714,7 +1788,9 @@ - + +

◆ ls() [1/4]

+
@@ -1748,7 +1824,9 @@ - + +

◆ ls() [2/4]

+
@@ -1793,7 +1871,9 @@ - + +

◆ ls() [3/4]

+
@@ -1838,7 +1918,9 @@ - + +

◆ ls() [4/4]

+
@@ -1890,7 +1972,9 @@ - + +

◆ mkdir()

+
@@ -1933,7 +2017,9 @@ - + +

◆ open() [1/2]

+
@@ -1949,8 +2035,8 @@ - - + + @@ -1968,7 +2054,7 @@
Parameters
uint8_t mode = FILE_READ oflag_t oflag = FILE_READ 
- +
[in]pathlocation of file to be opened.
[in]modeopen mode flags.
[in]oflagopen flags.
@@ -1976,7 +2062,9 @@
- + +

◆ open() [2/2]

+
@@ -1992,8 +2080,8 @@ - - + + @@ -2011,7 +2099,7 @@
Parameters
uint8_t mode = FILE_READ oflag_t oflag = FILE_READ 
- +
[in]pathlocation of file to be opened.
[in]modeopen mode flags.
[in]oflagopen flags.
@@ -2019,7 +2107,9 @@
- + +

◆ remove()

+
@@ -2051,7 +2141,9 @@ - + +

◆ rename()

+
@@ -2096,7 +2188,9 @@ - + +

◆ rmdir()

+
@@ -2129,7 +2223,9 @@ - + +

◆ rootDirEntryCount()

+
@@ -2153,7 +2249,9 @@ - + +

◆ rootDirStart()

+
@@ -2177,7 +2275,9 @@ - + +

◆ truncate()

+
@@ -2220,7 +2320,9 @@ - + +

◆ vol()

+
@@ -2244,7 +2346,9 @@ - + +

◆ volumeBlockCount()

+
@@ -2268,7 +2372,9 @@ - + +

◆ vwd()

+
@@ -2292,7 +2398,9 @@ - + +

◆ wipe()

+
@@ -2329,9 +2437,9 @@ diff --git a/extras/html/class_sd_fat_soft_spi_e_x-members.html b/extras/html/class_sd_fat_soft_spi_e_x-members.html index 48d8df94..8e2c1c93 100644 --- a/extras/html/class_sd_fat_soft_spi_e_x-members.html +++ b/extras/html/class_sd_fat_soft_spi_e_x-members.html @@ -3,7 +3,8 @@ - + +SdFat: Member List @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
begin(uint8_t csPin=SS, SPISettings spiSettings=SPI_FULL_SPEED)SdFatSoftSpiEX< MisoPin, MosiPin, SckPin >inline SdFileSystem< SdSpiCardEX >::begin()SdFileSystem< SdSpiCardEX >inline FatFileSystem::begin(BlockDriver *blockDev, uint8_t part=0)FatFileSysteminline - blocksPerCluster() const FatVolumeinline - blocksPerFat() const FatVolumeinline + blocksPerCluster() constFatVolumeinline + blocksPerFat() constFatVolumeinline cacheClear()FatVolumeinline card()SdFileSystem< SdSpiCardEX >inline cardErrorCode()SdFileSystem< SdSpiCardEX >inline @@ -100,9 +80,9 @@ chdir(bool set_cwd=false)FatFileSysteminline chdir(const char *path, bool set_cwd=false)FatFileSysteminline chvol()FatFileSysteminline - clusterCount() const FatVolumeinline - clusterSizeShift() const FatVolumeinline - dataStartBlock() const FatVolumeinline + clusterCount() constFatVolumeinline + clusterSizeShift() constFatVolumeinline + dataStartBlock() constFatVolumeinline dbgFat(uint32_t n, uint32_t *v)FatVolumeinline errorHalt()SdFileSystem< SdSpiCardEX >inline errorHalt(Print *pr)SdFileSystem< SdSpiCardEX >inline @@ -118,8 +98,8 @@ errorPrint(Print *pr, const __FlashStringHelper *msg)SdFileSystem< SdSpiCardEX >inline exists(const char *path)FatFileSysteminline fatCount()FatVolumeinline - fatStartBlock() const FatVolumeinline - fatType() const FatVolumeinline + fatStartBlock() constFatVolumeinline + fatType() constFatVolumeinline FatVolume()FatVolumeinline freeClusterCount()FatVolume init()FatVolumeinline @@ -141,24 +121,24 @@ ls(print_t *pr, uint8_t flags=0)FatFileSysteminline ls(print_t *pr, const char *path, uint8_t flags)FatFileSysteminline mkdir(const char *path, bool pFlag=true)FatFileSysteminline - open(const char *path, uint8_t mode=FILE_READ)FatFileSysteminline - open(const String &path, uint8_t mode=FILE_READ)FatFileSysteminline + open(const char *path, oflag_t oflag=FILE_READ)FatFileSysteminline + open(const String &path, oflag_t oflag=FILE_READ)FatFileSysteminline remove(const char *path)FatFileSysteminline rename(const char *oldPath, const char *newPath)FatFileSysteminline rmdir(const char *path)FatFileSysteminline - rootDirEntryCount() const FatVolumeinline - rootDirStart() const FatVolumeinline + rootDirEntryCount() constFatVolumeinline + rootDirStart() constFatVolumeinline truncate(const char *path, uint32_t length)FatFileSysteminline vol()FatFileSysteminline - volumeBlockCount() const FatVolumeinline + volumeBlockCount() constFatVolumeinline vwd()FatFileSysteminline wipe(print_t *pr=0)FatFileSysteminline
diff --git a/extras/html/class_sd_fat_soft_spi_e_x.html b/extras/html/class_sd_fat_soft_spi_e_x.html index c0058d3c..38eae09d 100644 --- a/extras/html/class_sd_fat_soft_spi_e_x.html +++ b/extras/html/class_sd_fat_soft_spi_e_x.html @@ -3,7 +3,8 @@ - + + SdFat: SdFatSoftSpiEX< MisoPin, MosiPin, SckPin > Class Template Reference @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
  bool begin (uint8_t csPin=SS, SPISettings spiSettings=SPI_FULL_SPEED)   -uint8_t blocksPerCluster () const -  -uint32_t blocksPerFat () const -  +uint8_t blocksPerCluster () const +  +uint32_t blocksPerFat () const +  cache_tcacheClear ()   SdSpiCardEXcard () @@ -140,12 +120,12 @@   void chvol ()   -uint32_t clusterCount () const -  -uint8_t clusterSizeShift () const -  -uint32_t dataStartBlock () const -  +uint32_t clusterCount () const +  +uint8_t clusterSizeShift () const +  +uint32_t dataStartBlock () const +  int8_t dbgFat (uint32_t n, uint32_t *v)   void errorHalt () @@ -176,10 +156,10 @@   uint8_t fatCount ()   -uint32_t fatStartBlock () const -  -uint8_t fatType () const -  +uint32_t fatStartBlock () const +  +uint8_t fatType () const +  int32_t freeClusterCount ()   bool init () @@ -220,26 +200,26 @@   bool mkdir (const char *path, bool pFlag=true)   -File open (const char *path, uint8_t mode=FILE_READ) -  -File open (const String &path, uint8_t mode=FILE_READ) -  +File open (const char *path, oflag_t oflag=FILE_READ) +  +File open (const String &path, oflag_t oflag=FILE_READ) +  bool remove (const char *path)   bool rename (const char *oldPath, const char *newPath)   bool rmdir (const char *path)   -uint16_t rootDirEntryCount () const -  -uint32_t rootDirStart () const -  +uint16_t rootDirEntryCount () const +  +uint32_t rootDirStart () const +  bool truncate (const char *path, uint32_t length)   FatVolumevol ()   -uint32_t volumeBlockCount () const -  +uint32_t volumeBlockCount () const +  FatFilevwd ()   bool wipe (print_t *pr=0) @@ -251,7 +231,9 @@

SdFat class using software SPI and extended SD I/O.

Member Function Documentation

- + +

◆ begin() [1/3]

+
@@ -293,7 +275,9 @@ - + +

◆ begin() [2/3]

+
@@ -317,7 +301,9 @@ - + +

◆ begin() [3/3]

+
@@ -362,7 +348,9 @@
- + +

◆ blocksPerCluster()

+
@@ -386,7 +374,9 @@ - + +

◆ blocksPerFat()

+
@@ -410,7 +400,9 @@ - + +

◆ cacheClear()

+
@@ -434,7 +426,9 @@ - + +

◆ card()

+
@@ -458,7 +452,9 @@ - + +

◆ cardErrorCode()

+
@@ -482,7 +478,9 @@ - + +

◆ cardErrorData()

+
@@ -506,7 +504,9 @@ - + +

◆ chdir() [1/2]

+
@@ -539,7 +539,9 @@ - + +

◆ chdir() [2/2]

+
@@ -585,7 +587,9 @@ - + +

◆ chvol()

+
@@ -612,7 +616,9 @@ - + +

◆ clusterCount()

+
@@ -636,7 +642,9 @@ - + +

◆ clusterSizeShift()

+
@@ -660,7 +668,9 @@ - + +

◆ dataStartBlock()

+
@@ -684,7 +694,9 @@ - + +

◆ dbgFat()

+
@@ -723,11 +735,13 @@
-
Returns
true for success or false for failure
+
Returns
-1 error, 0 EOC, else 1.
- + +

◆ errorHalt() [1/6]

+
@@ -751,7 +765,9 @@ - + +

◆ errorHalt() [2/6]

+
@@ -782,7 +798,9 @@ - + +

◆ errorHalt() [3/6]

+
@@ -813,7 +831,9 @@ - + +

◆ errorHalt() [4/6]

+
@@ -855,7 +875,9 @@ - + +

◆ errorHalt() [5/6]

+
@@ -886,7 +908,9 @@ - + +

◆ errorHalt() [6/6]

+
@@ -928,7 +952,9 @@ - + +

◆ errorPrint() [1/6]

+
@@ -952,7 +978,9 @@ - + +

◆ errorPrint() [2/6]

+
@@ -982,7 +1010,9 @@ - + +

◆ errorPrint() [3/6]

+
@@ -1013,7 +1043,9 @@ - + +

◆ errorPrint() [4/6]

+
@@ -1055,7 +1087,9 @@ - + +

◆ errorPrint() [5/6]

+
@@ -1086,7 +1120,9 @@ - + +

◆ errorPrint() [6/6]

+
@@ -1128,7 +1164,9 @@ - + +

◆ exists()

+
@@ -1160,7 +1198,9 @@ - + +

◆ fatCount()

+
@@ -1184,7 +1224,9 @@ - + +

◆ fatStartBlock()

+
@@ -1208,7 +1250,9 @@ - + +

◆ fatType()

+
@@ -1232,7 +1276,9 @@ - + +

◆ freeClusterCount()

+
@@ -1257,7 +1303,9 @@ - + +

◆ init() [1/2]

+
@@ -1282,7 +1330,9 @@ - + +

◆ init() [2/2]

+
@@ -1314,7 +1364,9 @@ - + +

◆ initErrorHalt() [1/6]

+
@@ -1338,7 +1390,9 @@ - + +

◆ initErrorHalt() [2/6]

+
@@ -1369,7 +1423,9 @@ - + +

◆ initErrorHalt() [3/6]

+
@@ -1400,7 +1456,9 @@ - + +

◆ initErrorHalt() [4/6]

+
@@ -1441,7 +1499,9 @@ - + +

◆ initErrorHalt() [5/6]

+
@@ -1472,7 +1532,9 @@ - + +

◆ initErrorHalt() [6/6]

+
@@ -1513,7 +1575,9 @@ - + +

◆ initErrorPrint() [1/6]

+
@@ -1537,7 +1601,9 @@ - + +

◆ initErrorPrint() [2/6]

+
@@ -1568,7 +1634,9 @@ - + +

◆ initErrorPrint() [3/6]

+
@@ -1599,7 +1667,9 @@ - + +

◆ initErrorPrint() [4/6]

+
@@ -1641,7 +1711,9 @@ - + +

◆ initErrorPrint() [5/6]

+
@@ -1672,7 +1744,9 @@ - + +

◆ initErrorPrint() [6/6]

+
@@ -1714,7 +1788,9 @@ - + +

◆ ls() [1/4]

+
@@ -1748,7 +1824,9 @@ - + +

◆ ls() [2/4]

+
@@ -1793,7 +1871,9 @@ - + +

◆ ls() [3/4]

+
@@ -1838,7 +1918,9 @@ - + +

◆ ls() [4/4]

+
@@ -1890,7 +1972,9 @@ - + +

◆ mkdir()

+
@@ -1933,7 +2017,9 @@ - + +

◆ open() [1/2]

+
@@ -1949,8 +2035,8 @@ - - + + @@ -1968,7 +2054,7 @@
Parameters
uint8_t mode = FILE_READ oflag_t oflag = FILE_READ 
- +
[in]pathlocation of file to be opened.
[in]modeopen mode flags.
[in]oflagopen flags.
@@ -1976,7 +2062,9 @@
- + +

◆ open() [2/2]

+
@@ -1992,8 +2080,8 @@ - - + + @@ -2011,7 +2099,7 @@
Parameters
uint8_t mode = FILE_READ oflag_t oflag = FILE_READ 
- +
[in]pathlocation of file to be opened.
[in]modeopen mode flags.
[in]oflagopen flags.
@@ -2019,7 +2107,9 @@
- + +

◆ remove()

+
@@ -2051,7 +2141,9 @@ - + +

◆ rename()

+
@@ -2096,7 +2188,9 @@ - + +

◆ rmdir()

+
@@ -2129,7 +2223,9 @@ - + +

◆ rootDirEntryCount()

+
@@ -2153,7 +2249,9 @@ - + +

◆ rootDirStart()

+
@@ -2177,7 +2275,9 @@ - + +

◆ truncate()

+
@@ -2220,7 +2320,9 @@ - + +

◆ vol()

+
@@ -2244,7 +2346,9 @@ - + +

◆ volumeBlockCount()

+
@@ -2268,7 +2372,9 @@ - + +

◆ vwd()

+
@@ -2292,7 +2398,9 @@ - + +

◆ wipe()

+
@@ -2329,9 +2437,9 @@ diff --git a/extras/html/class_sd_file-members.html b/extras/html/class_sd_file-members.html index b0877262..4df1926f 100644 --- a/extras/html/class_sd_file-members.html +++ b/extras/html/class_sd_file-members.html @@ -3,7 +3,8 @@ - + +SdFat: Member List @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
available()PrintFileinline clearError()FatFileinline - clearWriteError()FatFileinline - close()FatFile - contiguousRange(uint32_t *bgnBlock, uint32_t *endBlock)FatFile - createContiguous(FatFile *dirFile, const char *path, uint32_t size)FatFile - createContiguous(const char *path, uint32_t size)FatFileinline - curCluster() const FatFileinline - curPosition() const FatFileinline - cwd()FatFileinlinestatic - dateTimeCallback(void(*dateTime)(uint16_t *date, uint16_t *time))FatFileinlinestatic - dateTimeCallbackCancel()FatFileinlinestatic - dirEntry(dir_t *dir)FatFile - dirIndex()FatFileinline - dirName(const dir_t *dir, char *name)FatFilestatic - dirSize()FatFile - dmpFile(print_t *pr, uint32_t pos, size_t n)FatFile - exists(const char *path)FatFileinline - FatFile()FatFileinline - FatFile(const char *path, uint8_t oflag)FatFileinline - fgets(char *str, int16_t num, char *delim=0)FatFile - fileAttr() const FatFileinline - fileSize() const FatFileinline - firstBlock()FatFileinline - firstCluster() const FatFileinline - flush()PrintFileinline - getError()FatFileinline - getName(char *name, size_t size)FatFile - getpos(FatPos_t *pos)FatFile - getSFN(char *name)FatFile - getWriteError()FatFileinline - isDir() const FatFileinline - isFile() const FatFileinline - isHidden() const FatFileinline - isLFN() const FatFileinline - isOpen() const FatFileinline - isReadOnly() const FatFileinline - isRoot() const FatFileinline - isRoot32() const FatFileinline - isRootFixed() const FatFileinline - isSubDir() const FatFileinline - isSystem() const FatFileinline + clearWriteError()PrintFileinline + FatFile::clearWriteError()FatFileinline + close()FatFile + contiguousRange(uint32_t *bgnBlock, uint32_t *endBlock)FatFile + createContiguous(FatFile *dirFile, const char *path, uint32_t size)FatFile + createContiguous(const char *path, uint32_t size)FatFileinline + curCluster() constFatFileinline + curPosition() constFatFileinline + cwd()FatFileinlinestatic + dateTimeCallback(void(*dateTime)(uint16_t *date, uint16_t *time))FatFileinlinestatic + dateTimeCallbackCancel()FatFileinlinestatic + dirEntry(dir_t *dir)FatFile + dirIndex()FatFileinline + dirName(const dir_t *dir, char *name)FatFilestatic + dirSize()FatFile + dmpFile(print_t *pr, uint32_t pos, size_t n)FatFile + exists(const char *path)FatFileinline + FatFile()FatFileinline + FatFile(const char *path, oflag_t oflag)FatFileinline + fgets(char *str, int16_t num, char *delim=0)FatFile + fileAttr() constFatFileinline + fileSize() constFatFileinline + firstBlock()FatFileinline + firstCluster() constFatFileinline + flush()PrintFileinline + getError()FatFileinline + getName(char *name, size_t size)FatFile + getpos(FatPos_t *pos)FatFile + getSFN(char *name)FatFile + getWriteError()PrintFileinline + FatFile::getWriteError()FatFileinline + isDir() constFatFileinline + isFile() constFatFileinline + isHidden() constFatFileinline + isLFN() constFatFileinline + isOpen() constFatFileinline + isReadOnly() constFatFileinline + isRoot() constFatFileinline + isRoot32() constFatFileinline + isRootFixed() constFatFileinline + isSubDir() constFatFileinline + isSystem() constFatFileinline legal83Char(uint8_t c)FatFileinlinestatic ls(uint8_t flags=0)FatFileinline ls(print_t *pr, uint8_t flags=0, uint8_t indent=0)FatFile mkdir(FatFile *dir, const char *path, bool pFlag=true)FatFile - open(FatFileSystem *fs, const char *path, uint8_t oflag)FatFile - open(FatFile *dirFile, uint16_t index, uint8_t oflag)FatFile - open(FatFile *dirFile, const char *path, uint8_t oflag)FatFile - open(const char *path, uint8_t oflag=O_READ)FatFileinline - openNext(FatFile *dirFile, uint8_t oflag=O_READ)FatFile + open(FatFileSystem *fs, const char *path, oflag_t oflag)FatFile + open(FatFile *dirFile, uint16_t index, oflag_t oflag)FatFile + open(FatFile *dirFile, const char *path, oflag_t oflag)FatFile + open(const char *path, oflag_t oflag=O_RDONLY)FatFileinline + openNext(FatFile *dirFile, oflag_t oflag=O_RDONLY)FatFile openRoot(FatVolume *vol)FatFile peek()PrintFileinline printCreateDateTime(print_t *pr)FatFile @@ -152,14 +134,16 @@ printField(int32_t value, char term)FatFile printField(uint32_t value, char term)FatFile PrintFile() (defined in PrintFile)PrintFileinline - PrintFile(const char *path, uint8_t oflag)PrintFileinline + PrintFile(const char *path, oflag_t oflag)PrintFileinline printFileSize(print_t *pr)FatFile printModifyDateTime(print_t *pr)FatFile printName()FatFileinline printName(print_t *pr)FatFile printSFN(print_t *pr)FatFile - read()FatFileinline - read(void *buf, size_t nbyte)FatFile + read()PrintFileinline + read(void *buf, size_t nbyte)PrintFile + FatFile::read()FatFileinline + FatFile::read(void *buf, size_t nbyte)FatFile readDir(dir_t *dir)FatFile remove()FatFile remove(FatFile *dirFile, const char *path)FatFilestatic @@ -168,7 +152,7 @@ rmdir()FatFile rmRfStar()FatFile SdFile() (defined in SdFile)SdFileinline - SdFile(const char *path, uint8_t oflag)SdFileinline + SdFile(const char *path, oflag_t oflag)SdFileinline seekCur(int32_t offset)FatFileinline seekEnd(int32_t offset=0)FatFileinline seekSet(uint32_t pos)FatFile @@ -178,17 +162,20 @@ timestamp(FatFile *file)FatFile timestamp(uint8_t flags, uint16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second)FatFile truncate(uint32_t length)FatFile - volume() const FatFileinline + volume() constFatFileinline write(uint8_t b)PrintFileinline write(const uint8_t *buf, size_t size)PrintFileinline - FatFile::write(const char *str)FatFileinline - FatFile::write(const void *buf, size_t nbyte)FatFile + write(const char *str)PrintFileinline + write(uint8_t b)PrintFileinline + write(const void *buf, size_t nbyte)PrintFile + FatFile::write(const char *str)FatFileinline + FatFile::write(const void *buf, size_t nbyte)FatFile
diff --git a/extras/html/class_sd_file.html b/extras/html/class_sd_file.html index 4d806436..31f889cb 100644 --- a/extras/html/class_sd_file.html +++ b/extras/html/class_sd_file.html @@ -3,7 +3,8 @@ - + + SdFat: SdFile Class Reference @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
  void clearError ()   +void clearWriteError () +  void clearWriteError ()   bool close () @@ -129,10 +111,10 @@   bool createContiguous (const char *path, uint32_t size)   -uint32_t curCluster () const -  -uint32_t curPosition () const -  +uint32_t curCluster () const +  +uint32_t curPosition () const +  bool dirEntry (dir_t *dir)   uint16_t dirIndex () @@ -145,14 +127,14 @@   int16_t fgets (char *str, int16_t num, char *delim=0)   -uint8_t fileAttr () const -  -uint32_t fileSize () const -  +uint8_t fileAttr () const +  +uint32_t fileSize () const +  uint32_t firstBlock ()   -uint32_t firstCluster () const -  +uint32_t firstCluster () const +  void flush ()   uint8_t getError () @@ -163,46 +145,48 @@   bool getSFN (char *name)   +bool getWriteError () +  bool getWriteError ()   -bool isDir () const -  -bool isFile () const -  -bool isHidden () const -  -bool isLFN () const -  -bool isOpen () const -  -bool isReadOnly () const -  -bool isRoot () const -  -bool isRoot32 () const -  -bool isRootFixed () const -  -bool isSubDir () const -  -bool isSystem () const -  +bool isDir () const +  +bool isFile () const +  +bool isHidden () const +  +bool isLFN () const +  +bool isOpen () const +  +bool isReadOnly () const +  +bool isRoot () const +  +bool isRoot32 () const +  +bool isRootFixed () const +  +bool isSubDir () const +  +bool isSystem () const +  void ls (uint8_t flags=0)   void ls (print_t *pr, uint8_t flags=0, uint8_t indent=0)   bool mkdir (FatFile *dir, const char *path, bool pFlag=true)   -bool open (FatFileSystem *fs, const char *path, uint8_t oflag) -  -bool open (FatFile *dirFile, uint16_t index, uint8_t oflag) -  -bool open (FatFile *dirFile, const char *path, uint8_t oflag) -  -bool open (const char *path, uint8_t oflag=O_READ) -  -bool openNext (FatFile *dirFile, uint8_t oflag=O_READ) -  +bool open (FatFileSystem *fs, const char *path, oflag_t oflag) +  +bool open (FatFile *dirFile, uint16_t index, oflag_t oflag) +  +bool open (FatFile *dirFile, const char *path, oflag_t oflag) +  +bool open (const char *path, oflag_t oflag=O_RDONLY) +  +bool openNext (FatFile *dirFile, oflag_t oflag=O_RDONLY) +  bool openRoot (FatVolume *vol)   int peek () @@ -229,6 +213,10 @@   size_t printSFN (print_t *pr)   +int read (void *buf, size_t nbyte) +  +int read () +  int read ()   int read (void *buf, size_t nbyte) @@ -245,8 +233,8 @@   bool rmRfStar ()   - SdFile (const char *path, uint8_t oflag) -  + SdFile (const char *path, oflag_t oflag) +  bool seekCur (int32_t offset)   bool seekEnd (int32_t offset=0) @@ -263,8 +251,14 @@   bool truncate (uint32_t length)   -FatVolumevolume () const -  +FatVolumevolume () const +  +int write (const char *str) +  +int write (uint8_t b) +  +int write (const void *buf, size_t nbyte) +  size_t write (uint8_t b)   size_t write (const uint8_t *buf, size_t size) @@ -302,7 +296,9 @@

Detailed Description

Class for backward compatibility.

Constructor & Destructor Documentation

- + +

◆ SdFile()

+
@@ -318,7 +314,7 @@ - + @@ -337,7 +333,7 @@
Parameters
uint8_t oflag_t  oflag 
- +
[in]pathA path for a file to be opened.
[in]oflagValues for oflag are constructed by a bitwise-inclusive OR of open flags. see FatFile::open(FatFile*, const char*, uint8_t).
[in]oflagValues for oflag are constructed by a bitwise-inclusive OR of open flags. see FatFile::open(FatFile*, const char*, oflag_t).
@@ -345,7 +341,9 @@

Member Function Documentation

- + +

◆ available()

+
@@ -369,7 +367,9 @@

Member Function Documentation

- + +

◆ clearError()

+
@@ -393,7 +393,32 @@

Member Function Documentation

- + +

◆ clearWriteError() [1/2]

+ +
+
+
+ + + + +
+ + + + +
void FatFile::clearWriteError
+
+inlineinherited
+
+

Set writeError to zero

+ +
+
+ +

◆ clearWriteError() [2/2]

+
@@ -417,7 +442,9 @@

Member Function Documentation

- + +

◆ close()

+
@@ -442,7 +469,9 @@

Member Function Documentation

- + +

◆ contiguousRange()

+
@@ -485,7 +514,9 @@

Member Function Documentation

- + +

◆ createContiguous() [1/2]

+
@@ -535,7 +566,9 @@

Member Function Documentation

- + +

◆ createContiguous() [2/2]

+
@@ -578,7 +611,9 @@

Member Function Documentation

- + +

◆ curCluster()

+
@@ -602,7 +637,9 @@

Member Function Documentation

- + +

◆ curPosition()

+
@@ -626,7 +663,9 @@

Member Function Documentation

- + +

◆ cwd()

+
@@ -650,7 +689,9 @@

Member Function Documentation

- + +

◆ dateTimeCallback()

+
@@ -678,24 +719,14 @@

Member Function Documentation

-
void dateTime(uint16_t* date, uint16_t* time) {
-
uint16_t year;
-
uint8_t month, day, hour, minute, second;
-
-
// User gets date and time from GPS or real-time clock here
-
-
// return date using FAT_DATE macro to format fields
-
*date = FAT_DATE(year, month, day);
-
-
// return time using FAT_TIME macro to format fields
-
*time = FAT_TIME(hour, minute, second);
-
}
-

Sets the function that is called when a file is created or when a file's directory entry is modified by sync(). All timestamps, access, creation, and modify, are set when a file is created. sync() maintains the last access date and last modify date/time.

+
void dateTime(uint16_t* date, uint16_t* time) {
uint16_t year;
uint8_t month, day, hour, minute, second;
// User gets date and time from GPS or real-time clock here
// return date using FAT_DATE macro to format fields
*date = FAT_DATE(year, month, day);
// return time using FAT_TIME macro to format fields
*time = FAT_TIME(hour, minute, second);
}

Sets the function that is called when a file is created or when a file's directory entry is modified by sync(). All timestamps, access, creation, and modify, are set when a file is created. sync() maintains the last access date and last modify date/time.

See the timestamp() function.

- + +

◆ dateTimeCallbackCancel()

+
@@ -719,7 +750,9 @@

Member Function Documentation

- + +

◆ dirEntry()

+
@@ -751,7 +784,9 @@

Member Function Documentation

- + +

◆ dirIndex()

+
@@ -775,7 +810,9 @@

Member Function Documentation

- + +

◆ dirName()

+
@@ -818,7 +855,9 @@

Member Function Documentation

- + +

◆ dirSize()

+
@@ -842,7 +881,9 @@

Member Function Documentation

- + +

◆ dmpFile()

+
@@ -890,7 +931,9 @@

Member Function Documentation

- + +

◆ exists()

+
@@ -924,7 +967,9 @@

Member Function Documentation

- + +

◆ fgets()

+
@@ -976,7 +1021,9 @@

Member Function Documentation

- + +

◆ fileAttr()

+
@@ -996,12 +1043,14 @@

Member Function Documentation

-

Type of file. You should use isFile() or isDir() instead of fileType() if possible.

+

Type of file. You should use isFile() or isDir() instead of fileType() if possible.

Returns
The file or directory type.
- + +

◆ fileSize()

+
@@ -1025,7 +1074,9 @@

Member Function Documentation

- + +

◆ firstBlock()

+
@@ -1049,7 +1100,9 @@

Member Function Documentation

- + +

◆ firstCluster()

+
@@ -1073,7 +1126,9 @@

Member Function Documentation

- + +

◆ flush()

+
@@ -1097,7 +1152,9 @@

Member Function Documentation

- + +

◆ getError()

+
@@ -1121,7 +1178,9 @@

Member Function Documentation

- + +

◆ getName()

+
@@ -1164,7 +1223,9 @@

Member Function Documentation

- + +

◆ getpos()

+
@@ -1194,7 +1255,9 @@

Member Function Documentation

- + +

◆ getSFN()

+
@@ -1222,11 +1285,41 @@

Member Function Documentation

-
Returns
The value true, is returned for success and the value false, is returned for failure.
+
Returns
The value true, is returned for success and the value false, is returned for failure.
+

Copyright (c) 2011-2018 Bill Greiman This file is part of the SdFat library for SD memory cards.

+

MIT License

+

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+ +
+
+ +

◆ getWriteError() [1/2]

+ +
+
+ + + + + +
+ + + + +
bool FatFile::getWriteError
+
+inlineinherited
+
+
Returns
value of writeError
- + +

◆ getWriteError() [2/2]

+
@@ -1250,7 +1343,9 @@

Member Function Documentation

- + +

◆ isDir()

+
@@ -1274,7 +1369,9 @@

Member Function Documentation

- + +

◆ isFile()

+
@@ -1298,7 +1395,9 @@

Member Function Documentation

- + +

◆ isHidden()

+
@@ -1322,7 +1421,9 @@

Member Function Documentation

- + +

◆ isLFN()

+
@@ -1346,7 +1447,9 @@

Member Function Documentation

- + +

◆ isOpen()

+
@@ -1370,7 +1473,9 @@

Member Function Documentation

- + +

◆ isReadOnly()

+
@@ -1394,7 +1499,9 @@

Member Function Documentation

- + +

◆ isRoot()

+
@@ -1418,7 +1525,9 @@

Member Function Documentation

- + +

◆ isRoot32()

+
@@ -1442,7 +1551,9 @@

Member Function Documentation

- + +

◆ isRootFixed()

+
@@ -1466,7 +1577,9 @@

Member Function Documentation

- + +

◆ isSubDir()

+
@@ -1490,7 +1603,9 @@

Member Function Documentation

- + +

◆ isSystem()

+
@@ -1514,7 +1629,9 @@

Member Function Documentation

- + +

◆ legal83Char()

+
@@ -1545,7 +1662,9 @@

Member Function Documentation

- + +

◆ ls() [1/2]

+
@@ -1579,7 +1698,9 @@

Member Function Documentation

- + +

◆ ls() [2/2]

+
@@ -1636,7 +1757,9 @@

Member Function Documentation

- + +

◆ mkdir()

+
@@ -1686,7 +1809,9 @@

Member Function Documentation

- + +

◆ open() [1/4]

+
@@ -1708,7 +1833,7 @@

Member Function Documentation

- + @@ -1728,7 +1853,7 @@

Member Function Documentation

uint8_t oflag_t  oflag 
- +
[in]fsFile System where the file is located.
[in]pathwith a valid 8.3 DOS name for a file to be opened.
[in]oflagbitwise-inclusive OR of open mode flags. See see FatFile::open(FatFile*, const char*, uint8_t).
[in]oflagbitwise-inclusive OR of open mode flags. See see FatFile::open(FatFile*, const char*, oflag_t).
@@ -1736,7 +1861,9 @@

Member Function Documentation

- + +

◆ open() [2/4]

+
@@ -1758,7 +1885,7 @@

Member Function Documentation

- + @@ -1778,15 +1905,17 @@

Member Function Documentation

uint8_t oflag_t  oflag 
- +
[in]dirFileAn open FatFile instance for the directory.
[in]indexThe index of the directory entry for the file to be opened. The value for index is (directory file position)/32.
[in]oflagbitwise-inclusive OR of open mode flags. See see FatFile::open(FatFile*, const char*, uint8_t).
[in]oflagbitwise-inclusive OR of open mode flags. See see FatFile::open(FatFile*, const char*, oflag_t).
-

See open() by path for definition of flags.

Returns
true for success or false for failure.
+

See open() by path for definition of flags.

Returns
true for success or false for failure.
- + +

◆ open() [3/4]

+
@@ -1808,7 +1937,7 @@

Member Function Documentation

- + @@ -1832,16 +1961,16 @@

Member Function Documentation

uint8_t oflag_t  oflag 
-

O_READ - Open for reading.

-

O_RDONLY - Same as O_READ.

-

O_WRITE - Open for writing.

-

O_WRONLY - Same as O_WRITE.

+

O_RDONLY - Open for reading.

+

O_READ - Same as O_RDONLY (GNU).

+

O_WRONLY - Open for writing.

+

O_WRITE - Same as O_WRONLY (GNU).

O_RDWR - Open for reading and writing.

O_APPEND - If set, the file offset shall be set to the end of the file prior to each write.

O_AT_END - Set the initial position at the end of the file.

O_CREAT - If the file exists, this flag has no effect except as noted under O_EXCL below. Otherwise, the file shall be created

-

O_EXCL - If O_CREAT and O_EXCL are set, open() shall fail if the file exists.

-

O_SYNC - Call sync() after each write. This flag should not be used with write(uint8_t) or any functions do character at a time writes since sync() will be called after each byte.

+

O_EXCL - If O_CREAT and O_EXCL are set, open() shall fail if the file exists.

+

O_SYNC - Call sync() after each write. This flag should not be used with write(uint8_t) or any functions do character at a time writes since sync() will be called after each byte.

O_TRUNC - If the file exists and is a regular file, and the file is successfully opened and is not read only, its length shall be truncated to 0.

WARNING: A given file must not be opened by more than one FatFile object or file corruption may occur.

Note
Directory files must be opened read only. Write and truncation is not allowed for directory files.
@@ -1849,7 +1978,9 @@

Member Function Documentation

- + +

◆ open() [4/4]

+
@@ -1865,8 +1996,8 @@

Member Function Documentation

- - + + @@ -1884,7 +2015,7 @@

Member Function Documentation

Parameters
uint8_t oflag = O_READ oflag_t oflag = O_RDONLY 
- +
[in]pathA path with a valid 8.3 DOS name for a file to be opened.
[in]oflagbitwise-inclusive OR of open mode flags. See see FatFile::open(FatFile*, const char*, uint8_t).
[in]oflagbitwise-inclusive OR of open mode flags. See see FatFile::open(FatFile*, const char*, oflag_t).
@@ -1892,7 +2023,9 @@

Member Function Documentation

- + +

◆ openNext()

+
@@ -1908,8 +2041,8 @@

Member Function Documentation

- - + + @@ -1927,7 +2060,7 @@

Member Function Documentation

Parameters
uint8_t oflag = O_READ oflag_t oflag = O_RDONLY 
- +
[in]dirFileAn open FatFile instance for the directory containing the file to be opened.
[in]oflagbitwise-inclusive OR of open mode flags. See see FatFile::open(FatFile*, const char*, uint8_t).
[in]oflagbitwise-inclusive OR of open mode flags. See see FatFile::open(FatFile*, const char*, oflag_t).
@@ -1935,7 +2068,9 @@

Member Function Documentation

- + +

◆ openRoot()

+
@@ -1967,7 +2102,9 @@

Member Function Documentation

- + +

◆ peek()

+
@@ -1992,7 +2129,9 @@

Member Function Documentation

- + +

◆ printCreateDateTime()

+
@@ -2024,7 +2163,9 @@

Member Function Documentation

- + +

◆ printFatDate() [1/2]

+
@@ -2056,7 +2197,9 @@

Member Function Documentation

- + +

◆ printFatDate() [2/2]

+
@@ -2099,7 +2242,9 @@

Member Function Documentation

- + +

◆ printFatTime() [1/2]

+
@@ -2131,7 +2276,9 @@

Member Function Documentation

- + +

◆ printFatTime() [2/2]

+
@@ -2174,7 +2321,9 @@

Member Function Documentation

- + +

◆ printField() [1/5]

+
@@ -2223,7 +2372,9 @@

Member Function Documentation

- + +

◆ printField() [2/5]

+
@@ -2265,7 +2416,9 @@

Member Function Documentation

- + +

◆ printField() [3/5]

+
@@ -2307,7 +2460,9 @@

Member Function Documentation

- + +

◆ printField() [4/5]

+
@@ -2349,7 +2504,9 @@

Member Function Documentation

- + +

◆ printField() [5/5]

+
@@ -2391,7 +2548,9 @@

Member Function Documentation

- + +

◆ printFileSize()

+
@@ -2423,7 +2582,9 @@

Member Function Documentation

- + +

◆ printModifyDateTime()

+
@@ -2455,7 +2616,9 @@

Member Function Documentation

- + +

◆ printName() [1/2]

+
@@ -2480,7 +2643,9 @@

Member Function Documentation

- + +

◆ printName() [2/2]

+
@@ -2512,7 +2677,9 @@

Member Function Documentation

- + +

◆ printSFN()

+
@@ -2544,7 +2711,64 @@

Member Function Documentation

- + +

◆ read() [1/4]

+ +
+
+
+ + + + +
+ + + + +
int FatFile::read
+
+inlineinherited
+
+

Read the next byte from a file.

+
Returns
For success read returns the next byte in the file as an int. If an error occurs or end of file is reached -1 is returned.
+ +
+
+ +

◆ read() [2/4]

+ +
+
+ + + + + +
+ + + + +
int FatFile::read
+
+inherited
+
+

Read data from a file starting at the current position.

+
Parameters
+ + + +
[out]bufPointer to the location that will receive the data.
[in]nbyteMaximum number of bytes to read.
+
+
+
Returns
For success read() returns the number of bytes read. A value less than nbyte, including zero, will be returned if end of file is reached. If an error occurs, read() returns -1. Possible errors include read() called before a file has been opened, corrupt file system or an I/O error occurred.
+ +
+
+ +

◆ read() [3/4]

+
@@ -2569,7 +2793,9 @@

Member Function Documentation

- + +

◆ read() [4/4]

+
@@ -2612,7 +2838,9 @@

Member Function Documentation

- + +

◆ readDir()

+
@@ -2644,7 +2872,9 @@

Member Function Documentation

- + +

◆ remove() [1/2]

+
@@ -2671,7 +2901,9 @@

Member Function Documentation

- + +

◆ remove() [2/2]

+
@@ -2716,7 +2948,9 @@

Member Function Documentation

- + +

◆ rename()

+
@@ -2759,7 +2993,9 @@

Member Function Documentation

- + +

◆ rewind()

+
@@ -2783,7 +3019,9 @@

Member Function Documentation

- + +

◆ rmdir()

+
@@ -2810,7 +3048,9 @@

Member Function Documentation

- + +

◆ rmRfStar()

+
@@ -2838,7 +3078,9 @@

Member Function Documentation

- + +

◆ seekCur()

+
@@ -2869,7 +3111,9 @@

Member Function Documentation

- + +

◆ seekEnd()

+
@@ -2900,7 +3144,9 @@

Member Function Documentation

- + +

◆ seekSet()

+
@@ -2932,7 +3178,9 @@

Member Function Documentation

- + +

◆ setCwd()

+
@@ -2964,7 +3212,9 @@

Member Function Documentation

- + +

◆ setpos()

+
@@ -2994,7 +3244,9 @@

Member Function Documentation

- + +

◆ sync()

+
@@ -3019,7 +3271,9 @@

Member Function Documentation

- + +

◆ timestamp() [1/2]

+
@@ -3052,7 +3306,9 @@

Member Function Documentation

- + +

◆ timestamp() [2/2]

+
@@ -3141,7 +3397,9 @@

Member Function Documentation

- + +

◆ truncate()

+
@@ -3173,7 +3431,9 @@

Member Function Documentation

- + +

◆ volume()

+
@@ -3197,7 +3457,99 @@

Member Function Documentation

- + +

◆ write() [1/7]

+ +
+
+
+ + + + +
+ + + + +
int FatFile::write
+
+inlineinherited
+
+

Write a string to a file. Used by the Arduino Print class.

Parameters
+ + +
[in]strPointer to the string. Use getWriteError to check for errors.
+
+
+
Returns
count of characters written for success or -1 for failure.
+ +
+
+ +

◆ write() [2/7]

+ +
+
+ + + + + +
+ + + + +
int FatFile::write
+
+inherited
+
+

Write data to an open file.

+
Note
Data is moved to the cache but may not be written to the storage device until sync() is called.
+
Parameters
+ + + +
[in]bufPointer to the location of the data to be written.
[in]nbyteNumber of bytes to write.
+
+
+
Returns
For success write() returns the number of bytes written, always nbyte. If an error occurs, write() returns -1. Possible errors include write() is called before a file has been opened, write is called for a read-only file, device is full, a corrupt file system or an I/O error.
+ +
+
+ +

◆ write() [3/7]

+ +
+
+ + + + + +
+ + + + +
int FatFile::write
+
+inlineinherited
+
+

Write a single byte.

Parameters
+ + +
[in]bThe byte to be written.
+
+
+
Returns
+1 for success or -1 for failure.
+ +
+
+ +

◆ write() [4/7]

+
@@ -3230,7 +3582,9 @@

Member Function Documentation

- + +

◆ write() [5/7]

+
@@ -3274,7 +3628,9 @@

Member Function Documentation

- + +

◆ write() [6/7]

+
@@ -3305,7 +3661,9 @@

Member Function Documentation

- + +

◆ write() [7/7]

+
@@ -3345,7 +3703,7 @@

Member Function Documentation

-
Returns
For success write() returns the number of bytes written, always nbyte. If an error occurs, write() returns -1. Possible errors include write() is called before a file has been opened, write is called for a read-only file, device is full, a corrupt file system or an I/O error.
+
Returns
For success write() returns the number of bytes written, always nbyte. If an error occurs, write() returns -1. Possible errors include write() is called before a file has been opened, write is called for a read-only file, device is full, a corrupt file system or an I/O error.
@@ -3355,9 +3713,9 @@

Member Function Documentation

diff --git a/extras/html/class_sd_file_system-members.html b/extras/html/class_sd_file_system-members.html index a73d5a8a..1d5268ab 100644 --- a/extras/html/class_sd_file_system-members.html +++ b/extras/html/class_sd_file_system-members.html @@ -3,7 +3,8 @@ - + + SdFat: Member List @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
begin()SdFileSystem< SdDriverClass >inline FatFileSystem::begin(BlockDriver *blockDev, uint8_t part=0)FatFileSysteminline - blocksPerCluster() const FatVolumeinline - blocksPerFat() const FatVolumeinline + blocksPerCluster() constFatVolumeinline + blocksPerFat() constFatVolumeinline cacheClear()FatVolumeinline card()SdFileSystem< SdDriverClass >inline cardErrorCode()SdFileSystem< SdDriverClass >inline @@ -99,9 +79,9 @@ chdir(bool set_cwd=false)FatFileSysteminline chdir(const char *path, bool set_cwd=false)FatFileSysteminline chvol()FatFileSysteminline - clusterCount() const FatVolumeinline - clusterSizeShift() const FatVolumeinline - dataStartBlock() const FatVolumeinline + clusterCount() constFatVolumeinline + clusterSizeShift() constFatVolumeinline + dataStartBlock() constFatVolumeinline dbgFat(uint32_t n, uint32_t *v)FatVolumeinline errorHalt()SdFileSystem< SdDriverClass >inline errorHalt(Print *pr)SdFileSystem< SdDriverClass >inline @@ -117,8 +97,8 @@ errorPrint(Print *pr, const __FlashStringHelper *msg)SdFileSystem< SdDriverClass >inline exists(const char *path)FatFileSysteminline fatCount()FatVolumeinline - fatStartBlock() const FatVolumeinline - fatType() const FatVolumeinline + fatStartBlock() constFatVolumeinline + fatType() constFatVolumeinline FatVolume()FatVolumeinline freeClusterCount()FatVolume init()FatVolumeinline @@ -140,24 +120,24 @@ ls(print_t *pr, uint8_t flags=0)FatFileSysteminline ls(print_t *pr, const char *path, uint8_t flags)FatFileSysteminline mkdir(const char *path, bool pFlag=true)FatFileSysteminline - open(const char *path, uint8_t mode=FILE_READ)FatFileSysteminline - open(const String &path, uint8_t mode=FILE_READ)FatFileSysteminline + open(const char *path, oflag_t oflag=FILE_READ)FatFileSysteminline + open(const String &path, oflag_t oflag=FILE_READ)FatFileSysteminline remove(const char *path)FatFileSysteminline rename(const char *oldPath, const char *newPath)FatFileSysteminline rmdir(const char *path)FatFileSysteminline - rootDirEntryCount() const FatVolumeinline - rootDirStart() const FatVolumeinline + rootDirEntryCount() constFatVolumeinline + rootDirStart() constFatVolumeinline truncate(const char *path, uint32_t length)FatFileSysteminline vol()FatFileSysteminline - volumeBlockCount() const FatVolumeinline + volumeBlockCount() constFatVolumeinline vwd()FatFileSysteminline wipe(print_t *pr=0)FatFileSysteminline
diff --git a/extras/html/class_sd_file_system.html b/extras/html/class_sd_file_system.html index 299e6761..9110ee61 100644 --- a/extras/html/class_sd_file_system.html +++ b/extras/html/class_sd_file_system.html @@ -3,7 +3,8 @@ - + + SdFat: SdFileSystem< SdDriverClass > Class Template Reference @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
  bool begin ()   -uint8_t blocksPerCluster () const -  -uint32_t blocksPerFat () const -  +uint8_t blocksPerCluster () const +  +uint32_t blocksPerFat () const +  cache_tcacheClear ()   SdDriverClass * card () @@ -136,12 +116,12 @@   void chvol ()   -uint32_t clusterCount () const -  -uint8_t clusterSizeShift () const -  -uint32_t dataStartBlock () const -  +uint32_t clusterCount () const +  +uint8_t clusterSizeShift () const +  +uint32_t dataStartBlock () const +  int8_t dbgFat (uint32_t n, uint32_t *v)   void errorHalt () @@ -172,10 +152,10 @@   uint8_t fatCount ()   -uint32_t fatStartBlock () const -  -uint8_t fatType () const -  +uint32_t fatStartBlock () const +  +uint8_t fatType () const +  int32_t freeClusterCount ()   bool init () @@ -216,26 +196,26 @@   bool mkdir (const char *path, bool pFlag=true)   -File open (const char *path, uint8_t mode=FILE_READ) -  -File open (const String &path, uint8_t mode=FILE_READ) -  +File open (const char *path, oflag_t oflag=FILE_READ) +  +File open (const String &path, oflag_t oflag=FILE_READ) +  bool remove (const char *path)   bool rename (const char *oldPath, const char *newPath)   bool rmdir (const char *path)   -uint16_t rootDirEntryCount () const -  -uint32_t rootDirStart () const -  +uint16_t rootDirEntryCount () const +  +uint32_t rootDirStart () const +  bool truncate (const char *path, uint32_t length)   FatVolumevol ()   -uint32_t volumeBlockCount () const -  +uint32_t volumeBlockCount () const +  FatFilevwd ()   bool wipe (print_t *pr=0) @@ -247,7 +227,9 @@

Virtual base class for SdFat library.

Member Function Documentation

- + +

◆ begin() [1/2]

+
@@ -289,7 +271,9 @@ - + +

◆ begin() [2/2]

+
@@ -315,7 +299,9 @@
- + +

◆ blocksPerCluster()

+
@@ -339,7 +325,9 @@ - + +

◆ blocksPerFat()

+
@@ -363,7 +351,9 @@ - + +

◆ cacheClear()

+
@@ -387,7 +377,9 @@ - + +

◆ card()

+
@@ -413,7 +405,9 @@
- + +

◆ cardErrorCode()

+
@@ -439,7 +433,9 @@
- + +

◆ cardErrorData()

+
@@ -465,7 +461,9 @@
- + +

◆ chdir() [1/2]

+
@@ -498,7 +496,9 @@ - + +

◆ chdir() [2/2]

+
@@ -544,7 +544,9 @@ - + +

◆ chvol()

+
@@ -571,7 +573,9 @@ - + +

◆ clusterCount()

+
@@ -595,7 +599,9 @@ - + +

◆ clusterSizeShift()

+
@@ -619,7 +625,9 @@ - + +

◆ dataStartBlock()

+
@@ -643,7 +651,9 @@ - + +

◆ dbgFat()

+
@@ -682,11 +692,13 @@
-
Returns
true for success or false for failure
+
Returns
-1 error, 0 EOC, else 1.
- + +

◆ errorHalt() [1/6]

+
@@ -712,7 +724,9 @@
- + +

◆ errorHalt() [2/6]

+
@@ -745,7 +759,9 @@
- + +

◆ errorHalt() [3/6]

+
@@ -778,7 +794,9 @@
- + +

◆ errorHalt() [4/6]

+
@@ -822,7 +840,9 @@
- + +

◆ errorHalt() [5/6]

+
@@ -855,7 +875,9 @@
- + +

◆ errorHalt() [6/6]

+
@@ -899,7 +921,9 @@
- + +

◆ errorPrint() [1/6]

+
@@ -925,7 +949,9 @@
- + +

◆ errorPrint() [2/6]

+
@@ -957,7 +983,9 @@
- + +

◆ errorPrint() [3/6]

+
@@ -990,7 +1018,9 @@
- + +

◆ errorPrint() [4/6]

+
@@ -1034,7 +1064,9 @@
- + +

◆ errorPrint() [5/6]

+
@@ -1067,7 +1099,9 @@
- + +

◆ errorPrint() [6/6]

+
@@ -1111,7 +1145,9 @@
- + +

◆ exists()

+
@@ -1143,7 +1179,9 @@ - + +

◆ fatCount()

+
@@ -1167,7 +1205,9 @@ - + +

◆ fatStartBlock()

+
@@ -1191,7 +1231,9 @@ - + +

◆ fatType()

+
@@ -1215,7 +1257,9 @@ - + +

◆ freeClusterCount()

+
@@ -1240,7 +1284,9 @@ - + +

◆ init() [1/2]

+
@@ -1265,7 +1311,9 @@ - + +

◆ init() [2/2]

+
@@ -1297,7 +1345,9 @@ - + +

◆ initErrorHalt() [1/6]

+
@@ -1323,7 +1373,9 @@
- + +

◆ initErrorHalt() [2/6]

+
@@ -1356,7 +1408,9 @@
- + +

◆ initErrorHalt() [3/6]

+
@@ -1389,7 +1443,9 @@
- + +

◆ initErrorHalt() [4/6]

+
@@ -1432,7 +1488,9 @@
- + +

◆ initErrorHalt() [5/6]

+
@@ -1465,7 +1523,9 @@
- + +

◆ initErrorHalt() [6/6]

+
@@ -1508,7 +1568,9 @@
- + +

◆ initErrorPrint() [1/6]

+
@@ -1534,7 +1596,9 @@
- + +

◆ initErrorPrint() [2/6]

+
@@ -1567,7 +1631,9 @@
- + +

◆ initErrorPrint() [3/6]

+
@@ -1600,7 +1666,9 @@
- + +

◆ initErrorPrint() [4/6]

+
@@ -1644,7 +1712,9 @@
- + +

◆ initErrorPrint() [5/6]

+
@@ -1677,7 +1747,9 @@
- + +

◆ initErrorPrint() [6/6]

+
@@ -1721,7 +1793,9 @@
- + +

◆ ls() [1/4]

+
@@ -1755,7 +1829,9 @@ - + +

◆ ls() [2/4]

+
@@ -1800,7 +1876,9 @@ - + +

◆ ls() [3/4]

+
@@ -1845,7 +1923,9 @@ - + +

◆ ls() [4/4]

+
@@ -1897,7 +1977,9 @@ - + +

◆ mkdir()

+
@@ -1940,7 +2022,9 @@ - + +

◆ open() [1/2]

+
@@ -1956,8 +2040,8 @@ - - + + @@ -1975,7 +2059,7 @@
Parameters
uint8_t mode = FILE_READ oflag_t oflag = FILE_READ 
- +
[in]pathlocation of file to be opened.
[in]modeopen mode flags.
[in]oflagopen flags.
@@ -1983,7 +2067,9 @@
- + +

◆ open() [2/2]

+
@@ -1999,8 +2085,8 @@ - - + + @@ -2018,7 +2104,7 @@
Parameters
uint8_t mode = FILE_READ oflag_t oflag = FILE_READ 
- +
[in]pathlocation of file to be opened.
[in]modeopen mode flags.
[in]oflagopen flags.
@@ -2026,7 +2112,9 @@
- + +

◆ remove()

+
@@ -2058,7 +2146,9 @@ - + +

◆ rename()

+
@@ -2103,7 +2193,9 @@ - + +

◆ rmdir()

+
@@ -2136,7 +2228,9 @@ - + +

◆ rootDirEntryCount()

+
@@ -2160,7 +2254,9 @@ - + +

◆ rootDirStart()

+
@@ -2184,7 +2280,9 @@ - + +

◆ truncate()

+
@@ -2227,7 +2325,9 @@ - + +

◆ vol()

+
@@ -2251,7 +2351,9 @@ - + +

◆ volumeBlockCount()

+
@@ -2275,7 +2377,9 @@ - + +

◆ vwd()

+
@@ -2299,7 +2403,9 @@ - + +

◆ wipe()

+
@@ -2336,9 +2442,9 @@ diff --git a/extras/html/class_sd_spi_card-members.html b/extras/html/class_sd_spi_card-members.html index e318e6a8..e0d4895b 100644 --- a/extras/html/class_sd_spi_card-members.html +++ b/extras/html/class_sd_spi_card-members.html @@ -3,7 +3,8 @@ - + +SdFat: Member List @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
erase(uint32_t firstBlock, uint32_t lastBlock)SdSpiCard eraseSingleBlockEnable()SdSpiCard error(uint8_t code)SdSpiCardinline - errorCode() const SdSpiCardinline - errorData() const SdSpiCardinline + errorCode() constSdSpiCardinline + errorData() constSdSpiCardinline isBusy()SdSpiCard readBlock(uint32_t lba, uint8_t *dst)SdSpiCard readBlocks(uint32_t lba, uint8_t *dst, size_t nb)SdSpiCard @@ -109,7 +89,7 @@ spiStart()SdSpiCard spiStop()SdSpiCard syncBlocks()SdSpiCardinline - type() const SdSpiCardinline + type() constSdSpiCardinline writeBlock(uint32_t lba, const uint8_t *src)SdSpiCard writeBlocks(uint32_t lba, const uint8_t *src, size_t nb)SdSpiCard writeData(const uint8_t *src)SdSpiCard @@ -119,9 +99,9 @@
diff --git a/extras/html/class_sd_spi_card.html b/extras/html/class_sd_spi_card.html index 406a316c..69203acf 100644 --- a/extras/html/class_sd_spi_card.html +++ b/extras/html/class_sd_spi_card.html @@ -3,7 +3,8 @@ - + + SdFat: SdSpiCard Class Reference @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
  void error (uint8_t code)   -int errorCode () const -  -int errorData () const -  +int errorCode () const +  +int errorData () const +  bool isBusy ()   bool readBlock (uint32_t lba, uint8_t *dst) @@ -147,8 +127,8 @@   bool syncBlocks ()   -int type () const -  +int type () const +  bool writeBlock (uint32_t lba, const uint8_t *src)   bool writeBlocks (uint32_t lba, const uint8_t *src, size_t nb) @@ -165,7 +145,9 @@

Detailed Description

Raw access to SD and SDHC flash memory cards via SPI protocol.

Constructor & Destructor Documentation

- + +

◆ SdSpiCard()

+
@@ -190,7 +172,9 @@

Member Function Documentation

- + +

◆ begin()

+
@@ -231,7 +215,9 @@

Member Function Documentation

- + +

◆ cardSize()

+
@@ -248,7 +234,9 @@

Member Function Documentation

- + +

◆ erase()

+
@@ -284,7 +272,9 @@

Member Function Documentation

- + +

◆ eraseSingleBlockEnable()

+
@@ -301,7 +291,9 @@

Member Function Documentation

- + +

◆ error()

+
@@ -331,7 +323,9 @@

Member Function Documentation

- + +

◆ errorCode()

+
@@ -355,7 +349,9 @@

Member Function Documentation

- + +

◆ errorData()

+
@@ -379,7 +375,9 @@

Member Function Documentation

- + +

◆ isBusy()

+
@@ -396,7 +394,9 @@

Member Function Documentation

- + +

◆ readBlock()

+
@@ -431,7 +431,9 @@

Member Function Documentation

- + +

◆ readBlocks()

+
@@ -473,7 +475,9 @@

Member Function Documentation

- + +

◆ readCID()

+
@@ -505,7 +509,9 @@

Member Function Documentation

- + +

◆ readCSD()

+
@@ -537,7 +543,9 @@

Member Function Documentation

- + +

◆ readData()

+
@@ -561,7 +569,9 @@

Member Function Documentation

- + +

◆ readOCR()

+
@@ -585,7 +595,9 @@

Member Function Documentation

- + +

◆ readStart()

+
@@ -610,7 +622,9 @@

Member Function Documentation

- + +

◆ readStatus()

+
@@ -633,7 +647,9 @@

Member Function Documentation

- + +

◆ readStop()

+
@@ -650,7 +666,9 @@

Member Function Documentation

- + +

◆ spiStart()

+
@@ -666,7 +684,9 @@

Member Function Documentation

- + +

◆ spiStop()

+
@@ -682,7 +702,9 @@

Member Function Documentation

- + +

◆ syncBlocks()

+
@@ -706,7 +728,9 @@

Member Function Documentation

- + +

◆ type()

+
@@ -730,7 +754,9 @@

Member Function Documentation

- + +

◆ writeBlock()

+
@@ -765,7 +791,9 @@

Member Function Documentation

- + +

◆ writeBlocks()

+
@@ -807,7 +835,9 @@

Member Function Documentation

- + +

◆ writeData()

+
@@ -830,7 +860,9 @@

Member Function Documentation

- + +

◆ writeStart() [1/2]

+
@@ -855,7 +887,9 @@

Member Function Documentation

- + +

◆ writeStart() [2/2]

+
@@ -891,7 +925,9 @@

Member Function Documentation

- + +

◆ writeStop()

+
@@ -915,9 +951,9 @@

Member Function Documentation

diff --git a/extras/html/class_sd_spi_card_e_x-members.html b/extras/html/class_sd_spi_card_e_x-members.html index 1c12ae7e..2b5fc059 100644 --- a/extras/html/class_sd_spi_card_e_x-members.html +++ b/extras/html/class_sd_spi_card_e_x-members.html @@ -3,7 +3,8 @@ - + +SdFat: Member List @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
erase(uint32_t firstBlock, uint32_t lastBlock)SdSpiCard eraseSingleBlockEnable()SdSpiCard error(uint8_t code)SdSpiCardinline - errorCode() const SdSpiCardinline - errorData() const SdSpiCardinline + errorCode() constSdSpiCardinline + errorData() constSdSpiCardinline isBusy()SdSpiCard readBlock(uint32_t block, uint8_t *dst)SdSpiCardEX readBlocks(uint32_t block, uint8_t *dst, size_t nb)SdSpiCardEX @@ -109,7 +89,7 @@ spiStart()SdSpiCard spiStop()SdSpiCard syncBlocks()SdSpiCardEX - type() const SdSpiCardinline + type() constSdSpiCardinline writeBlock(uint32_t block, const uint8_t *src)SdSpiCardEX writeBlocks(uint32_t block, const uint8_t *src, size_t nb)SdSpiCardEX writeData(const uint8_t *src)SdSpiCard @@ -119,9 +99,9 @@
diff --git a/extras/html/class_sd_spi_card_e_x.html b/extras/html/class_sd_spi_card_e_x.html index 722e4f05..5d52336a 100644 --- a/extras/html/class_sd_spi_card_e_x.html +++ b/extras/html/class_sd_spi_card_e_x.html @@ -3,7 +3,8 @@ - + + SdFat: SdSpiCardEX Class Reference @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
  void error (uint8_t code)   -int errorCode () const -  -int errorData () const -  +int errorCode () const +  +int errorData () const +  bool isBusy ()   bool readBlock (uint32_t block, uint8_t *dst) @@ -152,8 +132,8 @@   bool syncBlocks ()   -int type () const -  +int type () const +  bool writeBlock (uint32_t block, const uint8_t *src)   bool writeBlocks (uint32_t block, const uint8_t *src, size_t nb) @@ -170,7 +150,9 @@

Detailed Description

Extended SD I/O block driver.

Member Function Documentation

- + +

◆ begin()

+
@@ -220,7 +202,9 @@ - + +

◆ cardSize()

+
@@ -245,7 +229,9 @@ - + +

◆ erase()

+
@@ -289,7 +275,9 @@ - + +

◆ eraseSingleBlockEnable()

+
@@ -314,7 +302,9 @@ - + +

◆ error()

+
@@ -344,7 +334,9 @@ - + +

◆ errorCode()

+
@@ -368,7 +360,9 @@ - + +

◆ errorData()

+
@@ -392,7 +386,9 @@ - + +

◆ isBusy()

+
@@ -417,7 +413,9 @@ - + +

◆ readBlock()

+
@@ -448,11 +446,18 @@
-
Returns
The value true is returned for success and the value false is returned for failure.
+
Returns
The value true is returned for success and the value false is returned for failure.
+

Copyright (c) 2011-2018 Bill Greiman This file is part of the SdFat library for SD memory cards.

+

MIT License

+

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

- + +

◆ readBlocks()

+
@@ -494,7 +499,9 @@ - + +

◆ readCID()

+
@@ -526,7 +533,9 @@ - + +

◆ readCSD()

+
@@ -558,7 +567,9 @@ - + +

◆ readData()

+
@@ -590,7 +601,9 @@ - + +

◆ readOCR()

+
@@ -622,7 +635,9 @@ - + +

◆ readStart()

+
@@ -655,7 +670,9 @@ - + +

◆ readStatus()

+
@@ -686,7 +703,9 @@ - + +

◆ readStop()

+
@@ -711,7 +730,9 @@ - + +

◆ spiStart()

+
@@ -735,7 +756,9 @@ - + +

◆ spiStop()

+
@@ -759,7 +782,9 @@ - + +

◆ syncBlocks()

+
@@ -775,7 +800,9 @@ - + +

◆ type()

+
@@ -799,7 +826,9 @@ - + +

◆ writeBlock()

+
@@ -834,7 +863,9 @@ - + +

◆ writeBlocks()

+
@@ -876,7 +907,9 @@ - + +

◆ writeData()

+
@@ -907,7 +940,9 @@ - + +

◆ writeStart() [1/2]

+
@@ -940,7 +975,9 @@ - + +

◆ writeStart() [2/2]

+
@@ -984,7 +1021,9 @@ - + +

◆ writeStop()

+
@@ -1016,9 +1055,9 @@ diff --git a/extras/html/class_sdio_card-members.html b/extras/html/class_sdio_card-members.html index 35749db2..c564a7ce 100644 --- a/extras/html/class_sdio_card-members.html +++ b/extras/html/class_sdio_card-members.html @@ -3,7 +3,8 @@ - + +SdFat: Member List @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
begin()SdioCard cardSize()SdioCard - dmaBusy()SdioCard - erase(uint32_t firstBlock, uint32_t lastBlock)SdioCard - errorCode()SdioCard - errorData()SdioCard - errorLine()SdioCard - readBlock(uint32_t lba, uint8_t *dst)SdioCardvirtual - readBlocks(uint32_t lba, uint8_t *dst, size_t nb)SdioCardvirtual - readCID(void *cid)SdioCard - readCSD(void *csd)SdioCard + erase(uint32_t firstBlock, uint32_t lastBlock)SdioCard + errorCode()SdioCard + errorData()SdioCard + errorLine()SdioCard + isBusy()SdioCard + kHzSdClk()SdioCard + readBlock(uint32_t lba, uint8_t *dst)SdioCardvirtual + readBlocks(uint32_t lba, uint8_t *dst, size_t nb)SdioCardvirtual + readCID(void *cid)SdioCard + readCSD(void *csd)SdioCard + readData(uint8_t *dst)SdioCard readOCR(uint32_t *ocr)SdioCard - syncBlocks()SdioCardvirtual - type()SdioCard - writeBlock(uint32_t lba, const uint8_t *src)SdioCardvirtual - writeBlocks(uint32_t lba, const uint8_t *src, size_t nb)SdioCardvirtual + readStart(uint32_t lba)SdioCard + readStart(uint32_t lba, uint32_t count)SdioCard + readStop()SdioCard + syncBlocks()SdioCardvirtual + type()SdioCard + writeBlock(uint32_t lba, const uint8_t *src)SdioCardvirtual + writeBlocks(uint32_t lba, const uint8_t *src, size_t nb)SdioCardvirtual + writeData(const uint8_t *src)SdioCard + writeStart(uint32_t lba)SdioCard + writeStart(uint32_t lba, uint32_t count)SdioCard + writeStop()SdioCard
diff --git a/extras/html/class_sdio_card.html b/extras/html/class_sdio_card.html index 9f51aa2f..f90cf807 100644 --- a/extras/html/class_sdio_card.html +++ b/extras/html/class_sdio_card.html @@ -3,7 +3,8 @@ - + + SdFat: SdioCard Class Reference @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
Inheritance graph
+
[legend]
@@ -116,8 +97,6 @@   uint32_t cardSize ()   -bool dmaBusy () -  bool erase (uint32_t firstBlock, uint32_t lastBlock)   uint8_t errorCode () @@ -126,6 +105,10 @@   uint32_t errorLine ()   +bool isBusy () +  +uint32_t kHzSdClk () +  bool readBlock (uint32_t lba, uint8_t *dst)   bool readBlocks (uint32_t lba, uint8_t *dst, size_t nb) @@ -134,8 +117,16 @@   bool readCSD (void *csd)   +bool readData (uint8_t *dst) +  bool readOCR (uint32_t *ocr)   +bool readStart (uint32_t lba) +  +bool readStart (uint32_t lba, uint32_t count) +  +bool readStop () +  bool syncBlocks ()   uint8_t type () @@ -144,11 +135,26 @@   bool writeBlocks (uint32_t lba, const uint8_t *src, size_t nb)   +bool writeData (const uint8_t *src) +  +bool writeStart (uint32_t lba) +  +bool writeStart (uint32_t lba, uint32_t count) +  +bool writeStop () + 

Detailed Description

Raw SDIO access to SD and SDHC flash memory cards.

+

Copyright (c) 2011-2018 Bill Greiman This file is part of the SdFat library for SD memory cards.

+

MIT License

+

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Member Function Documentation

- + +

◆ begin()

+
@@ -164,7 +170,9 @@ - + +

◆ cardSize()

+
@@ -181,23 +189,9 @@ - -
-
-
- - - - - - -
bool SdioCard::dmaBusy ()
-
-
Returns
DMA transfer status.
+ +

◆ erase()

-
-
-
@@ -233,7 +227,9 @@ - + +

◆ errorCode()

+
@@ -249,7 +245,9 @@ - + +

◆ errorData()

+
@@ -265,7 +263,9 @@ - + +

◆ errorLine()

+
@@ -281,7 +281,46 @@ - + +

◆ isBusy()

+ +
+
+
+ + + + + + +
bool SdioCard::isBusy ()
+
+

Check for busy with CMD13.

+
Returns
true if busy else false.
+ +
+
+ +

◆ kHzSdClk()

+ +
+
+ + + + + + + +
uint32_t SdioCard::kHzSdClk ()
+
+
Returns
the SD clock frequency in kHz.
+ +
+
+ +

◆ readBlock()

+
@@ -324,9 +363,13 @@

Implements BaseBlockDriver.

+

Reimplemented in SdioCardEX.

+ - + +

◆ readBlocks()

+
@@ -376,9 +419,13 @@

Implements BaseBlockDriver.

+

Reimplemented in SdioCardEX.

+ - + +

◆ readCID()

+
@@ -402,7 +449,9 @@ - + +

◆ readCSD()

+
@@ -426,7 +475,35 @@ - + +

◆ readData()

+ +
+
+
+ + + + + + + +
bool SdioCard::readData (uint8_t * dst)
+
+

Read one data block in a multiple block read sequence

+
Parameters
+ + +
[out]dstPointer to the location for the data to be read.
+
+
+
Returns
The value true is returned for success and the value false is returned for failure.
+ +
+
+ +

◆ readOCR()

+
@@ -450,7 +527,93 @@ - + +

◆ readStart() [1/2]

+ +
+
+
+ + + + + + + +
bool SdioCard::readStart (uint32_t lba)
+
+

Start a read multiple blocks sequence.

+
Parameters
+ + +
[in]lbaAddress of first block in sequence.
+
+
+
Note
This function is used with readData() and readStop() for optimized multiple block reads. SPI chipSelect must be low for the entire sequence.
+
Returns
The value true is returned for success and the value false is returned for failure.
+ +
+
+ +

◆ readStart() [2/2]

+ +
+
+ + + + + + + + + + + + + + + + + + +
bool SdioCard::readStart (uint32_t lba,
uint32_t count 
)
+
+

Start a read multiple blocks sequence.

+
Parameters
+ + + +
[in]lbaAddress of first block in sequence.
[in]countMaximum block count.
+
+
+
Note
This function is used with readData() and readStop() for optimized multiple block reads. SPI chipSelect must be low for the entire sequence.
+
Returns
The value true is returned for success and the value false is returned for failure.
+ +
+
+ +

◆ readStop()

+ +
+
+ + + + + + + +
bool SdioCard::readStop ()
+
+

End a read multiple blocks sequence.

+
Returns
The value true is returned for success and the value false is returned for failure.
+ +
+
+ +

◆ syncBlocks()

+
@@ -474,9 +637,13 @@

Implements BaseBlockDriver.

+

Reimplemented in SdioCardEX.

+ - + +

◆ type()

+
@@ -492,7 +659,9 @@ - + +

◆ writeBlock()

+
@@ -535,9 +704,13 @@

Implements BaseBlockDriver.

+

Reimplemented in SdioCardEX.

+ - + +

◆ writeBlocks()

+
@@ -587,6 +760,117 @@

Implements BaseBlockDriver.

+

Reimplemented in SdioCardEX.

+ + + + +

◆ writeData()

+ +
+
+
+ + + + + + + +
bool SdioCard::writeData (const uint8_t * src)
+
+

Write one data block in a multiple block write sequence.

Parameters
+ + +
[in]srcPointer to the location of the data to be written.
+
+
+
Returns
The value true is returned for success and the value false is returned for failure.
+ +
+
+ +

◆ writeStart() [1/2]

+ +
+
+ + + + + + + + +
bool SdioCard::writeStart (uint32_t lba)
+
+

Start a write multiple blocks sequence.

+
Parameters
+ + +
[in]lbaAddress of first block in sequence.
+
+
+
Note
This function is used with writeData() and writeStop() for optimized multiple block writes.
+
Returns
The value true is returned for success and the value false is returned for failure.
+ +
+
+ +

◆ writeStart() [2/2]

+ +
+
+ + + + + + + + + + + + + + + + + + +
bool SdioCard::writeStart (uint32_t lba,
uint32_t count 
)
+
+

Start a write multiple blocks sequence.

+
Parameters
+ + + +
[in]lbaAddress of first block in sequence.
[in]countMaximum block count.
+
+
+
Note
This function is used with writeData() and writeStop() for optimized multiple block writes.
+
Returns
The value true is returned for success and the value false is returned for failure.
+ +
+
+ +

◆ writeStop()

+ +
+
+ + + + + + + +
bool SdioCard::writeStop ()
+
+

End a write multiple blocks sequence.

+
Returns
The value true is returned for success and the value false is returned for failure.
+

The documentation for this class was generated from the following file:
    @@ -595,9 +879,9 @@
diff --git a/extras/html/class_sdio_card__inherit__graph.png b/extras/html/class_sdio_card__inherit__graph.png index a82e5bc5..5b024ad6 100644 Binary files a/extras/html/class_sdio_card__inherit__graph.png and b/extras/html/class_sdio_card__inherit__graph.png differ diff --git a/extras/html/class_sdio_card_e_x-members.html b/extras/html/class_sdio_card_e_x-members.html new file mode 100644 index 00000000..bd8fddfc --- /dev/null +++ b/extras/html/class_sdio_card_e_x-members.html @@ -0,0 +1,104 @@ + + + + + + + +SdFat: Member List + + + + + + + + + +
+
+ + + + + + +
+
SdFat +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
+
SdioCardEX Member List
+
+
+ +

This is the complete list of members for SdioCardEX, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
begin()SdioCardEXinline
cardSize()SdioCard
erase(uint32_t firstBlock, uint32_t lastBlock)SdioCardEXinline
errorCode()SdioCard
errorData()SdioCard
errorLine()SdioCard
isBusy()SdioCard
kHzSdClk()SdioCard
readBlock(uint32_t block, uint8_t *dst)SdioCardEXvirtual
readBlocks(uint32_t block, uint8_t *dst, size_t nb)SdioCardEXvirtual
readCID(void *cid)SdioCard
readCSD(void *csd)SdioCard
readData(uint8_t *dst)SdioCard
readOCR(uint32_t *ocr)SdioCard
readStart(uint32_t lba)SdioCard
readStart(uint32_t lba, uint32_t count)SdioCard
readStop()SdioCard
syncBlocks()SdioCardEXvirtual
type()SdioCard
writeBlock(uint32_t block, const uint8_t *src)SdioCardEXvirtual
writeBlocks(uint32_t block, const uint8_t *src, size_t nb)SdioCardEXvirtual
writeData(const uint8_t *src)SdioCard
writeStart(uint32_t lba)SdioCard
writeStart(uint32_t lba, uint32_t count)SdioCard
writeStop()SdioCard
+ + + + diff --git a/extras/html/class_sdio_card_e_x.html b/extras/html/class_sdio_card_e_x.html new file mode 100644 index 00000000..b8a10353 --- /dev/null +++ b/extras/html/class_sdio_card_e_x.html @@ -0,0 +1,1035 @@ + + + + + + + +SdFat: SdioCardEX Class Reference + + + + + + + + + +
+
+ + + + + + +
+
SdFat +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+ +
+
SdioCardEX Class Reference
+
+
+ +

Extended SD I/O block driver. + More...

+ +

#include <SdioCard.h>

+
+Inheritance diagram for SdioCardEX:
+
+
Inheritance graph
+ + + + +
[legend]
+
+Collaboration diagram for SdioCardEX:
+
+
Collaboration graph
+ + + + +
[legend]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

bool begin ()
 
uint32_t cardSize ()
 
bool erase (uint32_t firstBlock, uint32_t lastBlock)
 
uint8_t errorCode ()
 
uint32_t errorData ()
 
uint32_t errorLine ()
 
bool isBusy ()
 
uint32_t kHzSdClk ()
 
bool readBlock (uint32_t block, uint8_t *dst)
 
bool readBlocks (uint32_t block, uint8_t *dst, size_t nb)
 
bool readCID (void *cid)
 
bool readCSD (void *csd)
 
bool readData (uint8_t *dst)
 
bool readOCR (uint32_t *ocr)
 
bool readStart (uint32_t lba)
 
bool readStart (uint32_t lba, uint32_t count)
 
bool readStop ()
 
bool syncBlocks ()
 
uint8_t type ()
 
bool writeBlock (uint32_t block, const uint8_t *src)
 
bool writeBlocks (uint32_t block, const uint8_t *src, size_t nb)
 
bool writeData (const uint8_t *src)
 
bool writeStart (uint32_t lba)
 
bool writeStart (uint32_t lba, uint32_t count)
 
bool writeStop ()
 
+

Detailed Description

+

Extended SD I/O block driver.

+

Member Function Documentation

+ +

◆ begin()

+ +
+
+ + + + + +
+ + + + + + + +
bool SdioCardEX::begin ()
+
+inline
+
+

Initialize the SD card

+
Returns
The value true is returned for success and the value false is returned for failure.
+ +
+
+ +

◆ cardSize()

+ +
+
+ + + + + +
+ + + + + + + +
uint32_t SdioCard::cardSize ()
+
+inherited
+
+

Determine the size of an SD flash memory card.

+
Returns
The number of 512 byte data blocks in the card or zero if an error occurs.
+ +
+
+ +

◆ erase()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool SdioCardEX::erase (uint32_t firstBlock,
uint32_t lastBlock 
)
+
+inline
+
+

Erase a range of blocks.

+
Parameters
+ + + +
[in]firstBlockThe address of the first block in the range.
[in]lastBlockThe address of the last block in the range.
+
+
+
Note
This function requests the SD card to do a flash erase for a range of blocks. The data on the card after an erase operation is either 0 or 1, depends on the card vendor. The card must support single block erase.
+
Returns
The value true is returned for success and the value false is returned for failure.
+ +
+
+ +

◆ errorCode()

+ +
+
+ + + + + +
+ + + + + + + +
uint8_t SdioCard::errorCode ()
+
+inherited
+
+
Returns
code for the last error. See SdInfo.h for a list of error codes.
+ +
+
+ +

◆ errorData()

+ +
+
+ + + + + +
+ + + + + + + +
uint32_t SdioCard::errorData ()
+
+inherited
+
+
Returns
error data for last error.
+ +
+
+ +

◆ errorLine()

+ +
+
+ + + + + +
+ + + + + + + +
uint32_t SdioCard::errorLine ()
+
+inherited
+
+
Returns
error line for last error. Tmp function for debug.
+ +
+
+ +

◆ isBusy()

+ +
+
+ + + + + +
+ + + + + + + +
bool SdioCard::isBusy ()
+
+inherited
+
+

Check for busy with CMD13.

+
Returns
true if busy else false.
+ +
+
+ +

◆ kHzSdClk()

+ +
+
+ + + + + +
+ + + + + + + +
uint32_t SdioCard::kHzSdClk ()
+
+inherited
+
+
Returns
the SD clock frequency in kHz.
+ +
+
+ +

◆ readBlock()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool SdioCardEX::readBlock (uint32_t block,
uint8_t * dst 
)
+
+virtual
+
+

Read a 512 byte block from an SD card.

+
Parameters
+ + + +
[in]blockLogical block to be read.
[out]dstPointer to the location that will receive the data.
+
+
+
Returns
The value true is returned for success and the value false is returned for failure.
+ +

Reimplemented from SdioCard.

+ +
+
+ +

◆ readBlocks()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
bool SdioCardEX::readBlocks (uint32_t block,
uint8_t * dst,
size_t nb 
)
+
+virtual
+
+

Read multiple 512 byte blocks from an SD card.

+
Parameters
+ + + + +
[in]blockLogical block to be read.
[in]nbNumber of blocks to be read.
[out]dstPointer to the location that will receive the data.
+
+
+
Returns
The value true is returned for success and the value false is returned for failure.
+ +

Reimplemented from SdioCard.

+ +
+
+ +

◆ readCID()

+ +
+
+ + + + + +
+ + + + + + + + +
bool SdioCard::readCID (void * cid)
+
+inherited
+
+

Read a card's CID register. The CID contains card identification information such as Manufacturer ID, Product name, Product serial number and Manufacturing date.

+
Parameters
+ + +
[out]cidpointer to area for returned data.
+
+
+
Returns
true for success or false for failure.
+ +
+
+ +

◆ readCSD()

+ +
+
+ + + + + +
+ + + + + + + + +
bool SdioCard::readCSD (void * csd)
+
+inherited
+
+

Read a card's CSD register. The CSD contains Card-Specific Data that provides information regarding access to the card's contents.

+
Parameters
+ + +
[out]csdpointer to area for returned data.
+
+
+
Returns
true for success or false for failure.
+ +
+
+ +

◆ readData()

+ +
+
+ + + + + +
+ + + + + + + + +
bool SdioCard::readData (uint8_t * dst)
+
+inherited
+
+

Read one data block in a multiple block read sequence

+
Parameters
+ + +
[out]dstPointer to the location for the data to be read.
+
+
+
Returns
The value true is returned for success and the value false is returned for failure.
+ +
+
+ +

◆ readOCR()

+ +
+
+ + + + + +
+ + + + + + + + +
bool SdioCard::readOCR (uint32_t * ocr)
+
+inherited
+
+

Read OCR register.

+
Parameters
+ + +
[out]ocrValue of OCR register.
+
+
+
Returns
true for success else false.
+ +
+
+ +

◆ readStart() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + +
bool SdioCard::readStart (uint32_t lba)
+
+inherited
+
+

Start a read multiple blocks sequence.

+
Parameters
+ + +
[in]lbaAddress of first block in sequence.
+
+
+
Note
This function is used with readData() and readStop() for optimized multiple block reads. SPI chipSelect must be low for the entire sequence.
+
Returns
The value true is returned for success and the value false is returned for failure.
+ +
+
+ +

◆ readStart() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool SdioCard::readStart (uint32_t lba,
uint32_t count 
)
+
+inherited
+
+

Start a read multiple blocks sequence.

+
Parameters
+ + + +
[in]lbaAddress of first block in sequence.
[in]countMaximum block count.
+
+
+
Note
This function is used with readData() and readStop() for optimized multiple block reads. SPI chipSelect must be low for the entire sequence.
+
Returns
The value true is returned for success and the value false is returned for failure.
+ +
+
+ +

◆ readStop()

+ +
+
+ + + + + +
+ + + + + + + +
bool SdioCard::readStop ()
+
+inherited
+
+

End a read multiple blocks sequence.

+
Returns
The value true is returned for success and the value false is returned for failure.
+ +
+
+ +

◆ syncBlocks()

+ +
+
+ + + + + +
+ + + + + + + +
bool SdioCardEX::syncBlocks ()
+
+virtual
+
+

End multi-block transfer and go to idle state.

Returns
The value true is returned for success and the value false is returned for failure.
+ +

Reimplemented from SdioCard.

+ +
+
+ +

◆ type()

+ +
+
+ + + + + +
+ + + + + + + +
uint8_t SdioCard::type ()
+
+inherited
+
+

Return the card type: SD V1, SD V2 or SDHC

Returns
0 - SD V1, 1 - SD V2, or 3 - SDHC.
+ +
+
+ +

◆ writeBlock()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool SdioCardEX::writeBlock (uint32_t block,
const uint8_t * src 
)
+
+virtual
+
+

Writes a 512 byte block to an SD card.

+
Parameters
+ + + +
[in]blockLogical block to be written.
[in]srcPointer to the location of the data to be written.
+
+
+
Returns
The value true is returned for success and the value false is returned for failure.
+ +

Reimplemented from SdioCard.

+ +
+
+ +

◆ writeBlocks()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
bool SdioCardEX::writeBlocks (uint32_t block,
const uint8_t * src,
size_t nb 
)
+
+virtual
+
+

Write multiple 512 byte blocks to an SD card.

+
Parameters
+ + + + +
[in]blockLogical block to be written.
[in]nbNumber of blocks to be written.
[in]srcPointer to the location of the data to be written.
+
+
+
Returns
The value true is returned for success and the value false is returned for failure.
+ +

Reimplemented from SdioCard.

+ +
+
+ +

◆ writeData()

+ +
+
+ + + + + +
+ + + + + + + + +
bool SdioCard::writeData (const uint8_t * src)
+
+inherited
+
+

Write one data block in a multiple block write sequence.

Parameters
+ + +
[in]srcPointer to the location of the data to be written.
+
+
+
Returns
The value true is returned for success and the value false is returned for failure.
+ +
+
+ +

◆ writeStart() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + +
bool SdioCard::writeStart (uint32_t lba)
+
+inherited
+
+

Start a write multiple blocks sequence.

+
Parameters
+ + +
[in]lbaAddress of first block in sequence.
+
+
+
Note
This function is used with writeData() and writeStop() for optimized multiple block writes.
+
Returns
The value true is returned for success and the value false is returned for failure.
+ +
+
+ +

◆ writeStart() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool SdioCard::writeStart (uint32_t lba,
uint32_t count 
)
+
+inherited
+
+

Start a write multiple blocks sequence.

+
Parameters
+ + + +
[in]lbaAddress of first block in sequence.
[in]countMaximum block count.
+
+
+
Note
This function is used with writeData() and writeStop() for optimized multiple block writes.
+
Returns
The value true is returned for success and the value false is returned for failure.
+ +
+
+ +

◆ writeStop()

+ +
+
+ + + + + +
+ + + + + + + +
bool SdioCard::writeStop ()
+
+inherited
+
+

End a write multiple blocks sequence.

+
Returns
The value true is returned for success and the value false is returned for failure.
+ +
+
+
The documentation for this class was generated from the following files:
    +
  • Arduino/libraries/SdFat/src/SdCard/SdioCard.h
  • +
  • Arduino/libraries/SdFat/src/SdCard/SdioCardEX.cpp
  • +
+
+ + + + diff --git a/extras/html/class_sdio_card_e_x__coll__graph.png b/extras/html/class_sdio_card_e_x__coll__graph.png new file mode 100644 index 00000000..8d0fd989 Binary files /dev/null and b/extras/html/class_sdio_card_e_x__coll__graph.png differ diff --git a/extras/html/class_sdio_card_e_x__inherit__graph.png b/extras/html/class_sdio_card_e_x__inherit__graph.png new file mode 100644 index 00000000..8d0fd989 Binary files /dev/null and b/extras/html/class_sdio_card_e_x__inherit__graph.png differ diff --git a/extras/html/class_stdio_stream-members.html b/extras/html/class_stdio_stream-members.html index 8e77da3c..6fb16aab 100644 --- a/extras/html/class_stdio_stream-members.html +++ b/extras/html/class_stdio_stream-members.html @@ -3,7 +3,8 @@ - + + SdFat: Member List @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
contiguousRange(uint32_t *bgnBlock, uint32_t *endBlock)FatFileprivate createContiguous(FatFile *dirFile, const char *path, uint32_t size)FatFileprivate createContiguous(const char *path, uint32_t size)FatFileinlineprivate - curCluster() const FatFileinlineprivate - curPosition() const FatFileinlineprivate + curCluster() constFatFileinlineprivate + curPosition() constFatFileinlineprivate cwd()FatFileinlineprivatestatic dateTimeCallback(void(*dateTime)(uint16_t *date, uint16_t *time))FatFileinlineprivatestatic dateTimeCallbackCancel()FatFileinlineprivatestatic @@ -108,7 +88,7 @@ dmpFile(print_t *pr, uint32_t pos, size_t n)FatFileprivate exists(const char *path)FatFileinlineprivate FatFile()FatFileinlineprivate - FatFile(const char *path, uint8_t oflag)FatFileinlineprivate + FatFile(const char *path, oflag_t oflag)FatFileinlineprivate fclose()StdioStream feof()StdioStreaminline ferror()StdioStreaminline @@ -116,10 +96,10 @@ fgetc()StdioStreaminline fgets(char *str, size_t num, size_t *len=0)StdioStream FatFile::fgets(char *str, int16_t num, char *delim=0)FatFileprivate - fileAttr() const FatFileinlineprivate - fileSize() const FatFileinlineprivate + fileAttr() constFatFileinlineprivate + fileSize() constFatFileinlineprivate firstBlock()FatFileinlineprivate - firstCluster() const FatFileinlineprivate + firstCluster() constFatFileinlineprivate fopen(const char *path, const char *mode)StdioStream fputc(int c)StdioStreaminline fputs(const char *str)StdioStream @@ -133,26 +113,26 @@ getpos(FatPos_t *pos)FatFileprivate getSFN(char *name)FatFileprivate getWriteError()FatFileinlineprivate - isDir() const FatFileinlineprivate - isFile() const FatFileinlineprivate - isHidden() const FatFileinlineprivate - isLFN() const FatFileinlineprivate - isOpen() const FatFileinlineprivate - isReadOnly() const FatFileinlineprivate - isRoot() const FatFileinlineprivate - isRoot32() const FatFileinlineprivate - isRootFixed() const FatFileinlineprivate - isSubDir() const FatFileinlineprivate - isSystem() const FatFileinlineprivate + isDir() constFatFileinlineprivate + isFile() constFatFileinlineprivate + isHidden() constFatFileinlineprivate + isLFN() constFatFileinlineprivate + isOpen() constFatFileinlineprivate + isReadOnly() constFatFileinlineprivate + isRoot() constFatFileinlineprivate + isRoot32() constFatFileinlineprivate + isRootFixed() constFatFileinlineprivate + isSubDir() constFatFileinlineprivate + isSystem() constFatFileinlineprivate legal83Char(uint8_t c)FatFileinlineprivatestatic ls(uint8_t flags=0)FatFileinlineprivate ls(print_t *pr, uint8_t flags=0, uint8_t indent=0)FatFileprivate mkdir(FatFile *dir, const char *path, bool pFlag=true)FatFileprivate - open(FatFileSystem *fs, const char *path, uint8_t oflag)FatFileprivate - open(FatFile *dirFile, uint16_t index, uint8_t oflag)FatFileprivate - open(FatFile *dirFile, const char *path, uint8_t oflag)FatFileprivate - open(const char *path, uint8_t oflag=O_READ)FatFileinlineprivate - openNext(FatFile *dirFile, uint8_t oflag=O_READ)FatFileprivate + open(FatFileSystem *fs, const char *path, oflag_t oflag)FatFileprivate + open(FatFile *dirFile, uint16_t index, oflag_t oflag)FatFileprivate + open(FatFile *dirFile, const char *path, oflag_t oflag)FatFileprivate + open(const char *path, oflag_t oflag=O_RDONLY)FatFileinlineprivate + openNext(FatFile *dirFile, oflag_t oflag=O_RDONLY)FatFileprivate openRoot(FatVolume *vol)FatFileprivate peek()FatFileprivate print(char c)StdioStreaminline @@ -215,15 +195,15 @@ timestamp(uint8_t flags, uint16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second)FatFileprivate truncate(uint32_t length)FatFileprivate ungetc(int c)StdioStream - volume() const FatFileinlineprivate + volume() constFatFileinlineprivate FatFile::write(const char *str)FatFileinlineprivate FatFile::write(uint8_t b)FatFileinlineprivate
diff --git a/extras/html/class_stdio_stream.html b/extras/html/class_stdio_stream.html index ce244df6..9748b2ef 100644 --- a/extras/html/class_stdio_stream.html +++ b/extras/html/class_stdio_stream.html @@ -3,7 +3,8 @@ - + + SdFat: StdioStream Class Reference @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
  bool createContiguous (const char *path, uint32_t size)   -uint32_t curCluster () const -  -uint32_t curPosition () const -  +uint32_t curCluster () const +  +uint32_t curPosition () const +  bool dirEntry (dir_t *dir)   uint16_t dirIndex () @@ -238,14 +218,14 @@   int16_t fgets (char *str, int16_t num, char *delim=0)   -uint8_t fileAttr () const -  -uint32_t fileSize () const -  +uint8_t fileAttr () const +  +uint32_t fileSize () const +  uint32_t firstBlock ()   -uint32_t firstCluster () const -  +uint32_t firstCluster () const +  uint8_t getError ()   bool getName (char *name, size_t size) @@ -256,44 +236,44 @@   bool getWriteError ()   -bool isDir () const -  -bool isFile () const -  -bool isHidden () const -  -bool isLFN () const -  -bool isOpen () const -  -bool isReadOnly () const -  -bool isRoot () const -  -bool isRoot32 () const -  -bool isRootFixed () const -  -bool isSubDir () const -  -bool isSystem () const -  +bool isDir () const +  +bool isFile () const +  +bool isHidden () const +  +bool isLFN () const +  +bool isOpen () const +  +bool isReadOnly () const +  +bool isRoot () const +  +bool isRoot32 () const +  +bool isRootFixed () const +  +bool isSubDir () const +  +bool isSystem () const +  void ls (uint8_t flags=0)   void ls (print_t *pr, uint8_t flags=0, uint8_t indent=0)   bool mkdir (FatFile *dir, const char *path, bool pFlag=true)   -bool open (FatFileSystem *fs, const char *path, uint8_t oflag) -  -bool open (FatFile *dirFile, uint16_t index, uint8_t oflag) -  -bool open (FatFile *dirFile, const char *path, uint8_t oflag) -  -bool open (const char *path, uint8_t oflag=O_READ) -  -bool openNext (FatFile *dirFile, uint8_t oflag=O_READ) -  +bool open (FatFileSystem *fs, const char *path, oflag_t oflag) +  +bool open (FatFile *dirFile, uint16_t index, oflag_t oflag) +  +bool open (FatFile *dirFile, const char *path, oflag_t oflag) +  +bool open (const char *path, oflag_t oflag=O_RDONLY) +  +bool openNext (FatFile *dirFile, oflag_t oflag=O_RDONLY) +  bool openRoot (FatVolume *vol)   int peek () @@ -348,8 +328,8 @@   bool truncate (uint32_t length)   -FatVolumevolume () const -  +FatVolumevolume () const +  int write (const char *str)   int write (uint8_t b) @@ -384,7 +364,9 @@

StdioStream implements a minimal stdio stream.

StdioStream does not support subdirectories or long file names.

Constructor & Destructor Documentation

- + +

◆ StdioStream()

+
@@ -409,7 +391,9 @@

Member Function Documentation

- + +

◆ clearerr()

+
@@ -433,7 +417,9 @@

Member Function Documentation

- + +

◆ fclose()

+
@@ -447,11 +433,18 @@

Member Function Documentation

Close a stream.

A successful call to the fclose function causes the stream to be flushed and the associated file to be closed. Any unwritten buffered data is written to the file; any unread buffered data is discarded. Whether or not the call succeeds, the stream is disassociated from the file.

-
Returns
zero if the stream was successfully closed, or EOF if any any errors are detected.
+
Returns
zero if the stream was successfully closed, or EOF if any any errors are detected.
+

Copyright (c) 2011-2018 Bill Greiman This file is part of the SdFat library for SD memory cards.

+

MIT License

+

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

- + +

◆ feof()

+
@@ -475,7 +468,9 @@

Member Function Documentation

- + +

◆ ferror()

+
@@ -499,7 +494,9 @@

Member Function Documentation

- + +

◆ fflush()

+
@@ -517,7 +514,9 @@

Member Function Documentation

- + +

◆ fgetc()

+
@@ -542,7 +541,9 @@

Member Function Documentation

- + +

◆ fgets()

+
@@ -585,7 +586,9 @@

Member Function Documentation

- + +

◆ fopen()

+
@@ -642,7 +645,9 @@

Member Function Documentation

- + +

◆ fputc()

+
@@ -674,7 +679,9 @@

Member Function Documentation

- + +

◆ fputs()

+
@@ -698,7 +705,9 @@

Member Function Documentation

- + +

◆ fread()

+
@@ -740,7 +749,9 @@

Member Function Documentation

- + +

◆ fseek()

+
@@ -778,7 +789,9 @@

Member Function Documentation

- + +

◆ ftell()

+
@@ -795,7 +808,9 @@

Member Function Documentation

- + +

◆ fwrite()

+
@@ -837,7 +852,9 @@

Member Function Documentation

- + +

◆ getc()

+
@@ -863,7 +880,9 @@

Member Function Documentation

- + +

◆ print() [1/6]

+
@@ -894,7 +913,9 @@

Member Function Documentation

- + +

◆ print() [2/6]

+
@@ -926,7 +947,9 @@

Member Function Documentation

- + +

◆ print() [3/6]

+
@@ -950,7 +973,9 @@

Member Function Documentation

- + +

◆ print() [4/6]

+
@@ -993,7 +1018,9 @@

Member Function Documentation

- + +

◆ print() [5/6]

+
@@ -1036,7 +1063,9 @@

Member Function Documentation

- + +

◆ print() [6/6]

+
@@ -1070,7 +1099,9 @@

Member Function Documentation

- + +

◆ printDec() [1/9]

+
@@ -1101,7 +1132,9 @@

Member Function Documentation

- + +

◆ printDec() [2/9]

+
@@ -1124,7 +1157,9 @@

Member Function Documentation

- + +

◆ printDec() [3/9]

+
@@ -1155,7 +1190,9 @@

Member Function Documentation

- + +

◆ printDec() [4/9]

+
@@ -1178,7 +1215,9 @@

Member Function Documentation

- + +

◆ printDec() [5/9]

+
@@ -1201,7 +1240,9 @@

Member Function Documentation

- + +

◆ printDec() [6/9]

+
@@ -1224,7 +1265,9 @@

Member Function Documentation

- + +

◆ printDec() [7/9]

+
@@ -1247,7 +1290,9 @@

Member Function Documentation

- + +

◆ printDec() [8/9]

+
@@ -1289,7 +1334,9 @@

Member Function Documentation

- + +

◆ printDec() [9/9]

+
@@ -1323,7 +1370,9 @@

Member Function Documentation

- + +

◆ printField() [1/3]

+
@@ -1372,7 +1421,9 @@

Member Function Documentation

- + +

◆ printField() [2/3]

+
@@ -1421,7 +1472,9 @@

Member Function Documentation

- + +

◆ printField() [3/3]

+
@@ -1465,7 +1518,9 @@

Member Function Documentation

- + +

◆ printHex()

+
@@ -1488,7 +1543,9 @@

Member Function Documentation

- + +

◆ printHexln()

+
@@ -1519,7 +1576,9 @@

Member Function Documentation

- + +

◆ println() [1/4]

+
@@ -1544,7 +1603,9 @@

Member Function Documentation

- + +

◆ println() [2/4]

+
@@ -1587,7 +1648,9 @@

Member Function Documentation

- + +

◆ println() [3/4]

+
@@ -1630,7 +1693,9 @@

Member Function Documentation

- + +

◆ println() [4/4]

+
@@ -1664,7 +1729,9 @@

Member Function Documentation

- + +

◆ putc()

+
@@ -1697,7 +1764,9 @@

Member Function Documentation

- + +

◆ putCRLF()

+
@@ -1722,7 +1791,9 @@

Member Function Documentation

- + +

◆ rewind()

+
@@ -1740,7 +1811,9 @@

Member Function Documentation

- + +

◆ ungetc()

+
@@ -1773,9 +1846,9 @@

Member Function Documentation

diff --git a/extras/html/class_sys_call-members.html b/extras/html/class_sys_call-members.html index d2dd8792..037603f7 100644 --- a/extras/html/class_sys_call-members.html +++ b/extras/html/class_sys_call-members.html @@ -3,7 +3,8 @@ - + +SdFat: Member List @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
diff --git a/extras/html/class_sys_call.html b/extras/html/class_sys_call.html index d67ddb78..bf5c6145 100644 --- a/extras/html/class_sys_call.html +++ b/extras/html/class_sys_call.html @@ -3,7 +3,8 @@ - + + SdFat: SysCall Class Reference @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +

Detailed Description

SysCall - Class to wrap system calls.

Member Function Documentation

- + +

◆ halt()

+
@@ -128,7 +110,9 @@ - + +

◆ yield()

+
@@ -158,9 +142,9 @@ diff --git a/extras/html/classes.html b/extras/html/classes.html index eb1727fa..27078a4d 100644 --- a/extras/html/classes.html +++ b/extras/html/classes.html @@ -3,7 +3,8 @@ - + +SdFat: Class Index @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
Class Index
-
A | B | C | D | F | I | L | M | O | P | S
- - - - - - - - - +
a | b | c | d | f | i | l | m | o | p | s
+
  A  
-
File   SdFatSoftSpiEX   
  f  
-
  l  
-
  M  
-
SdFile   
ArduinoInStream   SdFileSystem   fat32_boot   longDirectoryEntry   
ArduinoOutStream   MinimumSerial   SdioCard   fat32_fsinfo   
  m  
-
  B  
-
  P  
-
SdSpiCard   fat_boot   
SdSpiCardEX   fname_t   masterBootRecord   
BaseBlockDriver   PrintFile   StdioStream   fstream   
  o  
-
  F  
-
  S  
-
SysCall   
  i  
-
+ + + + - - - - - - - - + + + + + + + + + + + + +
  a  
+
fat32_fsinfo   ios   ostream   SdFile   
fat_boot   ios_base   
  p  
+
SdFileSystem   
ArduinoInStream   FatCache   iostream   SdioCard   
ArduinoOutStream   FatFile   istream   partitionTable   SdioCardEX   
  b  
-
obufstream   
FatCache   Sd2Card   ibufstream   ofstream   
FatFile   SdBaseFile   biosParmBlock   ifstream   ostream   
FatFileSystem   SdFat   
  c  
-
ios   
  p  
-
FatPos_t   SdFatEX   ios_base   
FatStreamBase   SdFatSdio   cache_t   iostream   partitionTable   
FatVolume   SdFatSoftSpi   
  d  
-
istream   
  s  
-
directoryEntry   setfill   
FatFileSystem   
  l  
+
PrintFile   SdSpiCard   
FatPos_t   
  s  
+
SdSpiCardEX   
BaseBlockDriver   FatStreamBase   longDirectoryEntry   setfill   
biosParmBlock   FatVolume   
  m  
+
Sd2Card   setprecision   
  c  
+
File   SdBaseFile   setw   
fname_t   masterBootRecord   SdFat   StdioStream   
cache_t   fstream   MinimumSerial   SdFatEX   SysCall   
  d  
+
  i  
+
  o  
+
SdFatSdio   
SdFatSdioEX   
directoryEntry   ibufstream   obufstream   SdFatSoftSpi   
  f  
+
ifstream   ofstream   SdFatSoftSpiEX   
fat32_boot   
-
A | B | C | D | F | I | L | M | O | P | S
+
a | b | c | d | f | i | l | m | o | p | s
diff --git a/extras/html/classfstream-members.html b/extras/html/classfstream-members.html index 1b2d8051..d05ae5d0 100644 --- a/extras/html/classfstream-members.html +++ b/extras/html/classfstream-members.html @@ -3,7 +3,8 @@ - + + SdFat: Member List @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
adjustfieldios_basestatic appios_basestatic ateios_basestatic - bad() const iosinline + bad() constiosinline badbitios_basestatic basefieldios_basestatic beg enum valueios_base @@ -102,24 +82,24 @@ cur enum valueios_base decios_basestatic end enum valueios_base - eof() const iosinline + eof() constiosinline eofbitios_basestatic - fail() const iosinline + fail() constiosinline failbitios_basestatic fill()ios_baseinline fill(char c)ios_baseinline - flags() const ios_baseinline + flags() constios_baseinline flags(fmtflags fl)ios_baseinline flush()ostreaminline fmtflags typedefios_base fstream() (defined in fstream)fstreaminline fstream(const char *path, openmode mode=in|out)fstreaminlineexplicit - gcount() const istreaminline + gcount() constistreaminline get()istream get(char &ch)istream - get(char *str, streamsize n, char delim= '\n')istream - getline(char *str, streamsize n, char delim= '\n')istream - good() const iosinline + get(char *str, streamsize n, char delim='\n')istream + getline(char *str, streamsize n, char delim='\n')istream + good() constiosinline goodbitios_basestatic hexios_basestatic ignore(streamsize n=1, int delim=-1)istream @@ -134,12 +114,12 @@ octios_basestatic off_type typedefios_base open(const char *path, openmode mode=in|out)fstreaminline - FatStreamBase::open(FatFileSystem *fs, const char *path, uint8_t oflag)FatFileprivate - FatStreamBase::open(FatFile *dirFile, uint16_t index, uint8_t oflag)FatFileprivate - FatStreamBase::open(FatFile *dirFile, const char *path, uint8_t oflag)FatFileprivate + FatStreamBase::open(FatFileSystem *fs, const char *path, oflag_t oflag)FatFileprivate + FatStreamBase::open(FatFile *dirFile, uint16_t index, oflag_t oflag)FatFileprivate + FatStreamBase::open(FatFile *dirFile, const char *path, oflag_t oflag)FatFileprivate openmode typedefios_base - operator const void *() const iosinline - operator!() const iosinline + operator const void *() constiosinline + operator!() constiosinline operator<<(ostream &(*pf)(ostream &str))ostreaminline operator<<(ios_base &(*pf)(ios_base &str))ostreaminline operator<<(bool arg)ostreaminline @@ -183,10 +163,10 @@ iostream::peek()istream FatStreamBase::peek()FatFileprivate pos_type typedefios_base - precision() const ios_baseinline + precision() constios_baseinline precision(unsigned int n)ios_baseinline put(char ch)ostreaminline - rdstate() const iosinline + rdstate() constiosinline rightios_basestatic seekdir enum nameios_base seekg(pos_type pos)istreaminline @@ -212,9 +192,9 @@
diff --git a/extras/html/classfstream.html b/extras/html/classfstream.html index 324b92e4..efca4e06 100644 --- a/extras/html/classfstream.html +++ b/extras/html/classfstream.html @@ -3,7 +3,8 @@ - + + SdFat: fstream Class Reference @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
enum  seekdir { beg, cur, end - }  - + } +  typedef uint32_t streamsize   - - + + - - - - + + + + - - + + - - + + - - - - - - + + + + + + - - - - + + + + @@ -269,14 +249,14 @@ - - + + - - + + @@ -357,19 +337,21 @@

Public Member Functions

bool bad () const
 
bool bad () const
 
void clear (iostate state=goodbit)
 
void close ()
 
bool eof () const
 
bool fail () const
 
bool eof () const
 
bool fail () const
 
char fill ()
 
char fill (char c)
 
fmtflags flags () const
 
fmtflags flags () const
 
fmtflags flags (fmtflags fl)
 
ostreamflush ()
 
 fstream (const char *path, openmode mode=in|out)
 
streamsize gcount () const
 
streamsize gcount () const
 
int get ()
 
istreamget (char &ch)
 
istreamget (char *str, streamsize n, char delim= '\n')
 
istreamgetline (char *str, streamsize n, char delim= '\n')
 
bool good () const
 
istreamget (char *str, streamsize n, char delim='\n')
 
istreamgetline (char *str, streamsize n, char delim='\n')
 
bool good () const
 
istreamignore (streamsize n=1, int delim=-1)
 
bool is_open ()
 
void open (const char *path, openmode mode=in|out)
 
 operator const void * () const
 
bool operator! () const
 
 operator const void * () const
 
bool operator! () const
 
ostreamoperator<< (ostream &(*pf)(ostream &str))
 
ostreamoperator<< (ios_base &(*pf)(ios_base &str))
 
int peek ()
 
int precision () const
 
int precision () const
 
int precision (unsigned int n)
 
ostreamput (char ch)
 
iostate rdstate () const
 
iostate rdstate () const
 
istreamseekg (pos_type pos)
 
istreamseekg (off_type off, seekdir way)
- - - - - - + + + + + +

Private Member Functions

bool open (FatFileSystem *fs, const char *path, uint8_t oflag)
 
bool open (FatFile *dirFile, uint16_t index, uint8_t oflag)
 
bool open (FatFile *dirFile, const char *path, uint8_t oflag)
 
bool open (FatFileSystem *fs, const char *path, oflag_t oflag)
 
bool open (FatFile *dirFile, uint16_t index, oflag_t oflag)
 
bool open (FatFile *dirFile, const char *path, oflag_t oflag)
 
int peek ()
 

Detailed Description

file input/output stream.

Member Typedef Documentation

- + +

◆ fmtflags

+
@@ -390,7 +372,9 @@ - + +

◆ iostate

+
@@ -411,7 +395,9 @@ - + +

◆ off_type

+
@@ -432,7 +418,9 @@ - + +

◆ openmode

+
@@ -453,7 +441,9 @@ - + +

◆ pos_type

+
@@ -474,7 +464,9 @@ - + +

◆ streamsize

+
@@ -496,7 +488,9 @@

Member Enumeration Documentation

- + +

◆ seekdir

+
@@ -515,21 +509,20 @@

Member Enumeration Documentation

enumerated type for the direction of relative seeks

- - -
Enumerator
beg  -

seek relative to the beginning of the stream

+
Enumerator
beg 

seek relative to the beginning of the stream

cur  -

seek relative to the current stream position

+
cur 

seek relative to the current stream position

end  -

seek relative to the end of the stream

+
end 

seek relative to the end of the stream

Constructor & Destructor Documentation

- + +

◆ fstream()

+
@@ -572,7 +565,9 @@

Constructor & Destructor Documentation

Member Function Documentation

- + +

◆ bad()

+
@@ -596,7 +591,9 @@

Member Function Documentation

- + +

◆ clear()

+
@@ -626,7 +623,9 @@

Member Function Documentation

- + +

◆ close()

+
@@ -650,7 +649,9 @@

Member Function Documentation

- + +

◆ eof()

+
@@ -672,11 +673,13 @@

Member Function Documentation

Returns
true if end of file has been reached else false.

Warning: An empty file returns false before the first read.

-

Moral: eof() is only useful in combination with fail(), to find out whether EOF was the cause for failure

+

Moral: eof() is only useful in combination with fail(), to find out whether EOF was the cause for failure

- + +

◆ fail()

+
@@ -700,7 +703,9 @@

Member Function Documentation

- + +

◆ fill() [1/2]

+
@@ -724,7 +729,9 @@

Member Function Documentation

- + +

◆ fill() [2/2]

+
@@ -755,7 +762,9 @@

Member Function Documentation

- + +

◆ flags() [1/2]

+
@@ -779,7 +788,9 @@

Member Function Documentation

- + +

◆ flags() [2/2]

+
@@ -810,7 +821,9 @@

Member Function Documentation

- + +

◆ flush()

+
@@ -834,7 +847,9 @@

Member Function Documentation

- + +

◆ gcount()

+
@@ -858,7 +873,9 @@

Member Function Documentation

- + +

◆ get() [1/3]

+
@@ -879,11 +896,18 @@

Member Function Documentation

Extract a character if one is available.

-
Returns
The character or -1 if a failure occurs. A failure is indicated by the stream state.
+
Returns
The character or -1 if a failure occurs. A failure is indicated by the stream state.
+

Copyright (c) 2011-2018 Bill Greiman This file is part of the SdFat library for SD memory cards.

+

MIT License

+

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

- + +

◆ get() [2/3]

+
@@ -915,7 +939,9 @@

Member Function Documentation

- + +

◆ get() [3/3]

+
@@ -966,7 +992,9 @@

Member Function Documentation

- + +

◆ getline()

+
@@ -1018,7 +1046,9 @@

Member Function Documentation

- + +

◆ good()

+
@@ -1042,7 +1072,9 @@

Member Function Documentation

- + +

◆ ignore()

+
@@ -1087,7 +1119,9 @@

Member Function Documentation

- + +

◆ is_open()

+
@@ -1111,7 +1145,9 @@

Member Function Documentation

- + +

◆ open()

+
@@ -1159,7 +1195,9 @@

Member Function Documentation

- + +

◆ operator const void *()

+
@@ -1179,11 +1217,13 @@

Member Function Documentation

-
Returns
null pointer if fail() is true.
+
Returns
null pointer if fail() is true.
- + +

◆ operator!()

+
@@ -1203,11 +1243,13 @@

Member Function Documentation

-
Returns
true if fail() else false.
+
Returns
true if fail() else false.
- + +

◆ operator<<() [1/19]

+
@@ -1238,7 +1280,9 @@

Member Function Documentation

- + +

◆ operator<<() [2/19]

+
@@ -1269,7 +1313,9 @@

Member Function Documentation

- + +

◆ operator<<() [3/19]

+
@@ -1300,7 +1346,9 @@

Member Function Documentation

- + +

◆ operator<<() [4/19]

+
@@ -1331,7 +1379,9 @@

Member Function Documentation

- + +

◆ operator<<() [5/19]

+
@@ -1362,7 +1412,9 @@

Member Function Documentation

- + +

◆ operator<<() [6/19]

+
@@ -1393,7 +1445,9 @@

Member Function Documentation

- + +

◆ operator<<() [7/19]

+
@@ -1424,7 +1478,9 @@

Member Function Documentation

- + +

◆ operator<<() [8/19]

+
@@ -1455,7 +1511,9 @@

Member Function Documentation

- + +

◆ operator<<() [9/19]

+
@@ -1486,7 +1544,9 @@

Member Function Documentation

- + +

◆ operator<<() [10/19]

+
@@ -1517,7 +1577,9 @@

Member Function Documentation

- + +

◆ operator<<() [11/19]

+
@@ -1548,7 +1610,9 @@

Member Function Documentation

- + +

◆ operator<<() [12/19]

+
@@ -1579,7 +1643,9 @@

Member Function Documentation

- + +

◆ operator<<() [13/19]

+
@@ -1610,7 +1676,9 @@

Member Function Documentation

- + +

◆ operator<<() [14/19]

+
@@ -1641,7 +1709,9 @@

Member Function Documentation

- + +

◆ operator<<() [15/19]

+
@@ -1672,7 +1742,9 @@

Member Function Documentation

- + +

◆ operator<<() [16/19]

+
@@ -1703,7 +1775,9 @@

Member Function Documentation

- + +

◆ operator<<() [17/19]

+
@@ -1734,7 +1808,9 @@

Member Function Documentation

- + +

◆ operator<<() [18/19]

+
@@ -1765,7 +1841,9 @@

Member Function Documentation

- + +

◆ operator<<() [19/19]

+
@@ -1796,7 +1874,9 @@

Member Function Documentation

- + +

◆ operator>>() [1/19]

+
@@ -1827,7 +1907,9 @@

Member Function Documentation

- + +

◆ operator>>() [2/19]

+
@@ -1858,7 +1940,9 @@

Member Function Documentation

- + +

◆ operator>>() [3/19]

+
@@ -1889,7 +1973,9 @@

Member Function Documentation

- + +

◆ operator>>() [4/19]

+
@@ -1920,7 +2006,9 @@

Member Function Documentation

- + +

◆ operator>>() [5/19]

+
@@ -1951,7 +2039,9 @@

Member Function Documentation

- + +

◆ operator>>() [6/19]

+
@@ -1982,7 +2072,9 @@

Member Function Documentation

- + +

◆ operator>>() [7/19]

+
@@ -2013,7 +2105,9 @@

Member Function Documentation

- + +

◆ operator>>() [8/19]

+
@@ -2044,7 +2138,9 @@

Member Function Documentation

- + +

◆ operator>>() [9/19]

+
@@ -2075,7 +2171,9 @@

Member Function Documentation

- + +

◆ operator>>() [10/19]

+
@@ -2106,7 +2204,9 @@

Member Function Documentation

- + +

◆ operator>>() [11/19]

+
@@ -2137,7 +2237,9 @@

Member Function Documentation

- + +

◆ operator>>() [12/19]

+
@@ -2168,7 +2270,9 @@

Member Function Documentation

- + +

◆ operator>>() [13/19]

+
@@ -2199,7 +2303,9 @@

Member Function Documentation

- + +

◆ operator>>() [14/19]

+
@@ -2230,7 +2336,9 @@

Member Function Documentation

- + +

◆ operator>>() [15/19]

+
@@ -2261,7 +2369,9 @@

Member Function Documentation

- + +

◆ operator>>() [16/19]

+
@@ -2292,7 +2402,9 @@

Member Function Documentation

- + +

◆ operator>>() [17/19]

+
@@ -2323,7 +2435,9 @@

Member Function Documentation

- + +

◆ operator>>() [18/19]

+
@@ -2354,7 +2468,9 @@

Member Function Documentation

- + +

◆ operator>>() [19/19]

+
@@ -2385,7 +2501,9 @@

Member Function Documentation

- + +

◆ peek()

+
@@ -2410,7 +2528,9 @@

Member Function Documentation

- + +

◆ precision() [1/2]

+
@@ -2434,7 +2554,9 @@

Member Function Documentation

- + +

◆ precision() [2/2]

+
@@ -2465,7 +2587,9 @@

Member Function Documentation

- + +

◆ put()

+
@@ -2498,7 +2622,9 @@

Member Function Documentation

- + +

◆ rdstate()

+
@@ -2522,7 +2648,9 @@

Member Function Documentation

- + +

◆ seekg() [1/2]

+
@@ -2553,7 +2681,9 @@

Member Function Documentation

- + +

◆ seekg() [2/2]

+
@@ -2596,7 +2726,9 @@

Member Function Documentation

- + +

◆ seekp() [1/2]

+
@@ -2627,7 +2759,9 @@

Member Function Documentation

- + +

◆ seekp() [2/2]

+
@@ -2670,7 +2804,9 @@

Member Function Documentation

- + +

◆ setf() [1/2]

+
@@ -2701,7 +2837,9 @@

Member Function Documentation

- + +

◆ setf() [2/2]

+
@@ -2743,7 +2881,9 @@

Member Function Documentation

- + +

◆ setstate()

+
@@ -2774,7 +2914,9 @@

Member Function Documentation

- + +

◆ skipWhite()

+
@@ -2798,7 +2940,9 @@

Member Function Documentation

- + +

◆ tellg()

+
@@ -2822,7 +2966,9 @@

Member Function Documentation

- + +

◆ tellp()

+
@@ -2846,7 +2992,9 @@

Member Function Documentation

- + +

◆ unsetf()

+
@@ -2877,7 +3025,9 @@

Member Function Documentation

- + +

◆ width() [1/2]

+
@@ -2901,7 +3051,9 @@

Member Function Documentation

- + +

◆ width() [2/2]

+
@@ -2933,7 +3085,9 @@

Member Function Documentation

Member Data Documentation

- + +

◆ adjustfield

+
@@ -2954,7 +3108,9 @@

Member Data Documentation

- + +

◆ app

+
@@ -2975,7 +3131,9 @@

Member Data Documentation

- + +

◆ ate

+
@@ -2996,7 +3154,9 @@

Member Data Documentation

- + +

◆ badbit

+
@@ -3017,7 +3177,9 @@

Member Data Documentation

- + +

◆ basefield

+
@@ -3038,7 +3200,9 @@

Member Data Documentation

- + +

◆ binary

+
@@ -3059,7 +3223,9 @@

Member Data Documentation

- + +

◆ boolalpha

+
@@ -3080,7 +3246,9 @@

Member Data Documentation

- + +

◆ dec

+
@@ -3101,7 +3269,9 @@

Member Data Documentation

- + +

◆ eofbit

+
@@ -3122,7 +3292,9 @@

Member Data Documentation

- + +

◆ failbit

+
@@ -3143,7 +3315,9 @@

Member Data Documentation

- + +

◆ goodbit

+
@@ -3164,7 +3338,9 @@

Member Data Documentation

- + +

◆ hex

+
@@ -3185,7 +3361,9 @@

Member Data Documentation

- + +

◆ in

+
@@ -3206,7 +3384,9 @@

Member Data Documentation

- + +

◆ internal

+
@@ -3227,7 +3407,9 @@

Member Data Documentation

- + +

◆ left

+
@@ -3248,7 +3430,9 @@

Member Data Documentation

- + +

◆ oct

+
@@ -3269,7 +3453,9 @@

Member Data Documentation

- + +

◆ out

+
@@ -3290,7 +3476,9 @@

Member Data Documentation

- + +

◆ right

+
@@ -3311,7 +3499,9 @@

Member Data Documentation

- + +

◆ showbase

+
@@ -3332,7 +3522,9 @@

Member Data Documentation

- + +

◆ showpoint

+
@@ -3353,7 +3545,9 @@

Member Data Documentation

- + +

◆ showpos

+
@@ -3374,7 +3568,9 @@

Member Data Documentation

- + +

◆ skipws

+
@@ -3395,7 +3591,9 @@

Member Data Documentation

- + +

◆ trunc

+
@@ -3416,7 +3614,9 @@

Member Data Documentation

- + +

◆ uppercase

+
@@ -3443,9 +3643,9 @@

Member Data Documentation

diff --git a/extras/html/classibufstream-members.html b/extras/html/classibufstream-members.html index 0ef4df55..de827ab9 100644 --- a/extras/html/classibufstream-members.html +++ b/extras/html/classibufstream-members.html @@ -3,7 +3,8 @@ - + +SdFat: Member List @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
adjustfieldios_basestatic appios_basestatic ateios_basestatic - bad() const iosinline + bad() constiosinline badbitios_basestatic basefieldios_basestatic beg enum valueios_base @@ -101,21 +81,21 @@ cur enum valueios_base decios_basestatic end enum valueios_base - eof() const iosinline + eof() constiosinline eofbitios_basestatic - fail() const iosinline + fail() constiosinline failbitios_basestatic fill()ios_baseinline fill(char c)ios_baseinline - flags() const ios_baseinline + flags() constios_baseinline flags(fmtflags fl)ios_baseinline fmtflags typedefios_base - gcount() const istreaminline + gcount() constistreaminline get()istream get(char &ch)istream - get(char *str, streamsize n, char delim= '\n')istream - getline(char *str, streamsize n, char delim= '\n')istream - good() const iosinline + get(char *str, streamsize n, char delim='\n')istream + getline(char *str, streamsize n, char delim='\n')istream + good() constiosinline goodbitios_basestatic hexios_basestatic ibufstream()ibufstreaminline @@ -132,8 +112,8 @@ octios_basestatic off_type typedefios_base openmode typedefios_base - operator const void *() const iosinline - operator!() const iosinline + operator const void *() constiosinline + operator!() constiosinline operator>>(istream &(*pf)(istream &str))istreaminline operator>>(ios_base &(*pf)(ios_base &str))istreaminline operator>>(ios &(*pf)(ios &str))istreaminline @@ -156,9 +136,9 @@ outios_basestatic peek()istream pos_type typedefios_base - precision() const ios_baseinline + precision() constios_baseinline precision(unsigned int n)ios_baseinline - rdstate() const iosinline + rdstate() constiosinline rightios_basestatic seekdir enum nameios_base seekg(pos_type pos)istreaminline @@ -181,9 +161,9 @@
diff --git a/extras/html/classibufstream.html b/extras/html/classibufstream.html index 2e484b41..79c57c0d 100644 --- a/extras/html/classibufstream.html +++ b/extras/html/classibufstream.html @@ -3,7 +3,8 @@ - + + SdFat: ibufstream Class Reference @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
enum  seekdir { beg, cur, end - }  - + } +  typedef uint32_t streamsize   - - + + - - - - + + + + - - + + - - + + - - - - - - + + + + + + @@ -175,10 +155,10 @@ - - - - + + + + @@ -219,12 +199,12 @@ - - + + - - + + @@ -300,7 +280,9 @@

Detailed Description

parse a char string

Member Typedef Documentation

- + +

◆ fmtflags

+

Public Member Functions

bool bad () const
 
bool bad () const
 
void clear (iostate state=goodbit)
 
bool eof () const
 
bool fail () const
 
bool eof () const
 
bool fail () const
 
char fill ()
 
char fill (char c)
 
fmtflags flags () const
 
fmtflags flags () const
 
fmtflags flags (fmtflags fl)
 
streamsize gcount () const
 
streamsize gcount () const
 
int get ()
 
istreamget (char &ch)
 
istreamget (char *str, streamsize n, char delim= '\n')
 
istreamgetline (char *str, streamsize n, char delim= '\n')
 
bool good () const
 
istreamget (char *str, streamsize n, char delim='\n')
 
istreamgetline (char *str, streamsize n, char delim='\n')
 
bool good () const
 
 ibufstream ()
 
 ibufstream (const char *str)
 
void init (const char *str)
 
 operator const void * () const
 
bool operator! () const
 
 operator const void * () const
 
bool operator! () const
 
istreamoperator>> (istream &(*pf)(istream &str))
 
istreamoperator>> (ios_base &(*pf)(ios_base &str))
 
int peek ()
 
int precision () const
 
int precision () const
 
int precision (unsigned int n)
 
iostate rdstate () const
 
iostate rdstate () const
 
istreamseekg (pos_type pos)
 
istreamseekg (off_type off, seekdir way)
@@ -321,7 +303,9 @@ - + +

◆ iostate

+
@@ -342,7 +326,9 @@ - + +

◆ off_type

+
@@ -363,7 +349,9 @@ - + +

◆ openmode

+
@@ -384,7 +372,9 @@ - + +

◆ pos_type

+
@@ -405,7 +395,9 @@ - + +

◆ streamsize

+
@@ -427,7 +419,9 @@

Member Enumeration Documentation

- + +

◆ seekdir

+
@@ -446,21 +440,20 @@

Member Enumeration Documentation

enumerated type for the direction of relative seeks

- - -
Enumerator
beg  -

seek relative to the beginning of the stream

+
Enumerator
beg 

seek relative to the beginning of the stream

cur  -

seek relative to the current stream position

+
cur 

seek relative to the current stream position

end  -

seek relative to the end of the stream

+
end 

seek relative to the end of the stream

Constructor & Destructor Documentation

- + +

◆ ibufstream() [1/2]

+
@@ -484,7 +477,9 @@

Constructor & Destructor Documentation

- + +

◆ ibufstream() [2/2]

+
@@ -515,7 +510,9 @@

Constructor & Destructor Documentation

Member Function Documentation

- + +

◆ bad()

+
@@ -539,7 +536,9 @@

Member Function Documentation

- + +

◆ clear()

+
@@ -570,7 +569,9 @@

Member Function Documentation

- + +

◆ eof()

+
@@ -592,11 +593,13 @@

Member Function Documentation

Returns
true if end of file has been reached else false.

Warning: An empty file returns false before the first read.

-

Moral: eof() is only useful in combination with fail(), to find out whether EOF was the cause for failure

+

Moral: eof() is only useful in combination with fail(), to find out whether EOF was the cause for failure

- + +

◆ fail()

+
@@ -620,7 +623,9 @@

Member Function Documentation

- + +

◆ fill() [1/2]

+
@@ -644,7 +649,9 @@

Member Function Documentation

- + +

◆ fill() [2/2]

+
@@ -675,7 +682,9 @@

Member Function Documentation

- + +

◆ flags() [1/2]

+
@@ -699,7 +708,9 @@

Member Function Documentation

- + +

◆ flags() [2/2]

+
@@ -730,7 +741,9 @@

Member Function Documentation

- + +

◆ gcount()

+
@@ -754,7 +767,9 @@

Member Function Documentation

- + +

◆ get() [1/3]

+
@@ -775,11 +790,18 @@

Member Function Documentation

Extract a character if one is available.

-
Returns
The character or -1 if a failure occurs. A failure is indicated by the stream state.
+
Returns
The character or -1 if a failure occurs. A failure is indicated by the stream state.
+

Copyright (c) 2011-2018 Bill Greiman This file is part of the SdFat library for SD memory cards.

+

MIT License

+

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

- + +

◆ get() [2/3]

+
@@ -811,7 +833,9 @@

Member Function Documentation

- + +

◆ get() [3/3]

+
@@ -862,7 +886,9 @@

Member Function Documentation

- + +

◆ getline()

+
@@ -914,7 +940,9 @@

Member Function Documentation

- + +

◆ good()

+
@@ -938,7 +966,9 @@

Member Function Documentation

- + +

◆ ignore()

+
@@ -983,7 +1013,9 @@

Member Function Documentation

- + +

◆ init()

+
@@ -1013,7 +1045,9 @@

Member Function Documentation

- + +

◆ operator const void *()

+
@@ -1033,11 +1067,13 @@

Member Function Documentation

-
Returns
null pointer if fail() is true.
+
Returns
null pointer if fail() is true.
- + +

◆ operator!()

+
@@ -1057,11 +1093,13 @@

Member Function Documentation

-
Returns
true if fail() else false.
+
Returns
true if fail() else false.
- + +

◆ operator>>() [1/19]

+
@@ -1092,7 +1130,9 @@

Member Function Documentation

- + +

◆ operator>>() [2/19]

+
@@ -1123,7 +1163,9 @@

Member Function Documentation

- + +

◆ operator>>() [3/19]

+
@@ -1154,7 +1196,9 @@

Member Function Documentation

- + +

◆ operator>>() [4/19]

+
@@ -1185,7 +1229,9 @@

Member Function Documentation

- + +

◆ operator>>() [5/19]

+
@@ -1216,7 +1262,9 @@

Member Function Documentation

- + +

◆ operator>>() [6/19]

+
@@ -1247,7 +1295,9 @@

Member Function Documentation

- + +

◆ operator>>() [7/19]

+
@@ -1278,7 +1328,9 @@

Member Function Documentation

- + +

◆ operator>>() [8/19]

+
@@ -1309,7 +1361,9 @@

Member Function Documentation

- + +

◆ operator>>() [9/19]

+
@@ -1340,7 +1394,9 @@

Member Function Documentation

- + +

◆ operator>>() [10/19]

+
@@ -1371,7 +1427,9 @@

Member Function Documentation

- + +

◆ operator>>() [11/19]

+
@@ -1402,7 +1460,9 @@

Member Function Documentation

- + +

◆ operator>>() [12/19]

+
@@ -1433,7 +1493,9 @@

Member Function Documentation

- + +

◆ operator>>() [13/19]

+
@@ -1464,7 +1526,9 @@

Member Function Documentation

- + +

◆ operator>>() [14/19]

+
@@ -1495,7 +1559,9 @@

Member Function Documentation

- + +

◆ operator>>() [15/19]

+
@@ -1526,7 +1592,9 @@

Member Function Documentation

- + +

◆ operator>>() [16/19]

+
@@ -1557,7 +1625,9 @@

Member Function Documentation

- + +

◆ operator>>() [17/19]

+
@@ -1588,7 +1658,9 @@

Member Function Documentation

- + +

◆ operator>>() [18/19]

+
@@ -1619,7 +1691,9 @@

Member Function Documentation

- + +

◆ operator>>() [19/19]

+
@@ -1650,7 +1724,9 @@

Member Function Documentation

- + +

◆ peek()

+
@@ -1675,7 +1751,9 @@

Member Function Documentation

- + +

◆ precision() [1/2]

+
@@ -1699,7 +1777,9 @@

Member Function Documentation

- + +

◆ precision() [2/2]

+
@@ -1730,7 +1810,9 @@

Member Function Documentation

- + +

◆ rdstate()

+
@@ -1754,7 +1836,9 @@

Member Function Documentation

- + +

◆ seekg() [1/2]

+
@@ -1785,7 +1869,9 @@

Member Function Documentation

- + +

◆ seekg() [2/2]

+
@@ -1828,7 +1914,9 @@

Member Function Documentation

- + +

◆ setf() [1/2]

+
@@ -1859,7 +1947,9 @@

Member Function Documentation

- + +

◆ setf() [2/2]

+
@@ -1901,7 +1991,9 @@

Member Function Documentation

- + +

◆ setstate()

+
@@ -1932,7 +2024,9 @@

Member Function Documentation

- + +

◆ skipWhite()

+
@@ -1956,7 +2050,9 @@

Member Function Documentation

- + +

◆ tellg()

+
@@ -1980,7 +2076,9 @@

Member Function Documentation

- + +

◆ unsetf()

+
@@ -2011,7 +2109,9 @@

Member Function Documentation

- + +

◆ width() [1/2]

+
@@ -2035,7 +2135,9 @@

Member Function Documentation

- + +

◆ width() [2/2]

+
@@ -2067,7 +2169,9 @@

Member Function Documentation

Member Data Documentation

- + +

◆ adjustfield

+
@@ -2088,7 +2192,9 @@

Member Data Documentation

- + +

◆ app

+
@@ -2109,7 +2215,9 @@

Member Data Documentation

- + +

◆ ate

+
@@ -2130,7 +2238,9 @@

Member Data Documentation

- + +

◆ badbit

+
@@ -2151,7 +2261,9 @@

Member Data Documentation

- + +

◆ basefield

+
@@ -2172,7 +2284,9 @@

Member Data Documentation

- + +

◆ binary

+
@@ -2193,7 +2307,9 @@

Member Data Documentation

- + +

◆ boolalpha

+
@@ -2214,7 +2330,9 @@

Member Data Documentation

- + +

◆ dec

+
@@ -2235,7 +2353,9 @@

Member Data Documentation

- + +

◆ eofbit

+
@@ -2256,7 +2376,9 @@

Member Data Documentation

- + +

◆ failbit

+
@@ -2277,7 +2399,9 @@

Member Data Documentation

- + +

◆ goodbit

+
@@ -2298,7 +2422,9 @@

Member Data Documentation

- + +

◆ hex

+
@@ -2319,7 +2445,9 @@

Member Data Documentation

- + +

◆ in

+
@@ -2340,7 +2468,9 @@

Member Data Documentation

- + +

◆ internal

+
@@ -2361,7 +2491,9 @@

Member Data Documentation

- + +

◆ left

+
@@ -2382,7 +2514,9 @@

Member Data Documentation

- + +

◆ oct

+
@@ -2403,7 +2537,9 @@

Member Data Documentation

- + +

◆ out

+
@@ -2424,7 +2560,9 @@

Member Data Documentation

- + +

◆ right

+
@@ -2445,7 +2583,9 @@

Member Data Documentation

- + +

◆ showbase

+
@@ -2466,7 +2606,9 @@

Member Data Documentation

- + +

◆ showpoint

+
@@ -2487,7 +2629,9 @@

Member Data Documentation

- + +

◆ showpos

+
@@ -2508,7 +2652,9 @@

Member Data Documentation

- + +

◆ skipws

+
@@ -2529,7 +2675,9 @@

Member Data Documentation

- + +

◆ trunc

+
@@ -2550,7 +2698,9 @@

Member Data Documentation

- + +

◆ uppercase

+
@@ -2577,9 +2727,9 @@

Member Data Documentation

diff --git a/extras/html/classifstream-members.html b/extras/html/classifstream-members.html index 944d789f..13a82348 100644 --- a/extras/html/classifstream-members.html +++ b/extras/html/classifstream-members.html @@ -3,7 +3,8 @@ - + +SdFat: Member List @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
adjustfieldios_basestatic appios_basestatic ateios_basestatic - bad() const iosinline + bad() constiosinline badbitios_basestatic basefieldios_basestatic beg enum valueios_base @@ -102,21 +82,21 @@ cur enum valueios_base decios_basestatic end enum valueios_base - eof() const iosinline + eof() constiosinline eofbitios_basestatic - fail() const iosinline + fail() constiosinline failbitios_basestatic fill()ios_baseinline fill(char c)ios_baseinline - flags() const ios_baseinline + flags() constios_baseinline flags(fmtflags fl)ios_baseinline fmtflags typedefios_base - gcount() const istreaminline + gcount() constistreaminline get()istream get(char &ch)istream - get(char *str, streamsize n, char delim= '\n')istream - getline(char *str, streamsize n, char delim= '\n')istream - good() const iosinline + get(char *str, streamsize n, char delim='\n')istream + getline(char *str, streamsize n, char delim='\n')istream + good() constiosinline goodbitios_basestatic hexios_basestatic ifstream() (defined in ifstream)ifstreaminline @@ -133,12 +113,12 @@ octios_basestatic off_type typedefios_base open(const char *path, openmode mode=in)ifstreaminline - FatStreamBase::open(FatFileSystem *fs, const char *path, uint8_t oflag)FatFileprivate - FatStreamBase::open(FatFile *dirFile, uint16_t index, uint8_t oflag)FatFileprivate - FatStreamBase::open(FatFile *dirFile, const char *path, uint8_t oflag)FatFileprivate + FatStreamBase::open(FatFileSystem *fs, const char *path, oflag_t oflag)FatFileprivate + FatStreamBase::open(FatFile *dirFile, uint16_t index, oflag_t oflag)FatFileprivate + FatStreamBase::open(FatFile *dirFile, const char *path, oflag_t oflag)FatFileprivate openmode typedefios_base - operator const void *() const iosinline - operator!() const iosinline + operator const void *() constiosinline + operator!() constiosinline operator>>(istream &(*pf)(istream &str))istreaminline operator>>(ios_base &(*pf)(ios_base &str))istreaminline operator>>(ios &(*pf)(ios &str))istreaminline @@ -159,37 +139,38 @@ operator>>(float &arg)istreaminline operator>>(void *&arg)istreaminline outios_basestatic - istream::peek()istream - FatStreamBase::peek()FatFileprivate - pos_type typedefios_base - precision() const ios_baseinline - precision(unsigned int n)ios_baseinline - rdstate() const iosinline - rightios_basestatic - seekdir enum nameios_base - seekg(pos_type pos)istreaminline - seekg(off_type off, seekdir way)istreaminline - setf(fmtflags fl)ios_baseinline - setf(fmtflags fl, fmtflags mask)ios_baseinline - setstate(iostate state)iosinline - showbaseios_basestatic - showpointios_basestatic - showposios_basestatic - skipWhite()istream - skipwsios_basestatic - streamsize typedefios_base - tellg()istreaminline - truncios_basestatic - unsetf(fmtflags fl)ios_baseinline - uppercaseios_basestatic - width()ios_baseinline - width(unsigned n)ios_baseinline + peek()ifstream + istream::peek()istream + FatStreamBase::peek()FatFileprivate + pos_type typedefios_base + precision() constios_baseinline + precision(unsigned int n)ios_baseinline + rdstate() constiosinline + rightios_basestatic + seekdir enum nameios_base + seekg(pos_type pos)istreaminline + seekg(off_type off, seekdir way)istreaminline + setf(fmtflags fl)ios_baseinline + setf(fmtflags fl, fmtflags mask)ios_baseinline + setstate(iostate state)iosinline + showbaseios_basestatic + showpointios_basestatic + showposios_basestatic + skipWhite()istream + skipwsios_basestatic + streamsize typedefios_base + tellg()istreaminline + truncios_basestatic + unsetf(fmtflags fl)ios_baseinline + uppercaseios_basestatic + width()ios_baseinline + width(unsigned n)ios_baseinline
diff --git a/extras/html/classifstream.html b/extras/html/classifstream.html index 6df95f3e..4a31027d 100644 --- a/extras/html/classifstream.html +++ b/extras/html/classifstream.html @@ -3,7 +3,8 @@ - + + SdFat: ifstream Class Reference @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
enum  seekdir { beg, cur, end - }  - + } +  typedef uint32_t streamsize   - - + + - - - - + + + + - - + + - - + + - - - - - - + + + + + + @@ -181,10 +161,10 @@ - - - - + + + + @@ -223,14 +203,16 @@ + + - - + + - - + + @@ -305,19 +287,21 @@

Public Member Functions

bool bad () const
 
bool bad () const
 
void clear (iostate state=goodbit)
 
void close ()
 
bool eof () const
 
bool fail () const
 
bool eof () const
 
bool fail () const
 
char fill ()
 
char fill (char c)
 
fmtflags flags () const
 
fmtflags flags () const
 
fmtflags flags (fmtflags fl)
 
streamsize gcount () const
 
streamsize gcount () const
 
int get ()
 
istreamget (char &ch)
 
istreamget (char *str, streamsize n, char delim= '\n')
 
istreamgetline (char *str, streamsize n, char delim= '\n')
 
bool good () const
 
istreamget (char *str, streamsize n, char delim='\n')
 
istreamgetline (char *str, streamsize n, char delim='\n')
 
bool good () const
 
 ifstream (const char *path, openmode mode=in)
 
istreamignore (streamsize n=1, int delim=-1)
 
void open (const char *path, openmode mode=in)
 
 operator const void * () const
 
bool operator! () const
 
 operator const void * () const
 
bool operator! () const
 
istreamoperator>> (istream &(*pf)(istream &str))
 
istreamoperator>> (ios_base &(*pf)(ios_base &str))
 
istreamoperator>> (void *&arg)
 
int peek ()
 
int peek ()
 
int precision () const
 
int precision () const
 
int precision (unsigned int n)
 
iostate rdstate () const
 
iostate rdstate () const
 
istreamseekg (pos_type pos)
 
istreamseekg (off_type off, seekdir way)
- - - - - - + + + + + +

Private Member Functions

bool open (FatFileSystem *fs, const char *path, uint8_t oflag)
 
bool open (FatFile *dirFile, uint16_t index, uint8_t oflag)
 
bool open (FatFile *dirFile, const char *path, uint8_t oflag)
 
bool open (FatFileSystem *fs, const char *path, oflag_t oflag)
 
bool open (FatFile *dirFile, uint16_t index, oflag_t oflag)
 
bool open (FatFile *dirFile, const char *path, oflag_t oflag)
 
int peek ()
 

Detailed Description

file input stream.

Member Typedef Documentation

- + +

◆ fmtflags

+
@@ -338,7 +322,9 @@ - + +

◆ iostate

+
@@ -359,7 +345,9 @@ - + +

◆ off_type

+
@@ -380,7 +368,9 @@ - + +

◆ openmode

+
@@ -401,7 +391,9 @@ - + +

◆ pos_type

+
@@ -422,7 +414,9 @@ - + +

◆ streamsize

+
@@ -444,7 +438,9 @@

Member Enumeration Documentation

- + +

◆ seekdir

+
@@ -463,21 +459,20 @@

Member Enumeration Documentation

enumerated type for the direction of relative seeks

- - -
Enumerator
beg  -

seek relative to the beginning of the stream

+
Enumerator
beg 

seek relative to the beginning of the stream

cur  -

seek relative to the current stream position

+
cur 

seek relative to the current stream position

end  -

seek relative to the end of the stream

+
end 

seek relative to the end of the stream

Constructor & Destructor Documentation

- + +

◆ ifstream()

+
@@ -519,7 +514,9 @@

Constructor & Destructor Documentation

Member Function Documentation

- + +

◆ bad()

+
@@ -543,7 +540,9 @@

Member Function Documentation

- + +

◆ clear()

+
@@ -574,7 +573,9 @@

Member Function Documentation

- + +

◆ close()

+
@@ -598,7 +599,9 @@

Member Function Documentation

- + +

◆ eof()

+
@@ -620,11 +623,13 @@

Member Function Documentation

Returns
true if end of file has been reached else false.

Warning: An empty file returns false before the first read.

-

Moral: eof() is only useful in combination with fail(), to find out whether EOF was the cause for failure

+

Moral: eof() is only useful in combination with fail(), to find out whether EOF was the cause for failure

- + +

◆ fail()

+
@@ -648,7 +653,9 @@

Member Function Documentation

- + +

◆ fill() [1/2]

+
@@ -672,7 +679,9 @@

Member Function Documentation

- + +

◆ fill() [2/2]

+
@@ -703,7 +712,9 @@

Member Function Documentation

- + +

◆ flags() [1/2]

+
@@ -727,7 +738,9 @@

Member Function Documentation

- + +

◆ flags() [2/2]

+
@@ -758,7 +771,9 @@

Member Function Documentation

- + +

◆ gcount()

+
@@ -782,7 +797,9 @@

Member Function Documentation

- + +

◆ get() [1/3]

+
@@ -803,11 +820,18 @@

Member Function Documentation

Extract a character if one is available.

-
Returns
The character or -1 if a failure occurs. A failure is indicated by the stream state.
+
Returns
The character or -1 if a failure occurs. A failure is indicated by the stream state.
+

Copyright (c) 2011-2018 Bill Greiman This file is part of the SdFat library for SD memory cards.

+

MIT License

+

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

- + +

◆ get() [2/3]

+
@@ -839,7 +863,9 @@

Member Function Documentation

- + +

◆ get() [3/3]

+
@@ -890,7 +916,9 @@

Member Function Documentation

- + +

◆ getline()

+
@@ -942,7 +970,9 @@

Member Function Documentation

- + +

◆ good()

+
@@ -966,7 +996,9 @@

Member Function Documentation

- + +

◆ ignore()

+
@@ -1011,7 +1043,9 @@

Member Function Documentation

- + +

◆ is_open()

+
@@ -1035,7 +1069,9 @@

Member Function Documentation

- + +

◆ open()

+
@@ -1077,7 +1113,9 @@

Member Function Documentation

- + +

◆ operator const void *()

+
@@ -1097,11 +1135,13 @@

Member Function Documentation

-
Returns
null pointer if fail() is true.
+
Returns
null pointer if fail() is true.
- + +

◆ operator!()

+
@@ -1121,11 +1161,13 @@

Member Function Documentation

-
Returns
true if fail() else false.
+
Returns
true if fail() else false.
- + +

◆ operator>>() [1/19]

+
@@ -1156,7 +1198,9 @@

Member Function Documentation

- + +

◆ operator>>() [2/19]

+
@@ -1187,7 +1231,9 @@

Member Function Documentation

- + +

◆ operator>>() [3/19]

+
@@ -1218,7 +1264,9 @@

Member Function Documentation

- + +

◆ operator>>() [4/19]

+
@@ -1249,7 +1297,9 @@

Member Function Documentation

- + +

◆ operator>>() [5/19]

+
@@ -1280,7 +1330,9 @@

Member Function Documentation

- + +

◆ operator>>() [6/19]

+
@@ -1311,7 +1363,9 @@

Member Function Documentation

- + +

◆ operator>>() [7/19]

+
@@ -1342,7 +1396,9 @@

Member Function Documentation

- + +

◆ operator>>() [8/19]

+
@@ -1373,7 +1429,9 @@

Member Function Documentation

- + +

◆ operator>>() [9/19]

+
@@ -1404,7 +1462,9 @@

Member Function Documentation

- + +

◆ operator>>() [10/19]

+
@@ -1435,7 +1495,9 @@

Member Function Documentation

- + +

◆ operator>>() [11/19]

+
@@ -1466,7 +1528,9 @@

Member Function Documentation

- + +

◆ operator>>() [12/19]

+
@@ -1497,7 +1561,9 @@

Member Function Documentation

- + +

◆ operator>>() [13/19]

+
@@ -1528,7 +1594,9 @@

Member Function Documentation

- + +

◆ operator>>() [14/19]

+
@@ -1559,7 +1627,9 @@

Member Function Documentation

- + +

◆ operator>>() [15/19]

+
@@ -1590,7 +1660,9 @@

Member Function Documentation

- + +

◆ operator>>() [16/19]

+
@@ -1621,7 +1693,9 @@

Member Function Documentation

- + +

◆ operator>>() [17/19]

+
@@ -1652,7 +1726,9 @@

Member Function Documentation

- + +

◆ operator>>() [18/19]

+
@@ -1683,7 +1759,9 @@

Member Function Documentation

- + +

◆ operator>>() [19/19]

+
@@ -1714,7 +1792,25 @@

Member Function Documentation

- + +

◆ peek() [1/2]

+ +
+
+
+ + + +
int istream::peek
+
+

Return the next available character without consuming it.

+
Returns
The character if the stream state is good else -1;
+ +
+
+ +

◆ peek() [2/2]

+
@@ -1739,7 +1835,9 @@

Member Function Documentation

- + +

◆ precision() [1/2]

+
@@ -1763,7 +1861,9 @@

Member Function Documentation

- + +

◆ precision() [2/2]

+
@@ -1794,7 +1894,9 @@

Member Function Documentation

- + +

◆ rdstate()

+
@@ -1818,7 +1920,9 @@

Member Function Documentation

- + +

◆ seekg() [1/2]

+
@@ -1849,7 +1953,9 @@

Member Function Documentation

- + +

◆ seekg() [2/2]

+
@@ -1892,7 +1998,9 @@

Member Function Documentation

- + +

◆ setf() [1/2]

+
@@ -1923,7 +2031,9 @@

Member Function Documentation

- + +

◆ setf() [2/2]

+
@@ -1965,7 +2075,9 @@

Member Function Documentation

- + +

◆ setstate()

+
@@ -1996,7 +2108,9 @@

Member Function Documentation

- + +

◆ skipWhite()

+
@@ -2020,7 +2134,9 @@

Member Function Documentation

- + +

◆ tellg()

+
@@ -2044,7 +2160,9 @@

Member Function Documentation

- + +

◆ unsetf()

+
@@ -2075,7 +2193,9 @@

Member Function Documentation

- + +

◆ width() [1/2]

+
@@ -2099,7 +2219,9 @@

Member Function Documentation

- + +

◆ width() [2/2]

+
@@ -2131,7 +2253,9 @@

Member Function Documentation

Member Data Documentation

- + +

◆ adjustfield

+
@@ -2152,7 +2276,9 @@

Member Data Documentation

- + +

◆ app

+
@@ -2173,7 +2299,9 @@

Member Data Documentation

- + +

◆ ate

+
@@ -2194,7 +2322,9 @@

Member Data Documentation

- + +

◆ badbit

+
@@ -2215,7 +2345,9 @@

Member Data Documentation

- + +

◆ basefield

+
@@ -2236,7 +2368,9 @@

Member Data Documentation

- + +

◆ binary

+
@@ -2257,7 +2391,9 @@

Member Data Documentation

- + +

◆ boolalpha

+
@@ -2278,7 +2414,9 @@

Member Data Documentation

- + +

◆ dec

+
@@ -2299,7 +2437,9 @@

Member Data Documentation

- + +

◆ eofbit

+
@@ -2320,7 +2460,9 @@

Member Data Documentation

- + +

◆ failbit

+
@@ -2341,7 +2483,9 @@

Member Data Documentation

- + +

◆ goodbit

+
@@ -2362,7 +2506,9 @@

Member Data Documentation

- + +

◆ hex

+
@@ -2383,7 +2529,9 @@

Member Data Documentation

- + +

◆ in

+
@@ -2404,7 +2552,9 @@

Member Data Documentation

- + +

◆ internal

+
@@ -2425,7 +2575,9 @@

Member Data Documentation

- + +

◆ left

+
@@ -2446,7 +2598,9 @@

Member Data Documentation

- + +

◆ oct

+
@@ -2467,7 +2621,9 @@

Member Data Documentation

- + +

◆ out

+
@@ -2488,7 +2644,9 @@

Member Data Documentation

- + +

◆ right

+
@@ -2509,7 +2667,9 @@

Member Data Documentation

- + +

◆ showbase

+
@@ -2530,7 +2690,9 @@

Member Data Documentation

- + +

◆ showpoint

+
@@ -2551,7 +2713,9 @@

Member Data Documentation

- + +

◆ showpos

+
@@ -2572,7 +2736,9 @@

Member Data Documentation

- + +

◆ skipws

+
@@ -2593,7 +2759,9 @@

Member Data Documentation

- + +

◆ trunc

+
@@ -2614,7 +2782,9 @@

Member Data Documentation

- + +

◆ uppercase

+
@@ -2641,9 +2811,9 @@

Member Data Documentation

diff --git a/extras/html/classios-members.html b/extras/html/classios-members.html index 8d4dbcea..2062f669 100644 --- a/extras/html/classios-members.html +++ b/extras/html/classios-members.html @@ -3,7 +3,8 @@ - + +SdFat: Member List @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
adjustfieldios_basestatic appios_basestatic ateios_basestatic - bad() const iosinline + bad() constiosinline badbitios_basestatic basefieldios_basestatic beg enum valueios_base @@ -101,16 +81,16 @@ cur enum valueios_base decios_basestatic end enum valueios_base - eof() const iosinline + eof() constiosinline eofbitios_basestatic - fail() const iosinline + fail() constiosinline failbitios_basestatic fill()ios_baseinline fill(char c)ios_baseinline - flags() const ios_baseinline + flags() constios_baseinline flags(fmtflags fl)ios_baseinline fmtflags typedefios_base - good() const iosinline + good() constiosinline goodbitios_basestatic hexios_basestatic inios_basestatic @@ -122,13 +102,13 @@ octios_basestatic off_type typedefios_base openmode typedefios_base - operator const void *() const iosinline - operator!() const iosinline + operator const void *() constiosinline + operator!() constiosinline outios_basestatic pos_type typedefios_base - precision() const ios_baseinline + precision() constios_baseinline precision(unsigned int n)ios_baseinline - rdstate() const iosinline + rdstate() constiosinline rightios_basestatic seekdir enum nameios_base setf(fmtflags fl)ios_baseinline @@ -147,9 +127,9 @@
diff --git a/extras/html/classios.html b/extras/html/classios.html index f076a242..40e091ea 100644 --- a/extras/html/classios.html +++ b/extras/html/classios.html @@ -3,7 +3,8 @@ - + + SdFat: ios Class Reference @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
enum  seekdir { beg, cur, end - }  - + } +  typedef uint32_t streamsize   - - + + - - - - + + + + - - + + - - + + - - - - - - + + + + + + - - + + @@ -242,7 +222,9 @@

Detailed Description

Error and state information for all streams.

Member Typedef Documentation

- + +

◆ fmtflags

+

Public Member Functions

bool bad () const
 
bool bad () const
 
void clear (iostate state=goodbit)
 
bool eof () const
 
bool fail () const
 
bool eof () const
 
bool fail () const
 
char fill ()
 
char fill (char c)
 
fmtflags flags () const
 
fmtflags flags () const
 
fmtflags flags (fmtflags fl)
 
bool good () const
 
bool good () const
 
 ios ()
 
 operator const void * () const
 
bool operator! () const
 
int precision () const
 
 operator const void * () const
 
bool operator! () const
 
int precision () const
 
int precision (unsigned int n)
 
iostate rdstate () const
 
iostate rdstate () const
 
fmtflags setf (fmtflags fl)
 
fmtflags setf (fmtflags fl, fmtflags mask)
@@ -263,7 +245,9 @@ - + +

◆ iostate

+
@@ -284,7 +268,9 @@ - + +

◆ off_type

+
@@ -305,7 +291,9 @@ - + +

◆ openmode

+
@@ -326,7 +314,9 @@ - + +

◆ pos_type

+
@@ -347,7 +337,9 @@ - + +

◆ streamsize

+
@@ -369,7 +361,9 @@

Member Enumeration Documentation

- + +

◆ seekdir

+
@@ -388,21 +382,20 @@

Member Enumeration Documentation

enumerated type for the direction of relative seeks

- - -
Enumerator
beg  -

seek relative to the beginning of the stream

+
Enumerator
beg 

seek relative to the beginning of the stream

cur  -

seek relative to the current stream position

+
cur 

seek relative to the current stream position

end  -

seek relative to the end of the stream

+
end 

seek relative to the end of the stream

Constructor & Destructor Documentation

- + +

◆ ios()

+
@@ -427,7 +420,9 @@

Constructor & Destructor Documentation

Member Function Documentation

- + +

◆ bad()

+
@@ -451,7 +446,9 @@

Member Function Documentation

- + +

◆ clear()

+
@@ -482,7 +479,9 @@

Member Function Documentation

- + +

◆ eof()

+
@@ -504,11 +503,13 @@

Member Function Documentation

Returns
true if end of file has been reached else false.

Warning: An empty file returns false before the first read.

-

Moral: eof() is only useful in combination with fail(), to find out whether EOF was the cause for failure

+

Moral: eof() is only useful in combination with fail(), to find out whether EOF was the cause for failure

- + +

◆ fail()

+
@@ -532,7 +533,9 @@

Member Function Documentation

- + +

◆ fill() [1/2]

+
@@ -556,7 +559,9 @@

Member Function Documentation

- + +

◆ fill() [2/2]

+
@@ -587,7 +592,9 @@

Member Function Documentation

- + +

◆ flags() [1/2]

+
@@ -611,7 +618,9 @@

Member Function Documentation

- + +

◆ flags() [2/2]

+
@@ -642,7 +651,9 @@

Member Function Documentation

- + +

◆ good()

+
@@ -666,7 +677,9 @@

Member Function Documentation

- + +

◆ operator const void *()

+
@@ -686,11 +699,13 @@

Member Function Documentation

-
Returns
null pointer if fail() is true.
+
Returns
null pointer if fail() is true.
- + +

◆ operator!()

+
@@ -710,11 +725,13 @@

Member Function Documentation

-
Returns
true if fail() else false.
+
Returns
true if fail() else false.
- + +

◆ precision() [1/2]

+
@@ -738,7 +755,9 @@

Member Function Documentation

- + +

◆ precision() [2/2]

+
@@ -769,7 +788,9 @@

Member Function Documentation

- + +

◆ rdstate()

+
@@ -793,7 +814,9 @@

Member Function Documentation

- + +

◆ setf() [1/2]

+
@@ -824,7 +847,9 @@

Member Function Documentation

- + +

◆ setf() [2/2]

+
@@ -866,7 +891,9 @@

Member Function Documentation

- + +

◆ setstate()

+
@@ -897,7 +924,9 @@

Member Function Documentation

- + +

◆ unsetf()

+
@@ -928,7 +957,9 @@

Member Function Documentation

- + +

◆ width() [1/2]

+
@@ -952,7 +983,9 @@

Member Function Documentation

- + +

◆ width() [2/2]

+
@@ -984,7 +1017,9 @@

Member Function Documentation

Member Data Documentation

- + +

◆ adjustfield

+
@@ -1005,7 +1040,9 @@

Member Data Documentation

- + +

◆ app

+
@@ -1026,7 +1063,9 @@

Member Data Documentation

- + +

◆ ate

+
@@ -1047,7 +1086,9 @@

Member Data Documentation

- + +

◆ badbit

+
@@ -1068,7 +1109,9 @@

Member Data Documentation

- + +

◆ basefield

+
@@ -1089,7 +1132,9 @@

Member Data Documentation

- + +

◆ binary

+
@@ -1110,7 +1155,9 @@

Member Data Documentation

- + +

◆ boolalpha

+
@@ -1131,7 +1178,9 @@

Member Data Documentation

- + +

◆ dec

+
@@ -1152,7 +1201,9 @@

Member Data Documentation

- + +

◆ eofbit

+
@@ -1173,7 +1224,9 @@

Member Data Documentation

- + +

◆ failbit

+
@@ -1194,7 +1247,9 @@

Member Data Documentation

- + +

◆ goodbit

+
@@ -1215,7 +1270,9 @@

Member Data Documentation

- + +

◆ hex

+
@@ -1236,7 +1293,9 @@

Member Data Documentation

- + +

◆ in

+
@@ -1257,7 +1316,9 @@

Member Data Documentation

- + +

◆ internal

+
@@ -1278,7 +1339,9 @@

Member Data Documentation

- + +

◆ left

+
@@ -1299,7 +1362,9 @@

Member Data Documentation

- + +

◆ oct

+
@@ -1320,7 +1385,9 @@

Member Data Documentation

- + +

◆ out

+
@@ -1341,7 +1408,9 @@

Member Data Documentation

- + +

◆ right

+
@@ -1362,7 +1431,9 @@

Member Data Documentation

- + +

◆ showbase

+
@@ -1383,7 +1454,9 @@

Member Data Documentation

- + +

◆ showpoint

+
@@ -1404,7 +1477,9 @@

Member Data Documentation

- + +

◆ showpos

+
@@ -1425,7 +1500,9 @@

Member Data Documentation

- + +

◆ skipws

+
@@ -1446,7 +1523,9 @@

Member Data Documentation

- + +

◆ trunc

+
@@ -1467,7 +1546,9 @@

Member Data Documentation

- + +

◆ uppercase

+
@@ -1494,9 +1575,9 @@

Member Data Documentation

diff --git a/extras/html/classios__base-members.html b/extras/html/classios__base-members.html index ec1a7435..ba34bb2e 100644 --- a/extras/html/classios__base-members.html +++ b/extras/html/classios__base-members.html @@ -3,7 +3,8 @@ - + +SdFat: Member List @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
failbitios_basestatic fill()ios_baseinline fill(char c)ios_baseinline - flags() const ios_baseinline + flags() constios_baseinline flags(fmtflags fl)ios_baseinline fmtflags typedefios_base goodbitios_basestatic @@ -118,7 +98,7 @@ openmode typedefios_base outios_basestatic pos_type typedefios_base - precision() const ios_baseinline + precision() constios_baseinline precision(unsigned int n)ios_baseinline rightios_basestatic seekdir enum nameios_base @@ -137,9 +117,9 @@
diff --git a/extras/html/classios__base.html b/extras/html/classios__base.html index f3d3af7f..bf72bf82 100644 --- a/extras/html/classios__base.html +++ b/extras/html/classios__base.html @@ -3,7 +3,8 @@ - + + SdFat: ios_base Class Reference @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
enum  seekdir { beg, cur, end - }  - + } +  typedef uint32_t streamsize   @@ -141,12 +121,12 @@ - - + + - - + + @@ -214,7 +194,9 @@

Detailed Description

Base class for all streams.

Member Typedef Documentation

- + +

◆ fmtflags

+
 
char fill (char c)
 
fmtflags flags () const
 
fmtflags flags () const
 
fmtflags flags (fmtflags fl)
 
int precision () const
 
int precision () const
 
int precision (unsigned int n)
 
fmtflags setf (fmtflags fl)
@@ -227,7 +209,9 @@ - + +

◆ iostate

+
@@ -240,7 +224,9 @@ - + +

◆ off_type

+
@@ -253,7 +239,9 @@ - + +

◆ openmode

+
@@ -266,7 +254,9 @@ - + +

◆ pos_type

+
@@ -279,7 +269,9 @@ - + +

◆ streamsize

+
@@ -293,7 +285,9 @@

Member Enumeration Documentation

- + +

◆ seekdir

+
@@ -304,21 +298,20 @@

Member Enumeration Documentation

enumerated type for the direction of relative seeks

- - -
Enumerator
beg  -

seek relative to the beginning of the stream

+
Enumerator
beg 

seek relative to the beginning of the stream

cur  -

seek relative to the current stream position

+
cur 

seek relative to the current stream position

end  -

seek relative to the end of the stream

+
end 

seek relative to the end of the stream

Member Function Documentation

- + +

◆ fill() [1/2]

+
@@ -342,7 +335,9 @@

Member Function Documentation

- + +

◆ fill() [2/2]

+
@@ -373,7 +368,9 @@

Member Function Documentation

- + +

◆ flags() [1/2]

+
@@ -397,7 +394,9 @@

Member Function Documentation

- + +

◆ flags() [2/2]

+
@@ -428,7 +427,9 @@

Member Function Documentation

- + +

◆ precision() [1/2]

+
@@ -452,7 +453,9 @@

Member Function Documentation

- + +

◆ precision() [2/2]

+
@@ -483,7 +486,9 @@

Member Function Documentation

- + +

◆ setf() [1/2]

+
@@ -514,7 +519,9 @@

Member Function Documentation

- + +

◆ setf() [2/2]

+
@@ -556,7 +563,9 @@

Member Function Documentation

- + +

◆ unsetf()

+
@@ -587,7 +596,9 @@

Member Function Documentation

- + +

◆ width() [1/2]

+
@@ -611,7 +622,9 @@

Member Function Documentation

- + +

◆ width() [2/2]

+
@@ -643,7 +656,9 @@

Member Function Documentation

Member Data Documentation

- + +

◆ adjustfield

+
@@ -664,7 +679,9 @@

Member Data Documentation

- + +

◆ app

+
@@ -685,7 +702,9 @@

Member Data Documentation

- + +

◆ ate

+
@@ -706,7 +725,9 @@

Member Data Documentation

- + +

◆ badbit

+
@@ -727,7 +748,9 @@

Member Data Documentation

- + +

◆ basefield

+
@@ -748,7 +771,9 @@

Member Data Documentation

- + +

◆ binary

+
@@ -769,7 +794,9 @@

Member Data Documentation

- + +

◆ boolalpha

+
@@ -790,7 +817,9 @@

Member Data Documentation

- + +

◆ dec

+
@@ -811,7 +840,9 @@

Member Data Documentation

- + +

◆ eofbit

+
@@ -832,7 +863,9 @@

Member Data Documentation

- + +

◆ failbit

+
@@ -853,7 +886,9 @@

Member Data Documentation

- + +

◆ goodbit

+
@@ -874,7 +909,9 @@

Member Data Documentation

- + +

◆ hex

+
@@ -895,7 +932,9 @@

Member Data Documentation

- + +

◆ in

+
@@ -916,7 +955,9 @@

Member Data Documentation

- + +

◆ internal

+
@@ -937,7 +978,9 @@

Member Data Documentation

- + +

◆ left

+
@@ -958,7 +1001,9 @@

Member Data Documentation

- + +

◆ oct

+
@@ -979,7 +1024,9 @@

Member Data Documentation

- + +

◆ out

+
@@ -1000,7 +1047,9 @@

Member Data Documentation

- + +

◆ right

+
@@ -1021,7 +1070,9 @@

Member Data Documentation

- + +

◆ showbase

+
@@ -1042,7 +1093,9 @@

Member Data Documentation

- + +

◆ showpoint

+
@@ -1063,7 +1116,9 @@

Member Data Documentation

- + +

◆ showpos

+
@@ -1084,7 +1139,9 @@

Member Data Documentation

- + +

◆ skipws

+
@@ -1105,7 +1162,9 @@

Member Data Documentation

- + +

◆ trunc

+
@@ -1126,7 +1185,9 @@

Member Data Documentation

- + +

◆ uppercase

+
@@ -1153,9 +1214,9 @@

Member Data Documentation

diff --git a/extras/html/classiostream-members.html b/extras/html/classiostream-members.html index 5b4d60bb..84901100 100644 --- a/extras/html/classiostream-members.html +++ b/extras/html/classiostream-members.html @@ -3,7 +3,8 @@ - + +SdFat: Member List @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
adjustfieldios_basestatic appios_basestatic ateios_basestatic - bad() const iosinline + bad() constiosinline badbitios_basestatic basefieldios_basestatic beg enum valueios_base @@ -101,22 +81,22 @@ cur enum valueios_base decios_basestatic end enum valueios_base - eof() const iosinline + eof() constiosinline eofbitios_basestatic - fail() const iosinline + fail() constiosinline failbitios_basestatic fill()ios_baseinline fill(char c)ios_baseinline - flags() const ios_baseinline + flags() constios_baseinline flags(fmtflags fl)ios_baseinline flush()ostreaminline fmtflags typedefios_base - gcount() const istreaminline + gcount() constistreaminline get()istream get(char &ch)istream - get(char *str, streamsize n, char delim= '\n')istream - getline(char *str, streamsize n, char delim= '\n')istream - good() const iosinline + get(char *str, streamsize n, char delim='\n')istream + getline(char *str, streamsize n, char delim='\n')istream + good() constiosinline goodbitios_basestatic hexios_basestatic ignore(streamsize n=1, int delim=-1)istream @@ -130,8 +110,8 @@ octios_basestatic off_type typedefios_base openmode typedefios_base - operator const void *() const iosinline - operator!() const iosinline + operator const void *() constiosinline + operator!() constiosinline operator<<(ostream &(*pf)(ostream &str))ostreaminline operator<<(ios_base &(*pf)(ios_base &str))ostreaminline operator<<(bool arg)ostreaminline @@ -174,10 +154,10 @@ outios_basestatic peek()istream pos_type typedefios_base - precision() const ios_baseinline + precision() constios_baseinline precision(unsigned int n)ios_baseinline put(char ch)ostreaminline - rdstate() const iosinline + rdstate() constiosinline rightios_basestatic seekdir enum nameios_base seekg(pos_type pos)istreaminline @@ -203,9 +183,9 @@
diff --git a/extras/html/classiostream.html b/extras/html/classiostream.html index e3cf2121..ab5ae2a2 100644 --- a/extras/html/classiostream.html +++ b/extras/html/classiostream.html @@ -3,7 +3,8 @@ - + + SdFat: iostream Class Reference @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
enum  seekdir { beg, cur, end - }  - + } +  typedef uint32_t streamsize   - - + + - - - - + + + + - - + + - - + + - - - - - - + + + + + + - - - - + + + + @@ -255,14 +235,14 @@ - - + + - - + + @@ -344,7 +324,9 @@

Detailed Description

Input/Output stream.

Member Typedef Documentation

- + +

◆ fmtflags

+

Public Member Functions

bool bad () const
 
bool bad () const
 
void clear (iostate state=goodbit)
 
bool eof () const
 
bool fail () const
 
bool eof () const
 
bool fail () const
 
char fill ()
 
char fill (char c)
 
fmtflags flags () const
 
fmtflags flags () const
 
fmtflags flags (fmtflags fl)
 
ostreamflush ()
 
streamsize gcount () const
 
streamsize gcount () const
 
int get ()
 
istreamget (char &ch)
 
istreamget (char *str, streamsize n, char delim= '\n')
 
istreamgetline (char *str, streamsize n, char delim= '\n')
 
bool good () const
 
istreamget (char *str, streamsize n, char delim='\n')
 
istreamgetline (char *str, streamsize n, char delim='\n')
 
bool good () const
 
istreamignore (streamsize n=1, int delim=-1)
 
 operator const void * () const
 
bool operator! () const
 
 operator const void * () const
 
bool operator! () const
 
ostreamoperator<< (ostream &(*pf)(ostream &str))
 
ostreamoperator<< (ios_base &(*pf)(ios_base &str))
 
int peek ()
 
int precision () const
 
int precision () const
 
int precision (unsigned int n)
 
ostreamput (char ch)
 
iostate rdstate () const
 
iostate rdstate () const
 
istreamseekg (pos_type pos)
 
istreamseekg (off_type off, seekdir way)
@@ -365,7 +347,9 @@ - + +

◆ iostate

+
@@ -386,7 +370,9 @@ - + +

◆ off_type

+
@@ -407,7 +393,9 @@ - + +

◆ openmode

+
@@ -428,7 +416,9 @@ - + +

◆ pos_type

+
@@ -449,7 +439,9 @@ - + +

◆ streamsize

+
@@ -471,7 +463,9 @@

Member Enumeration Documentation

- + +

◆ seekdir

+
@@ -490,21 +484,20 @@

Member Enumeration Documentation

enumerated type for the direction of relative seeks

- - -
Enumerator
beg  -

seek relative to the beginning of the stream

+
Enumerator
beg 

seek relative to the beginning of the stream

cur  -

seek relative to the current stream position

+
cur 

seek relative to the current stream position

end  -

seek relative to the end of the stream

+
end 

seek relative to the end of the stream

Member Function Documentation

- + +

◆ bad()

+
@@ -528,7 +521,9 @@

Member Function Documentation

- + +

◆ clear()

+
@@ -559,7 +554,9 @@

Member Function Documentation

- + +

◆ eof()

+
@@ -581,11 +578,13 @@

Member Function Documentation

Returns
true if end of file has been reached else false.

Warning: An empty file returns false before the first read.

-

Moral: eof() is only useful in combination with fail(), to find out whether EOF was the cause for failure

+

Moral: eof() is only useful in combination with fail(), to find out whether EOF was the cause for failure

- + +

◆ fail()

+
@@ -609,7 +608,9 @@

Member Function Documentation

- + +

◆ fill() [1/2]

+
@@ -633,7 +634,9 @@

Member Function Documentation

- + +

◆ fill() [2/2]

+
@@ -664,7 +667,9 @@

Member Function Documentation

- + +

◆ flags() [1/2]

+
@@ -688,7 +693,9 @@

Member Function Documentation

- + +

◆ flags() [2/2]

+
@@ -719,7 +726,9 @@

Member Function Documentation

- + +

◆ flush()

+
@@ -743,7 +752,9 @@

Member Function Documentation

- + +

◆ gcount()

+
@@ -767,7 +778,9 @@

Member Function Documentation

- + +

◆ get() [1/3]

+
@@ -788,11 +801,18 @@

Member Function Documentation

Extract a character if one is available.

-
Returns
The character or -1 if a failure occurs. A failure is indicated by the stream state.
+
Returns
The character or -1 if a failure occurs. A failure is indicated by the stream state.
+

Copyright (c) 2011-2018 Bill Greiman This file is part of the SdFat library for SD memory cards.

+

MIT License

+

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

- + +

◆ get() [2/3]

+
@@ -824,7 +844,9 @@

Member Function Documentation

- + +

◆ get() [3/3]

+
@@ -875,7 +897,9 @@

Member Function Documentation

- + +

◆ getline()

+
@@ -927,7 +951,9 @@

Member Function Documentation

- + +

◆ good()

+
@@ -951,7 +977,9 @@

Member Function Documentation

- + +

◆ ignore()

+
@@ -996,7 +1024,9 @@

Member Function Documentation

- + +

◆ operator const void *()

+
@@ -1016,11 +1046,13 @@

Member Function Documentation

-
Returns
null pointer if fail() is true.
+
Returns
null pointer if fail() is true.
- + +

◆ operator!()

+
@@ -1040,11 +1072,13 @@

Member Function Documentation

-
Returns
true if fail() else false.
+
Returns
true if fail() else false.
- + +

◆ operator<<() [1/19]

+
@@ -1075,7 +1109,9 @@

Member Function Documentation

- + +

◆ operator<<() [2/19]

+
@@ -1106,7 +1142,9 @@

Member Function Documentation

- + +

◆ operator<<() [3/19]

+
@@ -1137,7 +1175,9 @@

Member Function Documentation

- + +

◆ operator<<() [4/19]

+
@@ -1168,7 +1208,9 @@

Member Function Documentation

- + +

◆ operator<<() [5/19]

+
@@ -1199,7 +1241,9 @@

Member Function Documentation

- + +

◆ operator<<() [6/19]

+
@@ -1230,7 +1274,9 @@

Member Function Documentation

- + +

◆ operator<<() [7/19]

+
@@ -1261,7 +1307,9 @@

Member Function Documentation

- + +

◆ operator<<() [8/19]

+
@@ -1292,7 +1340,9 @@

Member Function Documentation

- + +

◆ operator<<() [9/19]

+
@@ -1323,7 +1373,9 @@

Member Function Documentation

- + +

◆ operator<<() [10/19]

+
@@ -1354,7 +1406,9 @@

Member Function Documentation

- + +

◆ operator<<() [11/19]

+
@@ -1385,7 +1439,9 @@

Member Function Documentation

- + +

◆ operator<<() [12/19]

+
@@ -1416,7 +1472,9 @@

Member Function Documentation

- + +

◆ operator<<() [13/19]

+
@@ -1447,7 +1505,9 @@

Member Function Documentation

- + +

◆ operator<<() [14/19]

+
@@ -1478,7 +1538,9 @@

Member Function Documentation

- + +

◆ operator<<() [15/19]

+
@@ -1509,7 +1571,9 @@

Member Function Documentation

- + +

◆ operator<<() [16/19]

+
@@ -1540,7 +1604,9 @@

Member Function Documentation

- + +

◆ operator<<() [17/19]

+
@@ -1571,7 +1637,9 @@

Member Function Documentation

- + +

◆ operator<<() [18/19]

+
@@ -1602,7 +1670,9 @@

Member Function Documentation

- + +

◆ operator<<() [19/19]

+
@@ -1633,7 +1703,9 @@

Member Function Documentation

- + +

◆ operator>>() [1/19]

+
@@ -1664,7 +1736,9 @@

Member Function Documentation

- + +

◆ operator>>() [2/19]

+
@@ -1695,7 +1769,9 @@

Member Function Documentation

- + +

◆ operator>>() [3/19]

+
@@ -1726,7 +1802,9 @@

Member Function Documentation

- + +

◆ operator>>() [4/19]

+
@@ -1757,7 +1835,9 @@

Member Function Documentation

- + +

◆ operator>>() [5/19]

+
@@ -1788,7 +1868,9 @@

Member Function Documentation

- + +

◆ operator>>() [6/19]

+
@@ -1819,7 +1901,9 @@

Member Function Documentation

- + +

◆ operator>>() [7/19]

+
@@ -1850,7 +1934,9 @@

Member Function Documentation

- + +

◆ operator>>() [8/19]

+
@@ -1881,7 +1967,9 @@

Member Function Documentation

- + +

◆ operator>>() [9/19]

+
@@ -1912,7 +2000,9 @@

Member Function Documentation

- + +

◆ operator>>() [10/19]

+
@@ -1943,7 +2033,9 @@

Member Function Documentation

- + +

◆ operator>>() [11/19]

+
@@ -1974,7 +2066,9 @@

Member Function Documentation

- + +

◆ operator>>() [12/19]

+
@@ -2005,7 +2099,9 @@

Member Function Documentation

- + +

◆ operator>>() [13/19]

+
@@ -2036,7 +2132,9 @@

Member Function Documentation

- + +

◆ operator>>() [14/19]

+
@@ -2067,7 +2165,9 @@

Member Function Documentation

- + +

◆ operator>>() [15/19]

+
@@ -2098,7 +2198,9 @@

Member Function Documentation

- + +

◆ operator>>() [16/19]

+
@@ -2129,7 +2231,9 @@

Member Function Documentation

- + +

◆ operator>>() [17/19]

+
@@ -2160,7 +2264,9 @@

Member Function Documentation

- + +

◆ operator>>() [18/19]

+
@@ -2191,7 +2297,9 @@

Member Function Documentation

- + +

◆ operator>>() [19/19]

+
@@ -2222,7 +2330,9 @@

Member Function Documentation

- + +

◆ peek()

+
@@ -2247,7 +2357,9 @@

Member Function Documentation

- + +

◆ precision() [1/2]

+
@@ -2271,7 +2383,9 @@

Member Function Documentation

- + +

◆ precision() [2/2]

+
@@ -2302,7 +2416,9 @@

Member Function Documentation

- + +

◆ put()

+
@@ -2335,7 +2451,9 @@

Member Function Documentation

- + +

◆ rdstate()

+
@@ -2359,7 +2477,9 @@

Member Function Documentation

- + +

◆ seekg() [1/2]

+
@@ -2390,7 +2510,9 @@

Member Function Documentation

- + +

◆ seekg() [2/2]

+
@@ -2433,7 +2555,9 @@

Member Function Documentation

- + +

◆ seekp() [1/2]

+
@@ -2464,7 +2588,9 @@

Member Function Documentation

- + +

◆ seekp() [2/2]

+
@@ -2507,7 +2633,9 @@

Member Function Documentation

- + +

◆ setf() [1/2]

+
@@ -2538,7 +2666,9 @@

Member Function Documentation

- + +

◆ setf() [2/2]

+
@@ -2580,7 +2710,9 @@

Member Function Documentation

- + +

◆ setstate()

+
@@ -2611,7 +2743,9 @@

Member Function Documentation

- + +

◆ skipWhite()

+
@@ -2635,7 +2769,9 @@

Member Function Documentation

- + +

◆ tellg()

+
@@ -2659,7 +2795,9 @@

Member Function Documentation

- + +

◆ tellp()

+
@@ -2683,7 +2821,9 @@

Member Function Documentation

- + +

◆ unsetf()

+
@@ -2714,7 +2854,9 @@

Member Function Documentation

- + +

◆ width() [1/2]

+
@@ -2738,7 +2880,9 @@

Member Function Documentation

- + +

◆ width() [2/2]

+
@@ -2770,7 +2914,9 @@

Member Function Documentation

Member Data Documentation

- + +

◆ adjustfield

+
@@ -2791,7 +2937,9 @@

Member Data Documentation

- + +

◆ app

+
@@ -2812,7 +2960,9 @@

Member Data Documentation

- + +

◆ ate

+
@@ -2833,7 +2983,9 @@

Member Data Documentation

- + +

◆ badbit

+
@@ -2854,7 +3006,9 @@

Member Data Documentation

- + +

◆ basefield

+
@@ -2875,7 +3029,9 @@

Member Data Documentation

- + +

◆ binary

+
@@ -2896,7 +3052,9 @@

Member Data Documentation

- + +

◆ boolalpha

+
@@ -2917,7 +3075,9 @@

Member Data Documentation

- + +

◆ dec

+
@@ -2938,7 +3098,9 @@

Member Data Documentation

- + +

◆ eofbit

+
@@ -2959,7 +3121,9 @@

Member Data Documentation

- + +

◆ failbit

+
@@ -2980,7 +3144,9 @@

Member Data Documentation

- + +

◆ goodbit

+
@@ -3001,7 +3167,9 @@

Member Data Documentation

- + +

◆ hex

+
@@ -3022,7 +3190,9 @@

Member Data Documentation

- + +

◆ in

+
@@ -3043,7 +3213,9 @@

Member Data Documentation

- + +

◆ internal

+
@@ -3064,7 +3236,9 @@

Member Data Documentation

- + +

◆ left

+
@@ -3085,7 +3259,9 @@

Member Data Documentation

- + +

◆ oct

+
@@ -3106,7 +3282,9 @@

Member Data Documentation

- + +

◆ out

+
@@ -3127,7 +3305,9 @@

Member Data Documentation

- + +

◆ right

+
@@ -3148,7 +3328,9 @@

Member Data Documentation

- + +

◆ showbase

+
@@ -3169,7 +3351,9 @@

Member Data Documentation

- + +

◆ showpoint

+
@@ -3190,7 +3374,9 @@

Member Data Documentation

- + +

◆ showpos

+
@@ -3211,7 +3397,9 @@

Member Data Documentation

- + +

◆ skipws

+
@@ -3232,7 +3420,9 @@

Member Data Documentation

- + +

◆ trunc

+
@@ -3253,7 +3443,9 @@

Member Data Documentation

- + +

◆ uppercase

+
@@ -3280,9 +3472,9 @@

Member Data Documentation

diff --git a/extras/html/classistream-members.html b/extras/html/classistream-members.html index 3d575925..96959e33 100644 --- a/extras/html/classistream-members.html +++ b/extras/html/classistream-members.html @@ -3,7 +3,8 @@ - + +SdFat: Member List @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
adjustfieldios_basestatic appios_basestatic ateios_basestatic - bad() const iosinline + bad() constiosinline badbitios_basestatic basefieldios_basestatic beg enum valueios_base @@ -101,21 +81,21 @@ cur enum valueios_base decios_basestatic end enum valueios_base - eof() const iosinline + eof() constiosinline eofbitios_basestatic - fail() const iosinline + fail() constiosinline failbitios_basestatic fill()ios_baseinline fill(char c)ios_baseinline - flags() const ios_baseinline + flags() constios_baseinline flags(fmtflags fl)ios_baseinline fmtflags typedefios_base - gcount() const istreaminline + gcount() constistreaminline get()istream get(char &ch)istream - get(char *str, streamsize n, char delim= '\n')istream - getline(char *str, streamsize n, char delim= '\n')istream - good() const iosinline + get(char *str, streamsize n, char delim='\n')istream + getline(char *str, streamsize n, char delim='\n')istream + good() constiosinline goodbitios_basestatic hexios_basestatic ignore(streamsize n=1, int delim=-1)istream @@ -129,8 +109,8 @@ octios_basestatic off_type typedefios_base openmode typedefios_base - operator const void *() const iosinline - operator!() const iosinline + operator const void *() constiosinline + operator!() constiosinline operator>>(istream &(*pf)(istream &str))istreaminline operator>>(ios_base &(*pf)(ios_base &str))istreaminline operator>>(ios &(*pf)(ios &str))istreaminline @@ -153,9 +133,9 @@ outios_basestatic peek()istream pos_type typedefios_base - precision() const ios_baseinline + precision() constios_baseinline precision(unsigned int n)ios_baseinline - rdstate() const iosinline + rdstate() constiosinline rightios_basestatic seekdir enum nameios_base seekg(pos_type pos)istreaminline @@ -178,9 +158,9 @@
diff --git a/extras/html/classistream.html b/extras/html/classistream.html index dc8d0de0..f8bbed26 100644 --- a/extras/html/classistream.html +++ b/extras/html/classistream.html @@ -3,7 +3,8 @@ - + + SdFat: istream Class Reference @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
enum  seekdir { beg, cur, end - }  - + } +  typedef uint32_t streamsize   - - + + - - - - + + + + - - + + - - + + - - - - - - + + + + + + - - - - + + + + @@ -215,12 +195,12 @@ - - + + - - + + @@ -296,7 +276,9 @@

Detailed Description

Input Stream.

Member Typedef Documentation

- + +

◆ fmtflags

+

Public Member Functions

bool bad () const
 
bool bad () const
 
void clear (iostate state=goodbit)
 
bool eof () const
 
bool fail () const
 
bool eof () const
 
bool fail () const
 
char fill ()
 
char fill (char c)
 
fmtflags flags () const
 
fmtflags flags () const
 
fmtflags flags (fmtflags fl)
 
streamsize gcount () const
 
streamsize gcount () const
 
int get ()
 
istreamget (char &ch)
 
istreamget (char *str, streamsize n, char delim= '\n')
 
istreamgetline (char *str, streamsize n, char delim= '\n')
 
bool good () const
 
istreamget (char *str, streamsize n, char delim='\n')
 
istreamgetline (char *str, streamsize n, char delim='\n')
 
bool good () const
 
istreamignore (streamsize n=1, int delim=-1)
 
 operator const void * () const
 
bool operator! () const
 
 operator const void * () const
 
bool operator! () const
 
istreamoperator>> (istream &(*pf)(istream &str))
 
istreamoperator>> (ios_base &(*pf)(ios_base &str))
 
int peek ()
 
int precision () const
 
int precision () const
 
int precision (unsigned int n)
 
iostate rdstate () const
 
iostate rdstate () const
 
istreamseekg (pos_type pos)
 
istreamseekg (off_type off, seekdir way)
@@ -317,7 +299,9 @@ - + +

◆ iostate

+
@@ -338,7 +322,9 @@ - + +

◆ off_type

+
@@ -359,7 +345,9 @@ - + +

◆ openmode

+
@@ -380,7 +368,9 @@ - + +

◆ pos_type

+
@@ -401,7 +391,9 @@ - + +

◆ streamsize

+
@@ -423,7 +415,9 @@

Member Enumeration Documentation

- + +

◆ seekdir

+
@@ -442,21 +436,20 @@

Member Enumeration Documentation

enumerated type for the direction of relative seeks

- - -
Enumerator
beg  -

seek relative to the beginning of the stream

+
Enumerator
beg 

seek relative to the beginning of the stream

cur  -

seek relative to the current stream position

+
cur 

seek relative to the current stream position

end  -

seek relative to the end of the stream

+
end 

seek relative to the end of the stream

Member Function Documentation

- + +

◆ bad()

+
@@ -480,7 +473,9 @@

Member Function Documentation

- + +

◆ clear()

+
@@ -511,7 +506,9 @@

Member Function Documentation

- + +

◆ eof()

+
@@ -533,11 +530,13 @@

Member Function Documentation

Returns
true if end of file has been reached else false.

Warning: An empty file returns false before the first read.

-

Moral: eof() is only useful in combination with fail(), to find out whether EOF was the cause for failure

+

Moral: eof() is only useful in combination with fail(), to find out whether EOF was the cause for failure

- + +

◆ fail()

+
@@ -561,7 +560,9 @@

Member Function Documentation

- + +

◆ fill() [1/2]

+
@@ -585,7 +586,9 @@

Member Function Documentation

- + +

◆ fill() [2/2]

+
@@ -616,7 +619,9 @@

Member Function Documentation

- + +

◆ flags() [1/2]

+
@@ -640,7 +645,9 @@

Member Function Documentation

- + +

◆ flags() [2/2]

+
@@ -671,7 +678,9 @@

Member Function Documentation

- + +

◆ gcount()

+
@@ -695,7 +704,9 @@

Member Function Documentation

- + +

◆ get() [1/3]

+
@@ -708,11 +719,18 @@

Member Function Documentation

Extract a character if one is available.

-
Returns
The character or -1 if a failure occurs. A failure is indicated by the stream state.
+
Returns
The character or -1 if a failure occurs. A failure is indicated by the stream state.
+

Copyright (c) 2011-2018 Bill Greiman This file is part of the SdFat library for SD memory cards.

+

MIT License

+

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

- + +

◆ get() [2/3]

+
@@ -736,7 +754,9 @@

Member Function Documentation

- + +

◆ get() [3/3]

+
@@ -779,7 +799,9 @@

Member Function Documentation

- + +

◆ getline()

+
@@ -823,7 +845,9 @@

Member Function Documentation

- + +

◆ good()

+
@@ -847,7 +871,9 @@

Member Function Documentation

- + +

◆ ignore()

+
@@ -884,7 +910,9 @@

Member Function Documentation

- + +

◆ operator const void *()

+
@@ -904,11 +932,13 @@

Member Function Documentation

-
Returns
null pointer if fail() is true.
+
Returns
null pointer if fail() is true.
- + +

◆ operator!()

+
@@ -928,11 +958,13 @@

Member Function Documentation

-
Returns
true if fail() else false.
+
Returns
true if fail() else false.
- + +

◆ operator>>() [1/19]

+
@@ -963,7 +995,9 @@

Member Function Documentation

- + +

◆ operator>>() [2/19]

+
@@ -994,7 +1028,9 @@

Member Function Documentation

- + +

◆ operator>>() [3/19]

+
@@ -1025,7 +1061,9 @@

Member Function Documentation

- + +

◆ operator>>() [4/19]

+
@@ -1056,7 +1094,9 @@

Member Function Documentation

- + +

◆ operator>>() [5/19]

+
@@ -1087,7 +1127,9 @@

Member Function Documentation

- + +

◆ operator>>() [6/19]

+
@@ -1118,7 +1160,9 @@

Member Function Documentation

- + +

◆ operator>>() [7/19]

+
@@ -1149,7 +1193,9 @@

Member Function Documentation

- + +

◆ operator>>() [8/19]

+
@@ -1180,7 +1226,9 @@

Member Function Documentation

- + +

◆ operator>>() [9/19]

+
@@ -1211,7 +1259,9 @@

Member Function Documentation

- + +

◆ operator>>() [10/19]

+
@@ -1242,7 +1292,9 @@

Member Function Documentation

- + +

◆ operator>>() [11/19]

+
@@ -1273,7 +1325,9 @@

Member Function Documentation

- + +

◆ operator>>() [12/19]

+
@@ -1304,7 +1358,9 @@

Member Function Documentation

- + +

◆ operator>>() [13/19]

+
@@ -1335,7 +1391,9 @@

Member Function Documentation

- + +

◆ operator>>() [14/19]

+
@@ -1366,7 +1424,9 @@

Member Function Documentation

- + +

◆ operator>>() [15/19]

+
@@ -1397,7 +1457,9 @@

Member Function Documentation

- + +

◆ operator>>() [16/19]

+
@@ -1428,7 +1490,9 @@

Member Function Documentation

- + +

◆ operator>>() [17/19]

+
@@ -1459,7 +1523,9 @@

Member Function Documentation

- + +

◆ operator>>() [18/19]

+
@@ -1490,7 +1556,9 @@

Member Function Documentation

- + +

◆ operator>>() [19/19]

+
@@ -1521,7 +1589,9 @@

Member Function Documentation

- + +

◆ peek()

+
@@ -1538,7 +1608,9 @@

Member Function Documentation

- + +

◆ precision() [1/2]

+
@@ -1562,7 +1634,9 @@

Member Function Documentation

- + +

◆ precision() [2/2]

+
@@ -1593,7 +1667,9 @@

Member Function Documentation

- + +

◆ rdstate()

+
@@ -1617,7 +1693,9 @@

Member Function Documentation

- + +

◆ seekg() [1/2]

+
@@ -1648,7 +1726,9 @@

Member Function Documentation

- + +

◆ seekg() [2/2]

+
@@ -1691,7 +1771,9 @@

Member Function Documentation

- + +

◆ setf() [1/2]

+
@@ -1722,7 +1804,9 @@

Member Function Documentation

- + +

◆ setf() [2/2]

+
@@ -1764,7 +1848,9 @@

Member Function Documentation

- + +

◆ setstate()

+
@@ -1795,7 +1881,9 @@

Member Function Documentation

- + +

◆ skipWhite()

+
@@ -1811,7 +1899,9 @@

Member Function Documentation

- + +

◆ tellg()

+
@@ -1835,7 +1925,9 @@

Member Function Documentation

- + +

◆ unsetf()

+
@@ -1866,7 +1958,9 @@

Member Function Documentation

- + +

◆ width() [1/2]

+
@@ -1890,7 +1984,9 @@

Member Function Documentation

- + +

◆ width() [2/2]

+
@@ -1922,7 +2018,9 @@

Member Function Documentation

Member Data Documentation

- + +

◆ adjustfield

+
@@ -1943,7 +2041,9 @@

Member Data Documentation

- + +

◆ app

+
@@ -1964,7 +2064,9 @@

Member Data Documentation

- + +

◆ ate

+
@@ -1985,7 +2087,9 @@

Member Data Documentation

- + +

◆ badbit

+
@@ -2006,7 +2110,9 @@

Member Data Documentation

- + +

◆ basefield

+
@@ -2027,7 +2133,9 @@

Member Data Documentation

- + +

◆ binary

+
@@ -2048,7 +2156,9 @@

Member Data Documentation

- + +

◆ boolalpha

+
@@ -2069,7 +2179,9 @@

Member Data Documentation

- + +

◆ dec

+
@@ -2090,7 +2202,9 @@

Member Data Documentation

- + +

◆ eofbit

+
@@ -2111,7 +2225,9 @@

Member Data Documentation

- + +

◆ failbit

+
@@ -2132,7 +2248,9 @@

Member Data Documentation

- + +

◆ goodbit

+
@@ -2153,7 +2271,9 @@

Member Data Documentation

- + +

◆ hex

+
@@ -2174,7 +2294,9 @@

Member Data Documentation

- + +

◆ in

+
@@ -2195,7 +2317,9 @@

Member Data Documentation

- + +

◆ internal

+
@@ -2216,7 +2340,9 @@

Member Data Documentation

- + +

◆ left

+
@@ -2237,7 +2363,9 @@

Member Data Documentation

- + +

◆ oct

+
@@ -2258,7 +2386,9 @@

Member Data Documentation

- + +

◆ out

+
@@ -2279,7 +2409,9 @@

Member Data Documentation

- + +

◆ right

+
@@ -2300,7 +2432,9 @@

Member Data Documentation

- + +

◆ showbase

+
@@ -2321,7 +2455,9 @@

Member Data Documentation

- + +

◆ showpoint

+
@@ -2342,7 +2478,9 @@

Member Data Documentation

- + +

◆ showpos

+
@@ -2363,7 +2501,9 @@

Member Data Documentation

- + +

◆ skipws

+
@@ -2384,7 +2524,9 @@

Member Data Documentation

- + +

◆ trunc

+
@@ -2405,7 +2547,9 @@

Member Data Documentation

- + +

◆ uppercase

+
@@ -2433,9 +2577,9 @@

Member Data Documentation

diff --git a/extras/html/classobufstream-members.html b/extras/html/classobufstream-members.html index 8a139424..94d498d5 100644 --- a/extras/html/classobufstream-members.html +++ b/extras/html/classobufstream-members.html @@ -3,7 +3,8 @@ - + +SdFat: Member List @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
adjustfieldios_basestatic appios_basestatic ateios_basestatic - bad() const iosinline + bad() constiosinline badbitios_basestatic basefieldios_basestatic beg enum valueios_base @@ -102,17 +82,17 @@ cur enum valueios_base decios_basestatic end enum valueios_base - eof() const iosinline + eof() constiosinline eofbitios_basestatic - fail() const iosinline + fail() constiosinline failbitios_basestatic fill()ios_baseinline fill(char c)ios_baseinline - flags() const ios_baseinline + flags() constios_baseinline flags(fmtflags fl)ios_baseinline flush()ostreaminline fmtflags typedefios_base - good() const iosinline + good() constiosinline goodbitios_basestatic hexios_basestatic inios_basestatic @@ -128,8 +108,8 @@ octios_basestatic off_type typedefios_base openmode typedefios_base - operator const void *() const iosinline - operator!() const iosinline + operator const void *() constiosinline + operator!() constiosinline operator<<(ostream &(*pf)(ostream &str))ostreaminline operator<<(ios_base &(*pf)(ios_base &str))ostreaminline operator<<(bool arg)ostreaminline @@ -152,10 +132,10 @@ ostream() (defined in ostream)ostreaminline outios_basestatic pos_type typedefios_base - precision() const ios_baseinline + precision() constios_baseinline precision(unsigned int n)ios_baseinline put(char ch)ostreaminline - rdstate() const iosinline + rdstate() constiosinline rightios_basestatic seekdir enum nameios_base seekp(pos_type pos)ostreaminline @@ -177,9 +157,9 @@
diff --git a/extras/html/classobufstream.html b/extras/html/classobufstream.html index 8a8d7a6e..bbbcee17 100644 --- a/extras/html/classobufstream.html +++ b/extras/html/classobufstream.html @@ -3,7 +3,8 @@ - + + SdFat: obufstream Class Reference @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
enum  seekdir { beg, cur, end - }  - + } +  typedef uint32_t streamsize   - - + + - - - - + + + + - - + + - - + + @@ -168,10 +148,10 @@ - - - - + + + + @@ -210,14 +190,14 @@ - - + + - - + + @@ -291,7 +271,9 @@

Detailed Description

format a char string

Member Typedef Documentation

- + +

◆ fmtflags

+

Public Member Functions

bool bad () const
 
bool bad () const
 
char * buf ()
 
void clear (iostate state=goodbit)
 
bool eof () const
 
bool fail () const
 
bool eof () const
 
bool fail () const
 
char fill ()
 
char fill (char c)
 
fmtflags flags () const
 
fmtflags flags () const
 
fmtflags flags (fmtflags fl)
 
ostreamflush ()
 
bool good () const
 
bool good () const
 
void init (char *buf, size_t size)
 
size_t length ()
 
 obufstream (char *buf, size_t size)
 
 operator const void * () const
 
bool operator! () const
 
 operator const void * () const
 
bool operator! () const
 
ostreamoperator<< (ostream &(*pf)(ostream &str))
 
ostreamoperator<< (ios_base &(*pf)(ios_base &str))
 
ostreamoperator<< (const __FlashStringHelper *arg)
 
int precision () const
 
int precision () const
 
int precision (unsigned int n)
 
ostreamput (char ch)
 
iostate rdstate () const
 
iostate rdstate () const
 
ostreamseekp (pos_type pos)
 
ostreamseekp (off_type off, seekdir way)
@@ -312,7 +294,9 @@ - + +

◆ iostate

+
@@ -333,7 +317,9 @@ - + +

◆ off_type

+
@@ -354,7 +340,9 @@ - + +

◆ openmode

+
@@ -375,7 +363,9 @@ - + +

◆ pos_type

+
@@ -396,7 +386,9 @@ - + +

◆ streamsize

+
@@ -418,7 +410,9 @@

Member Enumeration Documentation

- + +

◆ seekdir

+
@@ -437,21 +431,20 @@

Member Enumeration Documentation

enumerated type for the direction of relative seeks

- - -
Enumerator
beg  -

seek relative to the beginning of the stream

+
Enumerator
beg 

seek relative to the beginning of the stream

cur  -

seek relative to the current stream position

+
cur 

seek relative to the current stream position

end  -

seek relative to the end of the stream

+
end 

seek relative to the end of the stream

Constructor & Destructor Documentation

- + +

◆ obufstream() [1/2]

+
@@ -475,7 +468,9 @@

Constructor & Destructor Documentation

- + +

◆ obufstream() [2/2]

+
@@ -517,7 +512,9 @@

Constructor & Destructor Documentation

Member Function Documentation

- + +

◆ bad()

+
@@ -541,7 +538,9 @@

Member Function Documentation

- + +

◆ buf()

+
@@ -565,7 +564,9 @@

Member Function Documentation

- + +

◆ clear()

+
@@ -596,7 +597,9 @@

Member Function Documentation

- + +

◆ eof()

+
@@ -618,11 +621,13 @@

Member Function Documentation

Returns
true if end of file has been reached else false.

Warning: An empty file returns false before the first read.

-

Moral: eof() is only useful in combination with fail(), to find out whether EOF was the cause for failure

+

Moral: eof() is only useful in combination with fail(), to find out whether EOF was the cause for failure

- + +

◆ fail()

+
@@ -646,7 +651,9 @@

Member Function Documentation

- + +

◆ fill() [1/2]

+
@@ -670,7 +677,9 @@

Member Function Documentation

- + +

◆ fill() [2/2]

+
@@ -701,7 +710,9 @@

Member Function Documentation

- + +

◆ flags() [1/2]

+
@@ -725,7 +736,9 @@

Member Function Documentation

- + +

◆ flags() [2/2]

+
@@ -756,7 +769,9 @@

Member Function Documentation

- + +

◆ flush()

+
@@ -780,7 +795,9 @@

Member Function Documentation

- + +

◆ good()

+
@@ -804,7 +821,9 @@

Member Function Documentation

- + +

◆ init()

+
@@ -845,7 +864,9 @@

Member Function Documentation

- + +

◆ length()

+
@@ -869,7 +890,9 @@

Member Function Documentation

- + +

◆ operator const void *()

+
@@ -889,11 +912,13 @@

Member Function Documentation

-
Returns
null pointer if fail() is true.
+
Returns
null pointer if fail() is true.
- + +

◆ operator!()

+
@@ -913,11 +938,13 @@

Member Function Documentation

-
Returns
true if fail() else false.
+
Returns
true if fail() else false.
- + +

◆ operator<<() [1/19]

+
@@ -948,7 +975,9 @@

Member Function Documentation

- + +

◆ operator<<() [2/19]

+
@@ -979,7 +1008,9 @@

Member Function Documentation

- + +

◆ operator<<() [3/19]

+
@@ -1010,7 +1041,9 @@

Member Function Documentation

- + +

◆ operator<<() [4/19]

+
@@ -1041,7 +1074,9 @@

Member Function Documentation

- + +

◆ operator<<() [5/19]

+
@@ -1072,7 +1107,9 @@

Member Function Documentation

- + +

◆ operator<<() [6/19]

+
@@ -1103,7 +1140,9 @@

Member Function Documentation

- + +

◆ operator<<() [7/19]

+
@@ -1134,7 +1173,9 @@

Member Function Documentation

- + +

◆ operator<<() [8/19]

+
@@ -1165,7 +1206,9 @@

Member Function Documentation

- + +

◆ operator<<() [9/19]

+
@@ -1196,7 +1239,9 @@

Member Function Documentation

- + +

◆ operator<<() [10/19]

+
@@ -1227,7 +1272,9 @@

Member Function Documentation

- + +

◆ operator<<() [11/19]

+
@@ -1258,7 +1305,9 @@

Member Function Documentation

- + +

◆ operator<<() [12/19]

+
@@ -1289,7 +1338,9 @@

Member Function Documentation

- + +

◆ operator<<() [13/19]

+
@@ -1320,7 +1371,9 @@

Member Function Documentation

- + +

◆ operator<<() [14/19]

+
@@ -1351,7 +1404,9 @@

Member Function Documentation

- + +

◆ operator<<() [15/19]

+
@@ -1382,7 +1437,9 @@

Member Function Documentation

- + +

◆ operator<<() [16/19]

+
@@ -1413,7 +1470,9 @@

Member Function Documentation

- + +

◆ operator<<() [17/19]

+
@@ -1444,7 +1503,9 @@

Member Function Documentation

- + +

◆ operator<<() [18/19]

+
@@ -1475,7 +1536,9 @@

Member Function Documentation

- + +

◆ operator<<() [19/19]

+
@@ -1506,7 +1569,9 @@

Member Function Documentation

- + +

◆ precision() [1/2]

+
@@ -1530,7 +1595,9 @@

Member Function Documentation

- + +

◆ precision() [2/2]

+
@@ -1561,7 +1628,9 @@

Member Function Documentation

- + +

◆ put()

+
@@ -1594,7 +1663,9 @@

Member Function Documentation

- + +

◆ rdstate()

+
@@ -1618,7 +1689,9 @@

Member Function Documentation

- + +

◆ seekp() [1/2]

+
@@ -1649,7 +1722,9 @@

Member Function Documentation

- + +

◆ seekp() [2/2]

+
@@ -1692,7 +1767,9 @@

Member Function Documentation

- + +

◆ setf() [1/2]

+
@@ -1723,7 +1800,9 @@

Member Function Documentation

- + +

◆ setf() [2/2]

+
@@ -1765,7 +1844,9 @@

Member Function Documentation

- + +

◆ setstate()

+
@@ -1796,7 +1877,9 @@

Member Function Documentation

- + +

◆ tellp()

+
@@ -1820,7 +1903,9 @@

Member Function Documentation

- + +

◆ unsetf()

+
@@ -1851,7 +1936,9 @@

Member Function Documentation

- + +

◆ width() [1/2]

+
@@ -1875,7 +1962,9 @@

Member Function Documentation

- + +

◆ width() [2/2]

+
@@ -1907,7 +1996,9 @@

Member Function Documentation

Member Data Documentation

- + +

◆ adjustfield

+
@@ -1928,7 +2019,9 @@

Member Data Documentation

- + +

◆ app

+
@@ -1949,7 +2042,9 @@

Member Data Documentation

- + +

◆ ate

+
@@ -1970,7 +2065,9 @@

Member Data Documentation

- + +

◆ badbit

+
@@ -1991,7 +2088,9 @@

Member Data Documentation

- + +

◆ basefield

+
@@ -2012,7 +2111,9 @@

Member Data Documentation

- + +

◆ binary

+
@@ -2033,7 +2134,9 @@

Member Data Documentation

- + +

◆ boolalpha

+
@@ -2054,7 +2157,9 @@

Member Data Documentation

- + +

◆ dec

+
@@ -2075,7 +2180,9 @@

Member Data Documentation

- + +

◆ eofbit

+
@@ -2096,7 +2203,9 @@

Member Data Documentation

- + +

◆ failbit

+
@@ -2117,7 +2226,9 @@

Member Data Documentation

- + +

◆ goodbit

+
@@ -2138,7 +2249,9 @@

Member Data Documentation

- + +

◆ hex

+
@@ -2159,7 +2272,9 @@

Member Data Documentation

- + +

◆ in

+
@@ -2180,7 +2295,9 @@

Member Data Documentation

- + +

◆ internal

+
@@ -2201,7 +2318,9 @@

Member Data Documentation

- + +

◆ left

+
@@ -2222,7 +2341,9 @@

Member Data Documentation

- + +

◆ oct

+
@@ -2243,7 +2364,9 @@

Member Data Documentation

- + +

◆ out

+
@@ -2264,7 +2387,9 @@

Member Data Documentation

- + +

◆ right

+
@@ -2285,7 +2410,9 @@

Member Data Documentation

- + +

◆ showbase

+
@@ -2306,7 +2433,9 @@

Member Data Documentation

- + +

◆ showpoint

+
@@ -2327,7 +2456,9 @@

Member Data Documentation

- + +

◆ showpos

+
@@ -2348,7 +2479,9 @@

Member Data Documentation

- + +

◆ skipws

+
@@ -2369,7 +2502,9 @@

Member Data Documentation

- + +

◆ trunc

+
@@ -2390,7 +2525,9 @@

Member Data Documentation

- + +

◆ uppercase

+
@@ -2417,9 +2554,9 @@

Member Data Documentation

diff --git a/extras/html/classofstream-members.html b/extras/html/classofstream-members.html index 20f4929a..c4882188 100644 --- a/extras/html/classofstream-members.html +++ b/extras/html/classofstream-members.html @@ -3,7 +3,8 @@ - + +SdFat: Member List @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
adjustfieldios_basestatic appios_basestatic ateios_basestatic - bad() const iosinline + bad() constiosinline badbitios_basestatic basefieldios_basestatic beg enum valueios_base @@ -102,17 +82,17 @@ cur enum valueios_base decios_basestatic end enum valueios_base - eof() const iosinline + eof() constiosinline eofbitios_basestatic - fail() const iosinline + fail() constiosinline failbitios_basestatic fill()ios_baseinline fill(char c)ios_baseinline - flags() const ios_baseinline + flags() constios_baseinline flags(fmtflags fl)ios_baseinline flush()ostreaminline fmtflags typedefios_base - good() const iosinline + good() constiosinline goodbitios_basestatic hexios_basestatic inios_basestatic @@ -127,12 +107,12 @@ ofstream() (defined in ofstream)ofstreaminline ofstream(const char *path, ios::openmode mode=out)ofstreaminlineexplicit open(const char *path, openmode mode=out)ofstreaminline - FatStreamBase::open(FatFileSystem *fs, const char *path, uint8_t oflag)FatFileprivate - FatStreamBase::open(FatFile *dirFile, uint16_t index, uint8_t oflag)FatFileprivate - FatStreamBase::open(FatFile *dirFile, const char *path, uint8_t oflag)FatFileprivate + FatStreamBase::open(FatFileSystem *fs, const char *path, oflag_t oflag)FatFileprivate + FatStreamBase::open(FatFile *dirFile, uint16_t index, oflag_t oflag)FatFileprivate + FatStreamBase::open(FatFile *dirFile, const char *path, oflag_t oflag)FatFileprivate openmode typedefios_base - operator const void *() const iosinline - operator!() const iosinline + operator const void *() constiosinline + operator!() constiosinline operator<<(ostream &(*pf)(ostream &str))ostreaminline operator<<(ios_base &(*pf)(ios_base &str))ostreaminline operator<<(bool arg)ostreaminline @@ -155,10 +135,10 @@ ostream() (defined in ostream)ostreaminline outios_basestatic pos_type typedefios_base - precision() const ios_baseinline + precision() constios_baseinline precision(unsigned int n)ios_baseinline put(char ch)ostreaminline - rdstate() const iosinline + rdstate() constiosinline rightios_basestatic seekdir enum nameios_base seekp(pos_type pos)ostreaminline @@ -180,9 +160,9 @@
diff --git a/extras/html/classofstream.html b/extras/html/classofstream.html index bd059512..a15b9adc 100644 --- a/extras/html/classofstream.html +++ b/extras/html/classofstream.html @@ -3,7 +3,8 @@ - + + SdFat: ofstream Class Reference @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
enum  seekdir { beg, cur, end - }  - + } +  typedef uint32_t streamsize   - - + + - - - - + + + + - - + + - - + + - - - - + + + + @@ -213,14 +193,14 @@ - - + + - - + + @@ -293,17 +273,19 @@

Public Member Functions

bool bad () const
 
bool bad () const
 
void clear (iostate state=goodbit)
 
void close ()
 
bool eof () const
 
bool fail () const
 
bool eof () const
 
bool fail () const
 
char fill ()
 
char fill (char c)
 
fmtflags flags () const
 
fmtflags flags () const
 
fmtflags flags (fmtflags fl)
 
ostreamflush ()
 
bool good () const
 
bool good () const
 
bool is_open ()
 
 ofstream (const char *path, ios::openmode mode=out)
 
void open (const char *path, openmode mode=out)
 
 operator const void * () const
 
bool operator! () const
 
 operator const void * () const
 
bool operator! () const
 
ostreamoperator<< (ostream &(*pf)(ostream &str))
 
ostreamoperator<< (ios_base &(*pf)(ios_base &str))
 
ostreamoperator<< (const __FlashStringHelper *arg)
 
int precision () const
 
int precision () const
 
int precision (unsigned int n)
 
ostreamput (char ch)
 
iostate rdstate () const
 
iostate rdstate () const
 
ostreamseekp (pos_type pos)
 
ostreamseekp (off_type off, seekdir way)
- - - - - - + + + + + +

Private Member Functions

bool open (FatFileSystem *fs, const char *path, uint8_t oflag)
 
bool open (FatFile *dirFile, uint16_t index, uint8_t oflag)
 
bool open (FatFile *dirFile, const char *path, uint8_t oflag)
 
bool open (FatFileSystem *fs, const char *path, oflag_t oflag)
 
bool open (FatFile *dirFile, uint16_t index, oflag_t oflag)
 
bool open (FatFile *dirFile, const char *path, oflag_t oflag)
 

Detailed Description

file output stream.

Member Typedef Documentation

- + +

◆ fmtflags

+
@@ -324,7 +306,9 @@ - + +

◆ iostate

+
@@ -345,7 +329,9 @@ - + +

◆ off_type

+
@@ -366,7 +352,9 @@ - + +

◆ openmode

+
@@ -387,7 +375,9 @@ - + +

◆ pos_type

+
@@ -408,7 +398,9 @@ - + +

◆ streamsize

+
@@ -430,7 +422,9 @@

Member Enumeration Documentation

- + +

◆ seekdir

+
@@ -449,21 +443,20 @@

Member Enumeration Documentation

enumerated type for the direction of relative seeks

- - -
Enumerator
beg  -

seek relative to the beginning of the stream

+
Enumerator
beg 

seek relative to the beginning of the stream

cur  -

seek relative to the current stream position

+
cur 

seek relative to the current stream position

end  -

seek relative to the end of the stream

+
end 

seek relative to the end of the stream

Constructor & Destructor Documentation

- + +

◆ ofstream()

+
@@ -505,7 +498,9 @@

Constructor & Destructor Documentation

Member Function Documentation

- + +

◆ bad()

+
@@ -529,7 +524,9 @@

Member Function Documentation

- + +

◆ clear()

+
@@ -559,7 +556,9 @@

Member Function Documentation

- + +

◆ close()

+
@@ -583,7 +582,9 @@

Member Function Documentation

- + +

◆ eof()

+
@@ -605,11 +606,13 @@

Member Function Documentation

Returns
true if end of file has been reached else false.

Warning: An empty file returns false before the first read.

-

Moral: eof() is only useful in combination with fail(), to find out whether EOF was the cause for failure

+

Moral: eof() is only useful in combination with fail(), to find out whether EOF was the cause for failure

- + +

◆ fail()

+
@@ -633,7 +636,9 @@

Member Function Documentation

- + +

◆ fill() [1/2]

+
@@ -657,7 +662,9 @@

Member Function Documentation

- + +

◆ fill() [2/2]

+
@@ -688,7 +695,9 @@

Member Function Documentation

- + +

◆ flags() [1/2]

+
@@ -712,7 +721,9 @@

Member Function Documentation

- + +

◆ flags() [2/2]

+
@@ -743,7 +754,9 @@

Member Function Documentation

- + +

◆ flush()

+
@@ -767,7 +780,9 @@

Member Function Documentation

- + +

◆ good()

+
@@ -791,7 +806,9 @@

Member Function Documentation

- + +

◆ is_open()

+
@@ -815,7 +832,9 @@

Member Function Documentation

- + +

◆ open()

+
@@ -857,7 +876,9 @@

Member Function Documentation

- + +

◆ operator const void *()

+
@@ -877,11 +898,13 @@

Member Function Documentation

-
Returns
null pointer if fail() is true.
+
Returns
null pointer if fail() is true.
- + +

◆ operator!()

+
@@ -901,11 +924,13 @@

Member Function Documentation

-
Returns
true if fail() else false.
+
Returns
true if fail() else false.
- + +

◆ operator<<() [1/19]

+
@@ -936,7 +961,9 @@

Member Function Documentation

- + +

◆ operator<<() [2/19]

+
@@ -967,7 +994,9 @@

Member Function Documentation

- + +

◆ operator<<() [3/19]

+
@@ -998,7 +1027,9 @@

Member Function Documentation

- + +

◆ operator<<() [4/19]

+
@@ -1029,7 +1060,9 @@

Member Function Documentation

- + +

◆ operator<<() [5/19]

+
@@ -1060,7 +1093,9 @@

Member Function Documentation

- + +

◆ operator<<() [6/19]

+
@@ -1091,7 +1126,9 @@

Member Function Documentation

- + +

◆ operator<<() [7/19]

+
@@ -1122,7 +1159,9 @@

Member Function Documentation

- + +

◆ operator<<() [8/19]

+
@@ -1153,7 +1192,9 @@

Member Function Documentation

- + +

◆ operator<<() [9/19]

+
@@ -1184,7 +1225,9 @@

Member Function Documentation

- + +

◆ operator<<() [10/19]

+
@@ -1215,7 +1258,9 @@

Member Function Documentation

- + +

◆ operator<<() [11/19]

+
@@ -1246,7 +1291,9 @@

Member Function Documentation

- + +

◆ operator<<() [12/19]

+
@@ -1277,7 +1324,9 @@

Member Function Documentation

- + +

◆ operator<<() [13/19]

+
@@ -1308,7 +1357,9 @@

Member Function Documentation

- + +

◆ operator<<() [14/19]

+
@@ -1339,7 +1390,9 @@

Member Function Documentation

- + +

◆ operator<<() [15/19]

+
@@ -1370,7 +1423,9 @@

Member Function Documentation

- + +

◆ operator<<() [16/19]

+
@@ -1401,7 +1456,9 @@

Member Function Documentation

- + +

◆ operator<<() [17/19]

+
@@ -1432,7 +1489,9 @@

Member Function Documentation

- + +

◆ operator<<() [18/19]

+
@@ -1463,7 +1522,9 @@

Member Function Documentation

- + +

◆ operator<<() [19/19]

+
@@ -1494,7 +1555,9 @@

Member Function Documentation

- + +

◆ precision() [1/2]

+
@@ -1518,7 +1581,9 @@

Member Function Documentation

- + +

◆ precision() [2/2]

+
@@ -1549,7 +1614,9 @@

Member Function Documentation

- + +

◆ put()

+
@@ -1582,7 +1649,9 @@

Member Function Documentation

- + +

◆ rdstate()

+
@@ -1606,7 +1675,9 @@

Member Function Documentation

- + +

◆ seekp() [1/2]

+
@@ -1637,7 +1708,9 @@

Member Function Documentation

- + +

◆ seekp() [2/2]

+
@@ -1680,7 +1753,9 @@

Member Function Documentation

- + +

◆ setf() [1/2]

+
@@ -1711,7 +1786,9 @@

Member Function Documentation

- + +

◆ setf() [2/2]

+
@@ -1753,7 +1830,9 @@

Member Function Documentation

- + +

◆ setstate()

+
@@ -1784,7 +1863,9 @@

Member Function Documentation

- + +

◆ tellp()

+
@@ -1808,7 +1889,9 @@

Member Function Documentation

- + +

◆ unsetf()

+
@@ -1839,7 +1922,9 @@

Member Function Documentation

- + +

◆ width() [1/2]

+
@@ -1863,7 +1948,9 @@

Member Function Documentation

- + +

◆ width() [2/2]

+
@@ -1895,7 +1982,9 @@

Member Function Documentation

Member Data Documentation

- + +

◆ adjustfield

+
@@ -1916,7 +2005,9 @@

Member Data Documentation

- + +

◆ app

+
@@ -1937,7 +2028,9 @@

Member Data Documentation

- + +

◆ ate

+
@@ -1958,7 +2051,9 @@

Member Data Documentation

- + +

◆ badbit

+
@@ -1979,7 +2074,9 @@

Member Data Documentation

- + +

◆ basefield

+
@@ -2000,7 +2097,9 @@

Member Data Documentation

- + +

◆ binary

+
@@ -2021,7 +2120,9 @@

Member Data Documentation

- + +

◆ boolalpha

+
@@ -2042,7 +2143,9 @@

Member Data Documentation

- + +

◆ dec

+
@@ -2063,7 +2166,9 @@

Member Data Documentation

- + +

◆ eofbit

+
@@ -2084,7 +2189,9 @@

Member Data Documentation

- + +

◆ failbit

+
@@ -2105,7 +2212,9 @@

Member Data Documentation

- + +

◆ goodbit

+
@@ -2126,7 +2235,9 @@

Member Data Documentation

- + +

◆ hex

+
@@ -2147,7 +2258,9 @@

Member Data Documentation

- + +

◆ in

+
@@ -2168,7 +2281,9 @@

Member Data Documentation

- + +

◆ internal

+
@@ -2189,7 +2304,9 @@

Member Data Documentation

- + +

◆ left

+
@@ -2210,7 +2327,9 @@

Member Data Documentation

- + +

◆ oct

+
@@ -2231,7 +2350,9 @@

Member Data Documentation

- + +

◆ out

+
@@ -2252,7 +2373,9 @@

Member Data Documentation

- + +

◆ right

+
@@ -2273,7 +2396,9 @@

Member Data Documentation

- + +

◆ showbase

+
@@ -2294,7 +2419,9 @@

Member Data Documentation

- + +

◆ showpoint

+
@@ -2315,7 +2442,9 @@

Member Data Documentation

- + +

◆ showpos

+
@@ -2336,7 +2465,9 @@

Member Data Documentation

- + +

◆ skipws

+
@@ -2357,7 +2488,9 @@

Member Data Documentation

- + +

◆ trunc

+
@@ -2378,7 +2511,9 @@

Member Data Documentation

- + +

◆ uppercase

+
@@ -2405,9 +2540,9 @@

Member Data Documentation

diff --git a/extras/html/classostream-members.html b/extras/html/classostream-members.html index c0238d2f..ae7fe1b1 100644 --- a/extras/html/classostream-members.html +++ b/extras/html/classostream-members.html @@ -3,7 +3,8 @@ - + +SdFat: Member List @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
adjustfieldios_basestatic appios_basestatic ateios_basestatic - bad() const iosinline + bad() constiosinline badbitios_basestatic basefieldios_basestatic beg enum valueios_base @@ -101,17 +81,17 @@ cur enum valueios_base decios_basestatic end enum valueios_base - eof() const iosinline + eof() constiosinline eofbitios_basestatic - fail() const iosinline + fail() constiosinline failbitios_basestatic fill()ios_baseinline fill(char c)ios_baseinline - flags() const ios_baseinline + flags() constios_baseinline flags(fmtflags fl)ios_baseinline flush()ostreaminline fmtflags typedefios_base - good() const iosinline + good() constiosinline goodbitios_basestatic hexios_basestatic inios_basestatic @@ -123,8 +103,8 @@ octios_basestatic off_type typedefios_base openmode typedefios_base - operator const void *() const iosinline - operator!() const iosinline + operator const void *() constiosinline + operator!() constiosinline operator<<(ostream &(*pf)(ostream &str))ostreaminline operator<<(ios_base &(*pf)(ios_base &str))ostreaminline operator<<(bool arg)ostreaminline @@ -147,10 +127,10 @@ ostream() (defined in ostream)ostreaminline outios_basestatic pos_type typedefios_base - precision() const ios_baseinline + precision() constios_baseinline precision(unsigned int n)ios_baseinline put(char ch)ostreaminline - rdstate() const iosinline + rdstate() constiosinline rightios_basestatic seekdir enum nameios_base seekp(pos_type pos)ostreaminline @@ -172,9 +152,9 @@
diff --git a/extras/html/classostream.html b/extras/html/classostream.html index d90519e8..adc8b664 100644 --- a/extras/html/classostream.html +++ b/extras/html/classostream.html @@ -3,7 +3,8 @@ - + + SdFat: ostream Class Reference @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
enum  seekdir { beg, cur, end - }  - + } +  typedef uint32_t streamsize   - - + + - - - - + + + + - - + + - - - - - - + + + + + + @@ -203,14 +183,14 @@ - - + + - - + + @@ -284,7 +264,9 @@

Detailed Description

Output Stream.

Member Typedef Documentation

- + +

◆ fmtflags

+

Public Member Functions

bool bad () const
 
bool bad () const
 
void clear (iostate state=goodbit)
 
bool eof () const
 
bool fail () const
 
bool eof () const
 
bool fail () const
 
char fill ()
 
char fill (char c)
 
fmtflags flags () const
 
fmtflags flags () const
 
fmtflags flags (fmtflags fl)
 
ostreamflush ()
 
bool good () const
 
 operator const void * () const
 
bool operator! () const
 
bool good () const
 
 operator const void * () const
 
bool operator! () const
 
ostreamoperator<< (ostream &(*pf)(ostream &str))
 
ostreamoperator<< (ios_base &(*pf)(ios_base &str))
 
ostreamoperator<< (const __FlashStringHelper *arg)
 
int precision () const
 
int precision () const
 
int precision (unsigned int n)
 
ostreamput (char ch)
 
iostate rdstate () const
 
iostate rdstate () const
 
ostreamseekp (pos_type pos)
 
ostreamseekp (off_type off, seekdir way)
@@ -305,7 +287,9 @@ - + +

◆ iostate

+
@@ -326,7 +310,9 @@ - + +

◆ off_type

+
@@ -347,7 +333,9 @@ - + +

◆ openmode

+
@@ -368,7 +356,9 @@ - + +

◆ pos_type

+
@@ -389,7 +379,9 @@ - + +

◆ streamsize

+
@@ -411,7 +403,9 @@

Member Enumeration Documentation

- + +

◆ seekdir

+
@@ -430,21 +424,20 @@

Member Enumeration Documentation

enumerated type for the direction of relative seeks

- - -
Enumerator
beg  -

seek relative to the beginning of the stream

+
Enumerator
beg 

seek relative to the beginning of the stream

cur  -

seek relative to the current stream position

+
cur 

seek relative to the current stream position

end  -

seek relative to the end of the stream

+
end 

seek relative to the end of the stream

Member Function Documentation

- + +

◆ bad()

+
@@ -468,7 +461,9 @@

Member Function Documentation

- + +

◆ clear()

+
@@ -499,7 +494,9 @@

Member Function Documentation

- + +

◆ eof()

+
@@ -521,11 +518,13 @@

Member Function Documentation

Returns
true if end of file has been reached else false.

Warning: An empty file returns false before the first read.

-

Moral: eof() is only useful in combination with fail(), to find out whether EOF was the cause for failure

+

Moral: eof() is only useful in combination with fail(), to find out whether EOF was the cause for failure

- + +

◆ fail()

+
@@ -549,7 +548,9 @@

Member Function Documentation

- + +

◆ fill() [1/2]

+
@@ -573,7 +574,9 @@

Member Function Documentation

- + +

◆ fill() [2/2]

+
@@ -604,7 +607,9 @@

Member Function Documentation

- + +

◆ flags() [1/2]

+
@@ -628,7 +633,9 @@

Member Function Documentation

- + +

◆ flags() [2/2]

+
@@ -659,7 +666,9 @@

Member Function Documentation

- + +

◆ flush()

+
@@ -683,7 +692,9 @@

Member Function Documentation

- + +

◆ good()

+
@@ -707,7 +718,9 @@

Member Function Documentation

- + +

◆ operator const void *()

+
@@ -727,11 +740,13 @@

Member Function Documentation

-
Returns
null pointer if fail() is true.
+
Returns
null pointer if fail() is true.
- + +

◆ operator!()

+
@@ -751,11 +766,13 @@

Member Function Documentation

-
Returns
true if fail() else false.
+
Returns
true if fail() else false.
- + +

◆ operator<<() [1/19]

+
@@ -786,7 +803,9 @@

Member Function Documentation

- + +

◆ operator<<() [2/19]

+
@@ -817,7 +836,9 @@

Member Function Documentation

- + +

◆ operator<<() [3/19]

+
@@ -848,7 +869,9 @@

Member Function Documentation

- + +

◆ operator<<() [4/19]

+
@@ -879,7 +902,9 @@

Member Function Documentation

- + +

◆ operator<<() [5/19]

+
@@ -910,7 +935,9 @@

Member Function Documentation

- + +

◆ operator<<() [6/19]

+
@@ -941,7 +968,9 @@

Member Function Documentation

- + +

◆ operator<<() [7/19]

+
@@ -972,7 +1001,9 @@

Member Function Documentation

- + +

◆ operator<<() [8/19]

+
@@ -1003,7 +1034,9 @@

Member Function Documentation

- + +

◆ operator<<() [9/19]

+
@@ -1034,7 +1067,9 @@

Member Function Documentation

- + +

◆ operator<<() [10/19]

+
@@ -1065,7 +1100,9 @@

Member Function Documentation

- + +

◆ operator<<() [11/19]

+
@@ -1096,7 +1133,9 @@

Member Function Documentation

- + +

◆ operator<<() [12/19]

+
@@ -1127,7 +1166,9 @@

Member Function Documentation

- + +

◆ operator<<() [13/19]

+
@@ -1158,7 +1199,9 @@

Member Function Documentation

- + +

◆ operator<<() [14/19]

+
@@ -1189,7 +1232,9 @@

Member Function Documentation

- + +

◆ operator<<() [15/19]

+
@@ -1220,7 +1265,9 @@

Member Function Documentation

- + +

◆ operator<<() [16/19]

+
@@ -1251,7 +1298,9 @@

Member Function Documentation

- + +

◆ operator<<() [17/19]

+
@@ -1282,7 +1331,9 @@

Member Function Documentation

- + +

◆ operator<<() [18/19]

+
@@ -1313,7 +1364,9 @@

Member Function Documentation

- + +

◆ operator<<() [19/19]

+
@@ -1344,7 +1397,9 @@

Member Function Documentation

- + +

◆ precision() [1/2]

+
@@ -1368,7 +1423,9 @@

Member Function Documentation

- + +

◆ precision() [2/2]

+
@@ -1399,7 +1456,9 @@

Member Function Documentation

- + +

◆ put()

+
@@ -1432,7 +1491,9 @@

Member Function Documentation

- + +

◆ rdstate()

+
@@ -1456,7 +1517,9 @@

Member Function Documentation

- + +

◆ seekp() [1/2]

+
@@ -1487,7 +1550,9 @@

Member Function Documentation

- + +

◆ seekp() [2/2]

+
@@ -1530,7 +1595,9 @@

Member Function Documentation

- + +

◆ setf() [1/2]

+
@@ -1561,7 +1628,9 @@

Member Function Documentation

- + +

◆ setf() [2/2]

+
@@ -1603,7 +1672,9 @@

Member Function Documentation

- + +

◆ setstate()

+
@@ -1634,7 +1705,9 @@

Member Function Documentation

- + +

◆ tellp()

+
@@ -1658,7 +1731,9 @@

Member Function Documentation

- + +

◆ unsetf()

+
@@ -1689,7 +1764,9 @@

Member Function Documentation

- + +

◆ width() [1/2]

+
@@ -1713,7 +1790,9 @@

Member Function Documentation

- + +

◆ width() [2/2]

+
@@ -1745,7 +1824,9 @@

Member Function Documentation

Member Data Documentation

- + +

◆ adjustfield

+
@@ -1766,7 +1847,9 @@

Member Data Documentation

- + +

◆ app

+
@@ -1787,7 +1870,9 @@

Member Data Documentation

- + +

◆ ate

+
@@ -1808,7 +1893,9 @@

Member Data Documentation

- + +

◆ badbit

+
@@ -1829,7 +1916,9 @@

Member Data Documentation

- + +

◆ basefield

+
@@ -1850,7 +1939,9 @@

Member Data Documentation

- + +

◆ binary

+
@@ -1871,7 +1962,9 @@

Member Data Documentation

- + +

◆ boolalpha

+
@@ -1892,7 +1985,9 @@

Member Data Documentation

- + +

◆ dec

+
@@ -1913,7 +2008,9 @@

Member Data Documentation

- + +

◆ eofbit

+
@@ -1934,7 +2031,9 @@

Member Data Documentation

- + +

◆ failbit

+
@@ -1955,7 +2054,9 @@

Member Data Documentation

- + +

◆ goodbit

+
@@ -1976,7 +2077,9 @@

Member Data Documentation

- + +

◆ hex

+
@@ -1997,7 +2100,9 @@

Member Data Documentation

- + +

◆ in

+
@@ -2018,7 +2123,9 @@

Member Data Documentation

- + +

◆ internal

+
@@ -2039,7 +2146,9 @@

Member Data Documentation

- + +

◆ left

+
@@ -2060,7 +2169,9 @@

Member Data Documentation

- + +

◆ oct

+
@@ -2081,7 +2192,9 @@

Member Data Documentation

- + +

◆ out

+
@@ -2102,7 +2215,9 @@

Member Data Documentation

- + +

◆ right

+
@@ -2123,7 +2238,9 @@

Member Data Documentation

- + +

◆ showbase

+
@@ -2144,7 +2261,9 @@

Member Data Documentation

- + +

◆ showpoint

+
@@ -2165,7 +2284,9 @@

Member Data Documentation

- + +

◆ showpos

+
@@ -2186,7 +2307,9 @@

Member Data Documentation

- + +

◆ skipws

+
@@ -2207,7 +2330,9 @@

Member Data Documentation

- + +

◆ trunc

+
@@ -2228,7 +2353,9 @@

Member Data Documentation

- + +

◆ uppercase

+
@@ -2256,9 +2383,9 @@

Member Data Documentation

diff --git a/extras/html/dir_000005_000006.html b/extras/html/dir_000005_000006.html new file mode 100644 index 00000000..d943d2bf --- /dev/null +++ b/extras/html/dir_000005_000006.html @@ -0,0 +1,76 @@ + + + + + + + +SdFat: Arduino/libraries/SdFat/src -> FatLib Relation + + + + + + + + + +
+
+
+ + + + + +
+
SdFat +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+

src → FatLib Relation

File in Arduino/libraries/SdFat/srcIncludes file in Arduino/libraries/SdFat/src/FatLib
sdios.hArduinoStream.h
sdios.hfstream.h
+ + + + diff --git a/extras/html/dir_000004_000006.html b/extras/html/dir_000005_000007.html similarity index 69% rename from extras/html/dir_000004_000006.html rename to extras/html/dir_000005_000007.html index 221cbdb1..99583f95 100644 --- a/extras/html/dir_000004_000006.html +++ b/extras/html/dir_000005_000007.html @@ -3,7 +3,8 @@ - + + SdFat: Arduino/libraries/SdFat/src -> SdCard Relation @@ -11,9 +12,6 @@ - @@ -31,33 +29,22 @@
- + - + + + +
src → SdCard Relation
File in Arduino/libraries/SdFat/srcIncludes file in Arduino/libraries/SdFat/src/SdCard
BlockDriver.hSdSpiCard.h
diff --git a/extras/html/dir_1281b15c327061056ab3b326e90c50cf.html b/extras/html/dir_1281b15c327061056ab3b326e90c50cf.html index bd9af576..5d15732a 100644 --- a/extras/html/dir_1281b15c327061056ab3b326e90c50cf.html +++ b/extras/html/dir_1281b15c327061056ab3b326e90c50cf.html @@ -3,7 +3,8 @@ - + + SdFat: Arduino/libraries/SdFat Directory Reference @@ -11,9 +12,6 @@ - @@ -31,33 +29,22 @@
- + - + + + +
Arduino/libraries/SdFat
- + - - + +
- - - +

Directories

directory  MainPage
 
directory  src
directory  extras
 
diff --git a/extras/html/dir_1281b15c327061056ab3b326e90c50cf_dep.png b/extras/html/dir_1281b15c327061056ab3b326e90c50cf_dep.png index 15491fbb..88ec2e79 100644 Binary files a/extras/html/dir_1281b15c327061056ab3b326e90c50cf_dep.png and b/extras/html/dir_1281b15c327061056ab3b326e90c50cf_dep.png differ diff --git a/extras/html/dir_353ccaa5c7dda9a5be3e56b5f40a9e48.html b/extras/html/dir_353ccaa5c7dda9a5be3e56b5f40a9e48.html new file mode 100644 index 00000000..3185a044 --- /dev/null +++ b/extras/html/dir_353ccaa5c7dda9a5be3e56b5f40a9e48.html @@ -0,0 +1,80 @@ + + + + + + + +SdFat: Arduino/libraries/SdFat/extras/MainPage Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
SdFat +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
MainPage Directory Reference
+
+
+
+ + + + diff --git a/extras/html/dir_481cc946b8a81b8d9363a4aad6201160.html b/extras/html/dir_481cc946b8a81b8d9363a4aad6201160.html index 48ffe015..bf02e75b 100644 --- a/extras/html/dir_481cc946b8a81b8d9363a4aad6201160.html +++ b/extras/html/dir_481cc946b8a81b8d9363a4aad6201160.html @@ -3,7 +3,8 @@ - + + SdFat: Arduino/libraries Directory Reference @@ -11,9 +12,6 @@ - @@ -31,33 +29,22 @@
- + - + + + +
- - - - -

-Directories

directory  SdFat
 
diff --git a/extras/html/dir_63fabcaba1b3b939579f46003349a6c5_dep.png b/extras/html/dir_63fabcaba1b3b939579f46003349a6c5_dep.png deleted file mode 100644 index 61b4195d..00000000 Binary files a/extras/html/dir_63fabcaba1b3b939579f46003349a6c5_dep.png and /dev/null differ diff --git a/extras/html/dir_7e472674a7b7d2590a789f197241f95f.html b/extras/html/dir_7e472674a7b7d2590a789f197241f95f.html index 7e61463b..92693b4b 100644 --- a/extras/html/dir_7e472674a7b7d2590a789f197241f95f.html +++ b/extras/html/dir_7e472674a7b7d2590a789f197241f95f.html @@ -3,7 +3,8 @@ - + + SdFat: Arduino/libraries/SdFat/src/FatLib Directory Reference @@ -11,9 +12,6 @@ - @@ -31,33 +29,22 @@
- + - + + + +
file  ArduinoStream.h  ArduinoInStream and ArduinoOutStream classes.
  -file  BaseBlockDriver.h -  file  bufstream.h  ibufstream and obufstream classes
  -file  FatApiConstants.h -  -file  FatFile.cpp -  file  FatFile.h  FatFile class.
  -file  FatFileLFN.cpp -  -file  FatFilePrint.cpp -  -file  FatFileSFN.cpp -  file  FatFileSystem.h  FatFileSystem class.
  -file  FatLib.h -  file  FatLibConfig.h  configuration definitions
  file  FatStructs.h  FAT file structures.
  -file  FatVolume.cpp -  file  FatVolume.h  FatVolume class.
  -file  FmtNumber.cpp -  -file  FmtNumber.h -  -file  fstream.cpp -  file  fstream.h  fstream, ifstream, and ofstream classes
  @@ -149,18 +114,12 @@ file  iostream.h  iostream class
  -file  istream.cpp -  file  istream.h  istream class
  -file  ostream.cpp -  file  ostream.h  ostream class
  -file  StdioStream.cpp -  file  StdioStream.h  StdioStream class.
  @@ -168,9 +127,9 @@
diff --git a/extras/html/dir_a70af2fb8f1edf8b7124f41d82dbf480.html b/extras/html/dir_a70af2fb8f1edf8b7124f41d82dbf480.html index d989928b..12ca0bf3 100644 --- a/extras/html/dir_a70af2fb8f1edf8b7124f41d82dbf480.html +++ b/extras/html/dir_a70af2fb8f1edf8b7124f41d82dbf480.html @@ -3,7 +3,8 @@ - + + SdFat: Arduino/libraries/SdFat/src/SdCard Directory Reference @@ -11,9 +12,6 @@ - @@ -31,33 +29,22 @@ - + - + + + +

Files

-file  SdioCard.h -  -file  SdioTeensy.cpp -  -file  SdSpiCard.cpp -  file  SdSpiCard.h  SdSpiCard class for V2 SD/SDHC cards.
  -file  SdSpiCardEX.cpp
diff --git a/extras/html/dir_a991eec27578c865874ede3d8ec657c2.html b/extras/html/dir_a991eec27578c865874ede3d8ec657c2.html index 5194bad1..3b955f0e 100644 --- a/extras/html/dir_a991eec27578c865874ede3d8ec657c2.html +++ b/extras/html/dir_a991eec27578c865874ede3d8ec657c2.html @@ -3,7 +3,8 @@ - + + SdFat: Arduino Directory Reference @@ -11,9 +12,6 @@ - @@ -31,33 +29,22 @@ - + - + + + +
- - - - -

-Directories

directory  libraries
 
diff --git a/extras/html/dir_c18d6c86f7b0afecac5c3a8a9885031e.html b/extras/html/dir_c18d6c86f7b0afecac5c3a8a9885031e.html index 27a61b47..143c2f52 100644 --- a/extras/html/dir_c18d6c86f7b0afecac5c3a8a9885031e.html +++ b/extras/html/dir_c18d6c86f7b0afecac5c3a8a9885031e.html @@ -3,7 +3,8 @@ - + + SdFat: Arduino/libraries/SdFat/src Directory Reference @@ -11,9 +12,6 @@ - @@ -31,33 +29,22 @@ - + - + + + +
Arduino/libraries/SdFat/src
+ + - - + @@ -97,10 +85,6 @@ - - - -

Directories

directory  FatLib
 
directory  SdCard
 
@@ -110,8 +94,6 @@ - - @@ -121,6 +103,9 @@ + + + @@ -128,9 +113,9 @@ diff --git a/extras/html/dir_c18d6c86f7b0afecac5c3a8a9885031e_dep.png b/extras/html/dir_c18d6c86f7b0afecac5c3a8a9885031e_dep.png index 52514a49..e19e4c47 100644 Binary files a/extras/html/dir_c18d6c86f7b0afecac5c3a8a9885031e_dep.png and b/extras/html/dir_c18d6c86f7b0afecac5c3a8a9885031e_dep.png differ diff --git a/extras/html/dir_63fabcaba1b3b939579f46003349a6c5.html b/extras/html/dir_d75e759b510f73394903d99f52f52a38.html similarity index 50% rename from extras/html/dir_63fabcaba1b3b939579f46003349a6c5.html rename to extras/html/dir_d75e759b510f73394903d99f52f52a38.html index 68f2bcdf..ff3fd514 100644 --- a/extras/html/dir_63fabcaba1b3b939579f46003349a6c5.html +++ b/extras/html/dir_d75e759b510f73394903d99f52f52a38.html @@ -3,17 +3,15 @@ - -SdFat: Arduino/libraries/SdFat/MainPage Directory Reference + + +SdFat: Arduino/libraries/SdFat/extras Directory Reference - @@ -31,33 +29,22 @@

Files

file  FreeStack.h
 FreeStack() function.
 
file  MinimumSerial.cpp
 
file  MinimumSerial.h
 Minimal AVR Serial driver.
 
file  SdFatConfig.h
 configuration definitions
 
file  sdios.h
 C++ IO Streams features.
 
file  SysCall.h
 SysCall class.
 
- + - + + + +
-
MainPage Directory Reference
+
extras Directory Reference
-
-Directory dependency graph for MainPage:
-
-
Arduino/libraries/SdFat/MainPage
- - - - -
- - - +

-Files

file  SdFatmainpage.h
 

+Directories

diff --git a/extras/html/doxygen.css b/extras/html/doxygen.css index b2c94ac2..266c8b3a 100644 --- a/extras/html/doxygen.css +++ b/extras/html/doxygen.css @@ -1,9 +1,13 @@ -/* The standard CSS for doxygen 1.8.10 */ +/* The standard CSS for doxygen 1.8.14 */ body, table, div, p, dl { font: 400 14px/22px Roboto,sans-serif; } +p.reference, p.definition { + font: 400 14px/22px Roboto,sans-serif; +} + /* @group Heading Levels */ h1.groupheader { @@ -173,7 +177,7 @@ pre.fragment { } div.fragment { - padding: 4px 6px; + padding: 0px; margin: 4px 8px 4px 2px; background-color: #FBFCFD; border: 1px solid #C4CFE5; @@ -206,6 +210,11 @@ div.line { transition-duration: 0.5s; } +div.line:after { + content:"\000A"; + white-space: pre; +} + div.line.glow { background-color: cyan; box-shadow: 0 0 10px cyan; @@ -227,6 +236,15 @@ span.lineno a:hover { background-color: #C8C8C8; } +.lineno { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + div.ah, span.ah { background-color: black; font-weight: bold; @@ -242,7 +260,7 @@ div.ah, span.ah { -webkit-box-shadow: 2px 2px 3px #999; -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); - background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000); + background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%); } div.classindex ul { @@ -496,6 +514,29 @@ table.memberdecls { /* Styles for detailed member documentation */ +.memtitle { + padding: 8px; + border-top: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + border-top-right-radius: 4px; + border-top-left-radius: 4px; + margin-bottom: -1px; + background-image: url('nav_f.png'); + background-repeat: repeat-x; + background-color: #E2E8F2; + line-height: 1.25; + font-weight: 300; + float:left; +} + +.permalink +{ + font-size: 65%; + display: inline-block; + vertical-align: middle; +} + .memtemplate { font-size: 80%; color: #4665A2; @@ -534,7 +575,7 @@ table.memberdecls { } .memname { - font-weight: bold; + font-weight: 400; margin-left: 6px; } @@ -550,24 +591,24 @@ table.memberdecls { color: #253555; font-weight: bold; text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); - background-image:url('nav_f.png'); - background-repeat:repeat-x; - background-color: #E2E8F2; + background-color: #DFE5F1; /* opera specific markup */ box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); border-top-right-radius: 4px; - border-top-left-radius: 4px; /* firefox specific markup */ -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; -moz-border-radius-topright: 4px; - -moz-border-radius-topleft: 4px; /* webkit specific markup */ -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); -webkit-border-top-right-radius: 4px; - -webkit-border-top-left-radius: 4px; } +.overload { + font-family: "courier new",courier,monospace; + font-size: 65%; +} + .memdoc, dl.reflist dd { border-bottom: 1px solid #A8B8D9; border-left: 1px solid #A8B8D9; @@ -832,6 +873,10 @@ address { color: #2A3D61; } +table.doxtable caption { + caption-side: top; +} + table.doxtable { border-collapse:collapse; margin-top: 4px; @@ -905,6 +950,7 @@ table.fieldtable { padding-bottom: 4px; padding-top: 5px; text-align:left; + font-weight: 400; -moz-border-radius-topleft: 4px; -moz-border-radius-topright: 4px; -webkit-border-top-left-radius: 4px; @@ -997,6 +1043,18 @@ div.summary a white-space: nowrap; } +table.classindex +{ + margin: 10px; + white-space: nowrap; + margin-left: 3%; + margin-right: 3%; + width: 94%; + border: 0; + border-spacing: 0; + padding: 0; +} + div.ingroups { font-size: 8pt; @@ -1157,6 +1215,11 @@ dl.section dd { text-align: center; } +.plantumlgraph +{ + text-align: center; +} + .diagraph { text-align: center; @@ -1196,7 +1259,7 @@ div.toc { border-radius: 7px 7px 7px 7px; float: right; height: auto; - margin: 0 20px 10px 10px; + margin: 0 8px 10px 10px; width: 200px; } @@ -1452,3 +1515,82 @@ tr.heading h2 { } } +/* @group Markdown */ + +/* +table.markdownTable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.markdownTable td, table.markdownTable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.markdownTableHead tr { +} + +table.markdownTableBodyLeft td, table.markdownTable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +th.markdownTableHeadLeft th.markdownTableHeadRight th.markdownTableHeadCenter th.markdownTableHeadNone { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +th.markdownTableHeadLeft { + text-align: left +} + +th.markdownTableHeadRight { + text-align: right +} + +th.markdownTableHeadCenter { + text-align: center +} +*/ + +table.markdownTable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.markdownTable td, table.markdownTable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.markdownTable tr { +} + +th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +th.markdownTableHeadLeft, td.markdownTableBodyLeft { + text-align: left +} + +th.markdownTableHeadRight, td.markdownTableBodyRight { + text-align: right +} + +th.markdownTableHeadCenter, td.markdownTableBodyCenter { + text-align: center +} + + +/* @end */ diff --git a/extras/html/dynsections.js b/extras/html/dynsections.js index 85e18369..c1ce1226 100644 --- a/extras/html/dynsections.js +++ b/extras/html/dynsections.js @@ -1,3 +1,26 @@ +/* + @licstart The following is the entire license notice for the + JavaScript code in this file. + + Copyright (C) 1997-2017 by Dimitri van Heesch + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + @licend The above is the entire license notice + for the JavaScript code in this file + */ function toggleVisibility(linkObj) { var base = $(linkObj).attr('id'); @@ -15,7 +38,7 @@ function toggleVisibility(linkObj) summary.hide(); $(linkObj).removeClass('closed').addClass('opened'); $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); - } + } return false; } @@ -37,7 +60,7 @@ function toggleLevel(level) $(this).show(); } else if (l==level+1) { i.removeClass('iconfclosed iconfopen').addClass('iconfclosed'); - a.html('►'); + a.html('▶'); $(this).show(); } else { $(this).hide(); @@ -64,7 +87,7 @@ function toggleFolder(id) // replace down arrow by right arrow for current row var currentRowSpans = currentRow.find("span"); currentRowSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed"); - currentRowSpans.filter(".arrow").html('►'); + currentRowSpans.filter(".arrow").html('▶'); rows.filter("[id^=row_"+id+"]").hide(); // hide all children } else { // we are SHOWING // replace right arrow by down arrow for current row @@ -74,7 +97,7 @@ function toggleFolder(id) // replace down arrows by right arrows for child rows var childRowsSpans = childRows.find("span"); childRowsSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed"); - childRowsSpans.filter(".arrow").html('►'); + childRowsSpans.filter(".arrow").html('▶'); childRows.show(); //show all children } updateStripes(); @@ -94,4 +117,4 @@ function toggleInherit(id) $(img).attr('src',src.substring(0,src.length-10)+'open.png'); } } - +/* @license-end */ diff --git a/extras/html/files.html b/extras/html/files.html index bbbd588e..fb10ff9b 100644 --- a/extras/html/files.html +++ b/extras/html/files.html @@ -3,7 +3,8 @@ - + + SdFat: File List @@ -11,9 +12,6 @@ - @@ -31,39 +29,22 @@ - + - - + + + +
 MinimumSerial.hMinimal AVR Serial driver  SdFat.hSdFat class  SdFatConfig.hConfiguration definitions - SysCall.hSysCall class + sdios.hC++ IO Streams features + SysCall.hSysCall class
diff --git a/extras/html/fstream_8h.html b/extras/html/fstream_8h.html index 231b7b32..188a89c0 100644 --- a/extras/html/fstream_8h.html +++ b/extras/html/fstream_8h.html @@ -3,7 +3,8 @@ - + + SdFat: Arduino/libraries/SdFat/src/FatLib/fstream.h File Reference @@ -11,9 +12,6 @@ - @@ -31,39 +29,22 @@ - + - - + + + +
- - - - - - - - - - - - + + + + + + + + + + + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ +
@@ -132,12 +121,17 @@

Detailed Description

fstream, ifstream, and ofstream classes

+

Copyright (c) 2011-2018 Bill Greiman This file is part of the SdFat library for SD memory cards.

+

MIT License

+

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

diff --git a/extras/html/fstream_8h__dep__incl.png b/extras/html/fstream_8h__dep__incl.png new file mode 100644 index 00000000..a681a0c0 Binary files /dev/null and b/extras/html/fstream_8h__dep__incl.png differ diff --git a/extras/html/fstream_8h__incl.png b/extras/html/fstream_8h__incl.png index a0b3642a..ebe24277 100644 Binary files a/extras/html/fstream_8h__incl.png and b/extras/html/fstream_8h__incl.png differ diff --git a/extras/html/functions.html b/extras/html/functions.html index 5181cddf..de79824c 100644 --- a/extras/html/functions.html +++ b/extras/html/functions.html @@ -3,7 +3,8 @@ - + + SdFat: Class Members @@ -11,9 +12,6 @@ - @@ -31,76 +29,22 @@ - + - - - - + + + +
Here is a list of all documented class members with links to the class documentation for each member:
-

- a -

    +

    - a -

    • adjustfield : ios_base
    • @@ -151,9 +95,9 @@

      - a -

diff --git a/extras/html/functions_b.html b/extras/html/functions_b.html index a36bf55c..e027fc52 100644 --- a/extras/html/functions_b.html +++ b/extras/html/functions_b.html @@ -3,7 +3,8 @@ - + + SdFat: Class Members @@ -11,9 +12,6 @@ - @@ -31,76 +29,22 @@ - + - - - - + + + +
Here is a list of all documented class members with links to the class documentation for each member:
-

- b -

diff --git a/extras/html/functions_c.html b/extras/html/functions_c.html index a13f5bbe..3e704690 100644 --- a/extras/html/functions_c.html +++ b/extras/html/functions_c.html @@ -3,7 +3,8 @@ - + + SdFat: Class Members @@ -11,9 +12,6 @@ - @@ -31,76 +29,22 @@ - + - - - - + + + +
Here is a list of all documented class members with links to the class documentation for each member:
-

- c -

diff --git a/extras/html/functions_d.html b/extras/html/functions_d.html index 851ba0b3..12c30e16 100644 --- a/extras/html/functions_d.html +++ b/extras/html/functions_d.html @@ -3,7 +3,8 @@ - + + SdFat: Class Members @@ -11,9 +12,6 @@ - @@ -31,76 +29,22 @@ - + - - - - + + + +
Here is a list of all documented class members with links to the class documentation for each member:
-

- d -

diff --git a/extras/html/functions_e.html b/extras/html/functions_e.html index eb701a02..07fa7c80 100644 --- a/extras/html/functions_e.html +++ b/extras/html/functions_e.html @@ -3,7 +3,8 @@ - + + SdFat: Class Members @@ -11,9 +12,6 @@ - @@ -31,76 +29,22 @@ - + - - - - + + + +
Here is a list of all documented class members with links to the class documentation for each member:
-

- e -

diff --git a/extras/html/functions_enum.html b/extras/html/functions_enum.html index 23ba8a67..cf588706 100644 --- a/extras/html/functions_enum.html +++ b/extras/html/functions_enum.html @@ -3,7 +3,8 @@ - + + SdFat: Class Members - Enumerations @@ -11,9 +12,6 @@ - @@ -31,50 +29,22 @@ - + - - - + + + +
diff --git a/extras/html/functions_eval.html b/extras/html/functions_eval.html index b9c32f76..adf598cf 100644 --- a/extras/html/functions_eval.html +++ b/extras/html/functions_eval.html @@ -3,7 +3,8 @@ - + + SdFat: Class Members - Enumerator @@ -11,9 +12,6 @@ - @@ -31,50 +29,22 @@
- + - - - + + + +
diff --git a/extras/html/functions_f.html b/extras/html/functions_f.html index 6e20235a..d64199f3 100644 --- a/extras/html/functions_f.html +++ b/extras/html/functions_f.html @@ -3,7 +3,8 @@ - + + SdFat: Class Members @@ -11,9 +12,6 @@ - @@ -31,76 +29,22 @@
- + - - - - + + + +
Here is a list of all documented class members with links to the class documentation for each member:
-

- f -

diff --git a/extras/html/functions_func.html b/extras/html/functions_func.html index 8af25a36..fc7387b3 100644 --- a/extras/html/functions_func.html +++ b/extras/html/functions_func.html @@ -3,7 +3,8 @@ - + + SdFat: Class Members - Functions @@ -11,9 +12,6 @@ - @@ -31,75 +29,22 @@ - + - - - - + + + +
  -

- a -

diff --git a/extras/html/functions_func_b.html b/extras/html/functions_func_b.html index d73052a7..464f15bc 100644 --- a/extras/html/functions_func_b.html +++ b/extras/html/functions_func_b.html @@ -3,7 +3,8 @@ - + + SdFat: Class Members - Functions @@ -11,9 +12,6 @@ - @@ -31,75 +29,22 @@ - + - - - - + + + +
  -

- b -

diff --git a/extras/html/functions_func_c.html b/extras/html/functions_func_c.html index 74f55673..9f24b048 100644 --- a/extras/html/functions_func_c.html +++ b/extras/html/functions_func_c.html @@ -3,7 +3,8 @@ - + + SdFat: Class Members - Functions @@ -11,9 +12,6 @@ - @@ -31,75 +29,22 @@ - + - - - - + + + +
  -

- c -

diff --git a/extras/html/functions_func_d.html b/extras/html/functions_func_d.html index 4860e75b..5665591e 100644 --- a/extras/html/functions_func_d.html +++ b/extras/html/functions_func_d.html @@ -3,7 +3,8 @@ - + + SdFat: Class Members - Functions @@ -11,9 +12,6 @@ - @@ -31,75 +29,22 @@ - + - - - - + + + +
  -

- d -

diff --git a/extras/html/functions_func_e.html b/extras/html/functions_func_e.html index 529e680f..5102f6d1 100644 --- a/extras/html/functions_func_e.html +++ b/extras/html/functions_func_e.html @@ -3,7 +3,8 @@ - + + SdFat: Class Members - Functions @@ -11,9 +12,6 @@ - @@ -31,75 +29,22 @@ - + - - - - + + + +
  -

- e -

diff --git a/extras/html/functions_func_f.html b/extras/html/functions_func_f.html index ccc6ecf4..b05774ca 100644 --- a/extras/html/functions_func_f.html +++ b/extras/html/functions_func_f.html @@ -3,7 +3,8 @@ - + + SdFat: Class Members - Functions @@ -11,9 +12,6 @@ - @@ -31,75 +29,22 @@ - + - - - - + + + +
  -

- f -

diff --git a/extras/html/functions_func_g.html b/extras/html/functions_func_g.html index d534db06..a70aa9b2 100644 --- a/extras/html/functions_func_g.html +++ b/extras/html/functions_func_g.html @@ -3,7 +3,8 @@ - + + SdFat: Class Members - Functions @@ -11,9 +12,6 @@ - @@ -31,75 +29,22 @@ - + - - - - + + + +
  -

- g -

diff --git a/extras/html/functions_func_h.html b/extras/html/functions_func_h.html index 105bee3c..0a01dca5 100644 --- a/extras/html/functions_func_h.html +++ b/extras/html/functions_func_h.html @@ -3,7 +3,8 @@ - + + SdFat: Class Members - Functions @@ -11,9 +12,6 @@ - @@ -31,75 +29,22 @@ - + - - - - + + + +
  -

- h -

    +

    - h -

    • halt() : SysCall
    • @@ -126,9 +71,9 @@

      - h -

diff --git a/extras/html/functions_func_i.html b/extras/html/functions_func_i.html index 2629982d..3a2cda1a 100644 --- a/extras/html/functions_func_i.html +++ b/extras/html/functions_func_i.html @@ -3,7 +3,8 @@ - + + SdFat: Class Members - Functions @@ -11,9 +12,6 @@ - @@ -31,75 +29,22 @@ - + - - - - + + + +
  -

- i -

diff --git a/extras/html/functions_func_k.html b/extras/html/functions_func_k.html new file mode 100644 index 00000000..2476ebb9 --- /dev/null +++ b/extras/html/functions_func_k.html @@ -0,0 +1,79 @@ + + + + + + + +SdFat: Class Members - Functions + + + + + + + + + +
+
+ + + + + + +
+
SdFat +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- k -

+
+ + + + diff --git a/extras/html/functions_func_l.html b/extras/html/functions_func_l.html index 11000630..90823536 100644 --- a/extras/html/functions_func_l.html +++ b/extras/html/functions_func_l.html @@ -3,7 +3,8 @@ - + + SdFat: Class Members - Functions @@ -11,9 +12,6 @@ - @@ -31,75 +29,22 @@ - + - - - - + + + +
  -

- l -

    +

    - l -

    • lbn() : FatCache
    • @@ -136,9 +81,9 @@

      - l -

diff --git a/extras/html/functions_func_m.html b/extras/html/functions_func_m.html index 8358b38d..61370a05 100644 --- a/extras/html/functions_func_m.html +++ b/extras/html/functions_func_m.html @@ -3,7 +3,8 @@ - + + SdFat: Class Members - Functions @@ -11,9 +12,6 @@ - @@ -31,75 +29,22 @@ - + - - - - + + + +
  -

- m -

diff --git a/extras/html/functions_func_n.html b/extras/html/functions_func_n.html index d1460865..ecf1c594 100644 --- a/extras/html/functions_func_n.html +++ b/extras/html/functions_func_n.html @@ -3,7 +3,8 @@ - + + SdFat: Class Members - Functions @@ -11,9 +12,6 @@ - @@ -31,75 +29,22 @@ - + - - - - + + + +
  -

- n -

diff --git a/extras/html/functions_func_o.html b/extras/html/functions_func_o.html index d3b3fc0c..42b25ad7 100644 --- a/extras/html/functions_func_o.html +++ b/extras/html/functions_func_o.html @@ -3,7 +3,8 @@ - + + SdFat: Class Members - Functions @@ -11,9 +12,6 @@ - @@ -31,75 +29,22 @@ - + - - - - + + + +
  -

- o -

diff --git a/extras/html/functions_func_p.html b/extras/html/functions_func_p.html index 0bf69653..e0a9b135 100644 --- a/extras/html/functions_func_p.html +++ b/extras/html/functions_func_p.html @@ -3,7 +3,8 @@ - + + SdFat: Class Members - Functions @@ -11,9 +12,6 @@ - @@ -31,75 +29,22 @@ - + - - - - + + + +
  -

- p -

diff --git a/extras/html/functions_func_r.html b/extras/html/functions_func_r.html index 7fa6dfff..f31039a5 100644 --- a/extras/html/functions_func_r.html +++ b/extras/html/functions_func_r.html @@ -3,7 +3,8 @@ - + + SdFat: Class Members - Functions @@ -11,9 +12,6 @@ - @@ -31,75 +29,22 @@ - + - - - - + + + +
  -

- r -

diff --git a/extras/html/functions_func_s.html b/extras/html/functions_func_s.html index 11dd4b9b..33a3e4ba 100644 --- a/extras/html/functions_func_s.html +++ b/extras/html/functions_func_s.html @@ -3,7 +3,8 @@ - + + SdFat: Class Members - Functions @@ -11,9 +12,6 @@ - @@ -31,75 +29,22 @@ - + - - - - + + + +
  -

- s -

diff --git a/extras/html/functions_func_t.html b/extras/html/functions_func_t.html index 80cb77c4..6c1dd587 100644 --- a/extras/html/functions_func_t.html +++ b/extras/html/functions_func_t.html @@ -3,7 +3,8 @@ - + + SdFat: Class Members - Functions @@ -11,9 +12,6 @@ - @@ -31,75 +29,22 @@ - + - - - - + + + +
  -

- t -

diff --git a/extras/html/functions_func_u.html b/extras/html/functions_func_u.html index 5aa7794f..0cef8a17 100644 --- a/extras/html/functions_func_u.html +++ b/extras/html/functions_func_u.html @@ -3,7 +3,8 @@ - + + SdFat: Class Members - Functions @@ -11,9 +12,6 @@ - @@ -31,75 +29,22 @@ - + - - - - + + + +
  -

- u -

    +

    - u -

diff --git a/extras/html/functions_func_v.html b/extras/html/functions_func_v.html index 4748e106..b3f14d6b 100644 --- a/extras/html/functions_func_v.html +++ b/extras/html/functions_func_v.html @@ -3,7 +3,8 @@ - + + SdFat: Class Members - Functions @@ -11,9 +12,6 @@ - @@ -31,75 +29,22 @@ - + - - - - + + + +
  -

- v -

diff --git a/extras/html/functions_func_w.html b/extras/html/functions_func_w.html index d8f9805c..814c06d9 100644 --- a/extras/html/functions_func_w.html +++ b/extras/html/functions_func_w.html @@ -3,7 +3,8 @@ - + + SdFat: Class Members - Functions @@ -11,9 +12,6 @@ - @@ -31,75 +29,22 @@ - + - - - - + + + +
  -

- w -

diff --git a/extras/html/functions_func_y.html b/extras/html/functions_func_y.html index 7da89ff4..0cee27f9 100644 --- a/extras/html/functions_func_y.html +++ b/extras/html/functions_func_y.html @@ -3,7 +3,8 @@ - + + SdFat: Class Members - Functions @@ -11,9 +12,6 @@ - @@ -31,75 +29,22 @@ - + - - - - + + + +
  -

- y -

    +

    - y -

    • yield() : SysCall
    • @@ -126,9 +71,9 @@

      - y -

diff --git a/extras/html/functions_g.html b/extras/html/functions_g.html index 2e27d12e..3854cf99 100644 --- a/extras/html/functions_g.html +++ b/extras/html/functions_g.html @@ -3,7 +3,8 @@ - + + SdFat: Class Members @@ -11,9 +12,6 @@ - @@ -31,76 +29,22 @@ - + - - - - + + + +
Here is a list of all documented class members with links to the class documentation for each member:
-

- g -

diff --git a/extras/html/functions_h.html b/extras/html/functions_h.html index 1d3f14e2..4c1542f3 100644 --- a/extras/html/functions_h.html +++ b/extras/html/functions_h.html @@ -3,7 +3,8 @@ - + + SdFat: Class Members @@ -11,9 +12,6 @@ - @@ -31,76 +29,22 @@ - + - - - - + + + +
Here is a list of all documented class members with links to the class documentation for each member:
-

- h -

    +

    - h -

    • halt() : SysCall
    • @@ -140,9 +84,9 @@

      - h -

diff --git a/extras/html/functions_i.html b/extras/html/functions_i.html index 5d8d8ea6..de1f59aa 100644 --- a/extras/html/functions_i.html +++ b/extras/html/functions_i.html @@ -3,7 +3,8 @@ - + + SdFat: Class Members @@ -11,9 +12,6 @@ - @@ -31,76 +29,22 @@ - + - - - - + + + +
Here is a list of all documented class members with links to the class documentation for each member:
-

- i -

diff --git a/extras/html/functions_j.html b/extras/html/functions_j.html index 90eab973..589e7aee 100644 --- a/extras/html/functions_j.html +++ b/extras/html/functions_j.html @@ -3,7 +3,8 @@ - + + SdFat: Class Members @@ -11,9 +12,6 @@ - @@ -31,76 +29,22 @@ - + - - - - + + + +
Here is a list of all documented class members with links to the class documentation for each member:
-

- j -

diff --git a/extras/html/functions_k.html b/extras/html/functions_k.html new file mode 100644 index 00000000..02f62036 --- /dev/null +++ b/extras/html/functions_k.html @@ -0,0 +1,79 @@ + + + + + + + +SdFat: Class Members + + + + + + + + + +
+
+ + + + + + +
+
SdFat +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- k -

+
+ + + + diff --git a/extras/html/functions_l.html b/extras/html/functions_l.html index f0baccea..bdb96027 100644 --- a/extras/html/functions_l.html +++ b/extras/html/functions_l.html @@ -3,7 +3,8 @@ - + + SdFat: Class Members @@ -11,9 +12,6 @@ - @@ -31,76 +29,22 @@ - + - - - - + + + +
Here is a list of all documented class members with links to the class documentation for each member:
-

- l -

diff --git a/extras/html/functions_m.html b/extras/html/functions_m.html index 45d8cb44..dd26bf03 100644 --- a/extras/html/functions_m.html +++ b/extras/html/functions_m.html @@ -3,7 +3,8 @@ - + + SdFat: Class Members @@ -11,9 +12,6 @@ - @@ -31,76 +29,22 @@ - + - - - - + + + +
Here is a list of all documented class members with links to the class documentation for each member:
-

- m -

    +

    - m -

    • mbr : cache_t
    • @@ -145,9 +89,9 @@

      - m -

diff --git a/extras/html/functions_n.html b/extras/html/functions_n.html index 90488c68..40109594 100644 --- a/extras/html/functions_n.html +++ b/extras/html/functions_n.html @@ -3,7 +3,8 @@ - + + SdFat: Class Members @@ -11,9 +12,6 @@ - @@ -31,76 +29,22 @@ - + - - - - + + + +
Here is a list of all documented class members with links to the class documentation for each member:
-

- n -

diff --git a/extras/html/functions_o.html b/extras/html/functions_o.html index 89bd98b0..d7e8c420 100644 --- a/extras/html/functions_o.html +++ b/extras/html/functions_o.html @@ -3,7 +3,8 @@ - + + SdFat: Class Members @@ -11,9 +12,6 @@ - @@ -31,76 +29,22 @@ - + - - - - + + + +
Here is a list of all documented class members with links to the class documentation for each member:
-

- o -

diff --git a/extras/html/functions_p.html b/extras/html/functions_p.html index 242d53d7..d496c697 100644 --- a/extras/html/functions_p.html +++ b/extras/html/functions_p.html @@ -3,7 +3,8 @@ - + + SdFat: Class Members @@ -11,9 +12,6 @@ - @@ -31,76 +29,22 @@ - + - - - - + + + +
Here is a list of all documented class members with links to the class documentation for each member:
-

- p -

diff --git a/extras/html/functions_r.html b/extras/html/functions_r.html index 53beed9a..1872e1f2 100644 --- a/extras/html/functions_r.html +++ b/extras/html/functions_r.html @@ -3,7 +3,8 @@ - + + SdFat: Class Members @@ -11,9 +12,6 @@ - @@ -31,76 +29,22 @@ - + - - - - + + + +
Here is a list of all documented class members with links to the class documentation for each member:
-

- r -

diff --git a/extras/html/functions_rela.html b/extras/html/functions_rela.html new file mode 100644 index 00000000..cd491533 --- /dev/null +++ b/extras/html/functions_rela.html @@ -0,0 +1,83 @@ + + + + + + + +SdFat: Class Members - Related Functions + + + + + + + + + +
+
+ + + + + + +
+
SdFat +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+ + + + diff --git a/extras/html/functions_s.html b/extras/html/functions_s.html index 14775924..e0c0778e 100644 --- a/extras/html/functions_s.html +++ b/extras/html/functions_s.html @@ -3,7 +3,8 @@ - + + SdFat: Class Members @@ -11,9 +12,6 @@ - @@ -31,76 +29,22 @@ - + - - - - + + + +
Here is a list of all documented class members with links to the class documentation for each member:
-

- s -

diff --git a/extras/html/functions_t.html b/extras/html/functions_t.html index 7937c108..35fa7e27 100644 --- a/extras/html/functions_t.html +++ b/extras/html/functions_t.html @@ -3,7 +3,8 @@ - + + SdFat: Class Members @@ -11,9 +12,6 @@ - @@ -31,76 +29,22 @@ - + - - - - + + + +
Here is a list of all documented class members with links to the class documentation for each member:
-

- t -

diff --git a/extras/html/functions_type.html b/extras/html/functions_type.html index 9abee0f7..688f3ab2 100644 --- a/extras/html/functions_type.html +++ b/extras/html/functions_type.html @@ -3,7 +3,8 @@ - + + SdFat: Class Members - Typedefs @@ -11,9 +12,6 @@ - @@ -31,50 +29,22 @@ - + - - - + + + +
diff --git a/extras/html/functions_u.html b/extras/html/functions_u.html index 3a7854b5..bc8de458 100644 --- a/extras/html/functions_u.html +++ b/extras/html/functions_u.html @@ -3,7 +3,8 @@ - + + SdFat: Class Members @@ -11,9 +12,6 @@ - @@ -31,76 +29,22 @@
- + - - - - + + + +
Here is a list of all documented class members with links to the class documentation for each member:
-

- u -

    +

    - u -

diff --git a/extras/html/functions_v.html b/extras/html/functions_v.html index 2510426c..d74e2056 100644 --- a/extras/html/functions_v.html +++ b/extras/html/functions_v.html @@ -3,7 +3,8 @@ - + + SdFat: Class Members @@ -11,9 +12,6 @@ - @@ -31,76 +29,22 @@ - + - - - - + + + +
Here is a list of all documented class members with links to the class documentation for each member:
-

- v -

diff --git a/extras/html/functions_vars.html b/extras/html/functions_vars.html index 1eb0b1dc..b9e7dd02 100644 --- a/extras/html/functions_vars.html +++ b/extras/html/functions_vars.html @@ -3,7 +3,8 @@ - + + SdFat: Class Members - Variables @@ -11,9 +12,6 @@ - @@ -31,75 +29,22 @@ - + - - - - + + + +
  -

- a -

    +

    - a -

    • adjustfield : ios_base
    • @@ -137,7 +82,7 @@

      - a -

      -

      - b -

        +

        - b -

        • badbit : ios_base
        • @@ -189,7 +134,7 @@

          - b -

          -

          - c -

            +

            - c -

            • c : setfill
            • @@ -235,7 +180,7 @@

              - c -

              -

              - d -

diff --git a/extras/html/functions_w.html b/extras/html/functions_w.html index 3159313b..07192ab5 100644 --- a/extras/html/functions_w.html +++ b/extras/html/functions_w.html @@ -3,7 +3,8 @@ - + + SdFat: Class Members @@ -11,9 +12,6 @@ - @@ -31,76 +29,22 @@ - + - - - - + + + +
Here is a list of all documented class members with links to the class documentation for each member:
-

- w -

diff --git a/extras/html/functions_y.html b/extras/html/functions_y.html index b9a885b0..bdbce3ea 100644 --- a/extras/html/functions_y.html +++ b/extras/html/functions_y.html @@ -3,7 +3,8 @@ - + + SdFat: Class Members @@ -11,9 +12,6 @@ - @@ -31,76 +29,22 @@ - + - - - - + + + +
Here is a list of all documented class members with links to the class documentation for each member:
-

- y -

    +

    - y -

    • yield() : SysCall
    • @@ -127,9 +71,9 @@

      - y -

diff --git a/extras/html/globals.html b/extras/html/globals.html index 71269bb0..a693ae32 100644 --- a/extras/html/globals.html +++ b/extras/html/globals.html @@ -3,7 +3,8 @@ - + + SdFat: File Members @@ -11,9 +12,6 @@ - @@ -31,69 +29,22 @@ - + - - - - + + + +
Here is a list of all documented file members with links to the documentation:
-

- _ -

diff --git a/extras/html/globals_defs.html b/extras/html/globals_defs.html index 17b2f9c4..9edf0f39 100644 --- a/extras/html/globals_defs.html +++ b/extras/html/globals_defs.html @@ -3,7 +3,8 @@ - + + SdFat: File Members @@ -11,9 +12,6 @@ - @@ -31,62 +29,22 @@ - + - - - - + + + +
  -

- d -

diff --git a/extras/html/globals_func.html b/extras/html/globals_func.html index 0332d804..1573a55a 100644 --- a/extras/html/globals_func.html +++ b/extras/html/globals_func.html @@ -3,7 +3,8 @@ - + + SdFat: File Members @@ -11,9 +12,6 @@ - @@ -31,66 +29,22 @@ - + - - - - + + + +
  -

- b -

    +

    - b -

    -

    - c -

      +

      - c -

      -

      - d -

        +

        - d -

        • dec() : ios.h
        • @@ -148,14 +102,14 @@

          - d -

          -

          - e -

            +

            - e -

            -

            - f -

              +

              - f -

              • FAT_DATE() : FatStructs.h
              • @@ -189,28 +143,28 @@

                - f -

                -

                - h -

                  +

                  - h -

                  -

                  - i -

                    +

                    - i -

                    -

                    - l -

                      +

                      - l -

                      -

                      - n -

                        +

                        - n -

                        • noboolalpha() : ios.h
                        • @@ -232,7 +186,7 @@

                          - n -

                          -

                          - o -

                            +

                            - o -

                            • oct() : ios.h
                            • @@ -245,14 +199,14 @@

                              - o -

                              -

                              - r -

                                +

                                - r -

                                -

                                - s -

                                  +

                                  - s -

                                  • showbase() : ios.h
                                  • @@ -268,14 +222,14 @@

                                    - s -

                                    -

                                    - u -

                                      +

                                      - u -

                                      -

                                      - w -

                                        +

                                        - w -

diff --git a/extras/html/globals_type.html b/extras/html/globals_type.html index 85cf48fb..3a89695d 100644 --- a/extras/html/globals_type.html +++ b/extras/html/globals_type.html @@ -3,7 +3,8 @@ - + + SdFat: File Members @@ -11,9 +12,6 @@ - @@ -31,48 +29,22 @@ - + - - - + + + +
diff --git a/extras/html/globals_vars.html b/extras/html/globals_vars.html index 3164f349..6ed61c41 100644 --- a/extras/html/globals_vars.html +++ b/extras/html/globals_vars.html @@ -3,7 +3,8 @@ - + + SdFat: File Members @@ -11,9 +12,6 @@ - @@ -31,60 +29,22 @@
- + - - - - + + + +
  -

- _ -

    +

    - _ -

    • __brkval : FreeStack.h
    • @@ -113,7 +73,7 @@

      - _ -

      -

      - b -

        +

        - b -

diff --git a/extras/html/graph_legend.html b/extras/html/graph_legend.html index 9261ac4e..2b2c358b 100644 --- a/extras/html/graph_legend.html +++ b/extras/html/graph_legend.html @@ -3,7 +3,8 @@ - + + SdFat: Graph Legend @@ -11,9 +12,6 @@ - @@ -31,33 +29,22 @@ - + - + + + +

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

-

Consider the following example:

1 /*! Invisible class because of truncation */
-
2 class Invisible { };
-
3 
-
4 /*! Truncated class, inheritance relation is hidden */
-
5 class Truncated : public Invisible { };
-
6 
-
7 /* Class not documented with doxygen comments */
-
8 class Undocumented { };
-
9 
-
10 /*! Class that is inherited using public inheritance */
-
11 class PublicBase : public Truncated { };
-
12 
-
13 /*! A template class */
-
14 template<class T> class Templ { };
-
15 
-
16 /*! Class that is inherited using protected inheritance */
-
17 class ProtectedBase { };
-
18 
-
19 /*! Class that is inherited using private inheritance */
-
20 class PrivateBase { };
-
21 
-
22 /*! Class that is used by the Inherited class */
-
23 class Used { };
-
24 
-
25 /*! Super class that inherits a number of other classes */
-
26 class Inherited : public PublicBase,
-
27  protected ProtectedBase,
-
28  private PrivateBase,
-
29  public Undocumented,
-
30  public Templ<int>
-
31 {
-
32  private:
-
33  Used *m_usedClass;
-
34 };
-

This will result in the following graph:

+

Consider the following example:

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

This will result in the following graph:

- +

The boxes in the above graph have the following meaning:

    @@ -137,16 +90,16 @@
  • A dark red arrow is used for private inheritance.
  • -A purple dashed arrow is used if a class is contained or used by another class. The arrow is labeled with the variable(s) through which the pointed class or struct is accessible.
  • +A purple dashed arrow is used if a class is contained or used by another class. The arrow is labelled with the variable(s) through which the pointed class or struct is accessible.
  • -A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labeled with the template parameters of the instance.
  • +A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labelled with the template parameters of the instance.
diff --git a/extras/html/hierarchy.html b/extras/html/hierarchy.html index d9154092..23d6faa6 100644 --- a/extras/html/hierarchy.html +++ b/extras/html/hierarchy.html @@ -3,7 +3,8 @@ - + + SdFat: Class Hierarchy @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
[detail level 12345]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 CBaseBlockDriverBase block driver
 CSdioCardRaw SDIO access to SD and SDHC flash memory cards
 CbiosParmBlockBIOS parameter block
 Ccache_tCache for an raw data block
 CdirectoryEntryFAT short directory entry
 Cfat32_bootBoot sector for a FAT32 volume
 Cfat32_fsinfoFSINFO sector for a FAT32 volume
 Cfat_bootBoot sector for a FAT12/FAT16 volume
 CFatCacheBlock cache
 CFatFileBasic file class
 CFatStreamBaseBase class for C++ style streams
 CfstreamFile input/output stream
 CifstreamFile input stream
 CofstreamFile output stream
 CFileArduino SD.h style File API
 CPrintFileFatFile with Print
 CSdFileClass for backward compatibility
 CSdBaseFileClass for backward compatibility
 CStdioStreamStdioStream implements a minimal stdio stream
 CFatPos_tInternal type for file position - do not use in user apps
 CFatVolumeAccess FAT16 and FAT32 volumes on raw file devices
 CFatFileSystemIntegration class for the FatLib library
 CSdFileSystem< SdDriverClass >Virtual base class for SdFat library
 CSdFileSystem< SdioCard >
 CSdFatSdioSdFat class using SDIO
 CSdFileSystem< SdSpiCard >
 CSdFatMain file system class for SdFat library
 CSdFatSoftSpi< MisoPin, MosiPin, SckPin >SdFat class using software SPI
 CSdFileSystem< SdSpiCardEX >
 CSdFatEXSdFat class with extended SD I/O
 CSdFatSoftSpiEX< MisoPin, MosiPin, SckPin >SdFat class using software SPI and extended SD I/O
 Cfname_tInternal type for Short File Name - do not use in user apps
 Cios_baseBase class for all streams
 CiosError and state information for all streams
 CFatStreamBaseBase class for C++ style streams
 CistreamInput Stream
 CibufstreamParse a char string
 CArduinoInStreamInput stream for Arduino Stream objects
 CifstreamFile input stream
 CiostreamInput/Output stream
 CfstreamFile input/output stream
 CostreamOutput Stream
 CArduinoOutStreamOutput stream for Arduino Print objects
 CiostreamInput/Output stream
 CobufstreamFormat a char string
 CofstreamFile output stream
 ClongDirectoryEntryFAT long directory entry
 CmasterBootRecordMaster Boot Record
 CpartitionTableMBR partition table entry
 CPrint
 CMinimumSerialMini serial class for the SdFat library
 CPrintFileFatFile with Print
 CSdSpiCardRaw access to SD and SDHC flash memory cards via SPI protocol
 CSd2CardRaw access to SD and SDHC card using default SPI library
 CSdSpiCardEXExtended SD I/O block driver
 CsetfillType for setfill manipulator
 CsetprecisionType for setprecision manipulator
 CsetwType for setw manipulator
 CStream
 CFileArduino SD.h style File API
 CSysCallSysCall - Class to wrap system calls
 CSdioCardRaw SDIO access to SD and SDHC flash memory cards
 CSdioCardEXExtended SD I/O block driver
 CbiosParmBlockBIOS parameter block
 Ccache_tCache for an raw data block
 CdirectoryEntryFAT short directory entry
 Cfat32_bootBoot sector for a FAT32 volume
 Cfat32_fsinfoFSINFO sector for a FAT32 volume
 Cfat_bootBoot sector for a FAT12/FAT16 volume
 CFatCacheBlock cache
 CFatFileBasic file class
 CFatStreamBaseBase class for C++ style streams
 CfstreamFile input/output stream
 CifstreamFile input stream
 CofstreamFile output stream
 CFileArduino SD.h style File API
 CPrintFileFatFile with Print
 CSdFileClass for backward compatibility
 CSdBaseFileClass for backward compatibility
 CStdioStreamStdioStream implements a minimal stdio stream
 CFatPos_tInternal type for file position - do not use in user apps
 CFatVolumeAccess FAT16 and FAT32 volumes on raw file devices
 CFatFileSystemIntegration class for the FatLib library
 CSdFileSystem< SdDriverClass >Virtual base class for SdFat library
 CSdFileSystem< SdioCard >
 CSdFatSdioSdFat class using SDIO
 CSdFileSystem< SdioCardEX >
 CSdFatSdioEXSdFat class using SDIO
 CSdFileSystem< SdSpiCard >
 CSdFatMain file system class for SdFat library
 CSdFatSoftSpi< MisoPin, MosiPin, SckPin >SdFat class using software SPI
 CSdFileSystem< SdSpiCardEX >
 CSdFatEXSdFat class with extended SD I/O
 CSdFatSoftSpiEX< MisoPin, MosiPin, SckPin >SdFat class using software SPI and extended SD I/O
 Cfname_tInternal type for Short File Name - do not use in user apps
 Cios_baseBase class for all streams
 CiosError and state information for all streams
 CFatStreamBaseBase class for C++ style streams
 CistreamInput Stream
 CibufstreamParse a char string
 CArduinoInStreamInput stream for Arduino Stream objects
 CifstreamFile input stream
 CiostreamInput/Output stream
 CfstreamFile input/output stream
 CostreamOutput Stream
 CArduinoOutStreamOutput stream for Arduino Print objects
 CiostreamInput/Output stream
 CobufstreamFormat a char string
 CofstreamFile output stream
 ClongDirectoryEntryFAT long directory entry
 CmasterBootRecordMaster Boot Record
 CpartitionTableMBR partition table entry
 CPrint
 CMinimumSerialMini serial class for the SdFat library
 CPrintFileFatFile with Print
 CSdSpiCardRaw access to SD and SDHC flash memory cards via SPI protocol
 CSd2CardRaw access to SD and SDHC card using default SPI library
 CSdSpiCardEXExtended SD I/O block driver
 CsetfillType for setfill manipulator
 CsetprecisionType for setprecision manipulator
 CsetwType for setw manipulator
 CStream
 CFileArduino SD.h style File API
 CSysCallSysCall - Class to wrap system calls
diff --git a/extras/html/index.html b/extras/html/index.html index 5051d701..ac05f106 100644 --- a/extras/html/index.html +++ b/extras/html/index.html @@ -3,7 +3,8 @@ - + + SdFat: Arduino SdFat Library @@ -11,9 +12,6 @@ - @@ -31,33 +29,22 @@ - + - + + + +
Arduino SdFat Library
-
Copyright © 2012, 2013, 2014, 2015, 2016 by William Greiman

+

Copyright (c) 20011-2018 Bill Greiman This file is part of the SdFat library for SD memory cards.

+

MIT License

+

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+

Copyright &copy 2012-2018 by William Greiman

Introduction

The Arduino SdFat Library is a minimal implementation of FAT16 and FAT32 file systems on SD flash memory cards. Standard SD and high capacity SDHC cards are supported.

Experimental support for FAT12 can be enabled by setting FAT12_SUPPORT nonzero in SdFatConfig.h.

@@ -127,12 +119,7 @@

If the volume working directory for sd2 is "/music" the call

file.open("BigBand.wav", O_READ);

will then open "/music/BigBand.wav" on sd2.

-

The following functions are used to change or get current directories. See the html documentation for more information.

bool SdFat::chdir(bool set_cwd = false);
-
bool SdFat::chdir(const char* path, bool set_cwd = false);
-
void SdFat::chvol();
- - -

+

The following functions are used to change or get current directories. See the html documentation for more information.

bool SdFat::chdir(bool set_cwd = false);
bool SdFat::chdir(const char* path, bool set_cwd = false);
void SdFat::chvol();

SD\SDHC Cards

Arduinos access SD cards using the cards SPI protocol. PCs, Macs, and most consumer devices use the 4-bit parallel SD protocol. A card that functions well on A PC or Mac may not work well on the Arduino.

Most cards have good SPI read performance but cards vary widely in SPI write performance. Write performance is limited by how efficiently the card manages internal erase/remapping operations. The Arduino cannot optimize writes to reduce erase operations because of its limit RAM.

@@ -150,7 +137,7 @@

Troubleshooting

The two example programs QuickStart, and SdInfo are useful for troubleshooting.

-

A message like this from SdInfo with erorCode 0X1 indicates the SD card is not seen by SdFat. This is often caused by a wiring error and reformatting the card will not solve the problem.

+

A message like this from SdInfo with errorCode 0X1 indicates the SD card is not seen by SdFat. This is often caused by a wiring error and reformatting the card will not solve the problem.

 cardBegin failed
 SD errorCode: 0X1
 SD errorData: 0XFF
@@ -199,7 +186,7 @@ 

$ % ' - _ @ ~ ` ! ( ) { } ^ # &

Short names are always converted to upper case and their original case value is lost. Files that have a base-name where all characters have the same case and an extension where all characters have the same case will display properly. Examples this type name are UPPER.low, lower.TXT, UPPER.TXT, and lower.txt.

An application which writes to a file using print(), println() or write() must close the file or call sync() at the appropriate time to force data and directory information to be written to the SD Card.

-

Applications must use care calling sync() sync() since 2048 bytes of I/O is required to update file and directory information. This includes writing the current data block, reading the block that contains the directory entry for update, writing the directory block back and reading back the current data block.

+

Applications must use care calling sync() since 2048 bytes of I/O is required to update file and directory information. This includes writing the current data block, reading the block that contains the directory entry for update, writing the directory block back and reading back the current data block.

It is possible to open a file with two or more instances of a file object. A file may be corrupted if data is written to the file by more than one instance of a file object.

How to format SD Cards as FAT Volumes

@@ -247,9 +234,9 @@

diff --git a/extras/html/inherit_graph_0.png b/extras/html/inherit_graph_0.png index f0e85e49..011af3dc 100644 Binary files a/extras/html/inherit_graph_0.png and b/extras/html/inherit_graph_0.png differ diff --git a/extras/html/inherit_graph_9.png b/extras/html/inherit_graph_9.png index d79483f1..1f0c1b41 100644 Binary files a/extras/html/inherit_graph_9.png and b/extras/html/inherit_graph_9.png differ diff --git a/extras/html/inherits.html b/extras/html/inherits.html index b4185185..7f8550f7 100644 --- a/extras/html/inherits.html +++ b/extras/html/inherits.html @@ -3,7 +3,8 @@ - + + SdFat: Class Hierarchy @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
+ @@ -136,17 +117,19 @@ - - + + - - - - - - - + + + + + + + + + @@ -224,9 +207,9 @@
diff --git a/extras/html/ios_8h.html b/extras/html/ios_8h.html index 237c2bf2..8dbec9cf 100644 --- a/extras/html/ios_8h.html +++ b/extras/html/ios_8h.html @@ -3,7 +3,8 @@ - + + SdFat: Arduino/libraries/SdFat/src/FatLib/ios.h File Reference @@ -11,9 +12,6 @@ - @@ -31,39 +29,22 @@ - + - - + + + +
- - - - - - - - + + + + + + + +
@@ -115,13 +96,13 @@
- - - - - - - + + + + + + +
@@ -175,8 +156,15 @@

Detailed Description

ios_base and ios classes

+

Copyright (c) 2011-2018 Bill Greiman This file is part of the SdFat library for SD memory cards.

+

MIT License

+

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Function Documentation

- + +

◆ boolalpha()

+
@@ -207,7 +195,9 @@ - + +

◆ dec()

+
@@ -238,7 +228,9 @@ - + +

◆ hex()

+
@@ -269,7 +261,9 @@ - + +

◆ internal()

+
@@ -300,7 +294,9 @@ - + +

◆ left()

+
@@ -331,7 +327,9 @@ - + +

◆ noboolalpha()

+
@@ -362,7 +360,9 @@ - + +

◆ noshowbase()

+
@@ -393,7 +393,9 @@ - + +

◆ noshowpoint()

+
@@ -424,7 +426,9 @@ - + +

◆ noshowpos()

+
@@ -455,7 +459,9 @@ - + +

◆ noskipws()

+
@@ -486,7 +492,9 @@ - + +

◆ nouppercase()

+
@@ -517,7 +525,9 @@ - + +

◆ oct()

+
@@ -548,7 +558,9 @@ - + +

◆ right()

+
@@ -579,7 +591,9 @@ - + +

◆ showbase()

+
@@ -610,7 +624,9 @@ - + +

◆ showpoint()

+
@@ -641,7 +657,9 @@ - + +

◆ showpos()

+
@@ -672,7 +690,9 @@ - + +

◆ skipws()

+
@@ -703,7 +723,9 @@ - + +

◆ uppercase()

+
@@ -737,9 +759,9 @@ diff --git a/extras/html/ios_8h__dep__incl.png b/extras/html/ios_8h__dep__incl.png index a1c22856..b24b7d4d 100644 Binary files a/extras/html/ios_8h__dep__incl.png and b/extras/html/ios_8h__dep__incl.png differ diff --git a/extras/html/ios_8h__incl.png b/extras/html/ios_8h__incl.png index c7b85156..a77ef2b1 100644 Binary files a/extras/html/ios_8h__incl.png and b/extras/html/ios_8h__incl.png differ diff --git a/extras/html/iostream_8h.html b/extras/html/iostream_8h.html index c369bc3f..bf6180e8 100644 --- a/extras/html/iostream_8h.html +++ b/extras/html/iostream_8h.html @@ -3,7 +3,8 @@ - + +SdFat: Arduino/libraries/SdFat/src/FatLib/iostream.h File Reference @@ -11,9 +12,6 @@ - @@ -31,39 +29,22 @@
- + - - + + + +
- - - - - - - - - - - + + + + + + + + + + +
@@ -119,10 +100,10 @@
- - - - + + + +
@@ -164,8 +145,15 @@

Detailed Description

iostream class

+

Copyright (c) 2011-2018 Bill Greiman This file is part of the SdFat library for SD memory cards.

+

MIT License

+

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Function Documentation

- + +

◆ endl()

+
@@ -196,7 +184,9 @@ - + +

◆ flush()

+
@@ -227,7 +217,9 @@ - + +

◆ operator<<() [1/3]

+
@@ -269,7 +261,9 @@ - + +

◆ operator<<() [2/3]

+
@@ -311,7 +305,9 @@ - + +

◆ operator<<() [3/3]

+
@@ -353,7 +349,9 @@ - + +

◆ operator>>() [1/3]

+
@@ -395,7 +393,9 @@ - + +

◆ operator>>() [2/3]

+
@@ -437,7 +437,9 @@ - + +

◆ operator>>() [3/3]

+
@@ -479,7 +481,9 @@ - + +

◆ ws()

+
@@ -513,9 +517,9 @@ diff --git a/extras/html/iostream_8h__dep__incl.png b/extras/html/iostream_8h__dep__incl.png index 2ca56a31..187f7922 100644 Binary files a/extras/html/iostream_8h__dep__incl.png and b/extras/html/iostream_8h__dep__incl.png differ diff --git a/extras/html/iostream_8h__incl.png b/extras/html/iostream_8h__incl.png index 2c4ee906..d456d03d 100644 Binary files a/extras/html/iostream_8h__incl.png and b/extras/html/iostream_8h__incl.png differ diff --git a/extras/html/istream_8h.html b/extras/html/istream_8h.html index 4002edb5..c06bb11b 100644 --- a/extras/html/istream_8h.html +++ b/extras/html/istream_8h.html @@ -3,7 +3,8 @@ - + +SdFat: Arduino/libraries/SdFat/src/FatLib/istream.h File Reference @@ -11,9 +12,6 @@ - @@ -31,39 +29,22 @@
- + - - + + + +
- - - - - - - - - + + + + + + + + +
@@ -115,11 +96,11 @@
- - - - - + + + + +
@@ -131,12 +112,17 @@

Detailed Description

istream class

+

Copyright (c) 2011-2018 Bill Greiman This file is part of the SdFat library for SD memory cards.

+

MIT License

+

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

diff --git a/extras/html/istream_8h__dep__incl.png b/extras/html/istream_8h__dep__incl.png index adf498ba..af8daebf 100644 Binary files a/extras/html/istream_8h__dep__incl.png and b/extras/html/istream_8h__dep__incl.png differ diff --git a/extras/html/istream_8h__incl.png b/extras/html/istream_8h__incl.png index 99b0e85f..8dc6f516 100644 Binary files a/extras/html/istream_8h__incl.png and b/extras/html/istream_8h__incl.png differ diff --git a/extras/html/jquery.js b/extras/html/jquery.js index 1f4d0b47..2771c749 100644 --- a/extras/html/jquery.js +++ b/extras/html/jquery.js @@ -1,3 +1,31 @@ +/* + @licstart The following is the entire license notice for the + JavaScript code in this file. + + Copyright (C) 1997-2017 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice + for the JavaScript code in this file + */ /*! * jQuery JavaScript Library v1.7.1 * http://jquery.com/ @@ -53,7 +81,7 @@ (function(b,c){var a=false;b(document).mouseup(function(d){a=false});b.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var d=this;this.element.bind("mousedown."+this.widgetName,function(e){return d._mouseDown(e)}).bind("click."+this.widgetName,function(e){if(true===b.data(e.target,d.widgetName+".preventClickEvent")){b.removeData(e.target,d.widgetName+".preventClickEvent");e.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(f){if(a){return}(this._mouseStarted&&this._mouseUp(f));this._mouseDownEvent=f;var e=this,g=(f.which==1),d=(typeof this.options.cancel=="string"&&f.target.nodeName?b(f.target).closest(this.options.cancel).length:false);if(!g||d||!this._mouseCapture(f)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){e.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(f)&&this._mouseDelayMet(f)){this._mouseStarted=(this._mouseStart(f)!==false);if(!this._mouseStarted){f.preventDefault();return true}}if(true===b.data(f.target,this.widgetName+".preventClickEvent")){b.removeData(f.target,this.widgetName+".preventClickEvent")}this._mouseMoveDelegate=function(h){return e._mouseMove(h)};this._mouseUpDelegate=function(h){return e._mouseUp(h)};b(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);f.preventDefault();a=true;return true},_mouseMove:function(d){if(b.browser.msie&&!(document.documentMode>=9)&&!d.button){return this._mouseUp(d)}if(this._mouseStarted){this._mouseDrag(d);return d.preventDefault()}if(this._mouseDistanceMet(d)&&this._mouseDelayMet(d)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,d)!==false);(this._mouseStarted?this._mouseDrag(d):this._mouseUp(d))}return !this._mouseStarted},_mouseUp:function(d){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;if(d.target==this._mouseDownEvent.target){b.data(d.target,this.widgetName+".preventClickEvent",true)}this._mouseStop(d)}return false},_mouseDistanceMet:function(d){return(Math.max(Math.abs(this._mouseDownEvent.pageX-d.pageX),Math.abs(this._mouseDownEvent.pageY-d.pageY))>=this.options.distance)},_mouseDelayMet:function(d){return this.mouseDelayMet},_mouseStart:function(d){},_mouseDrag:function(d){},_mouseStop:function(d){},_mouseCapture:function(d){return true}})})(jQuery);(function(c,d){c.widget("ui.resizable",c.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1000},_create:function(){var f=this,k=this.options;this.element.addClass("ui-resizable");c.extend(this,{_aspectRatio:!!(k.aspectRatio),aspectRatio:k.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:k.helper||k.ghost||k.animate?k.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){this.element.wrap(c('
').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=k.handles||(!c(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all"){this.handles="n,e,s,w,se,sw,ne,nw"}var l=this.handles.split(",");this.handles={};for(var g=0;g
');if(/sw|se|ne|nw/.test(j)){h.css({zIndex:++k.zIndex})}if("se"==j){h.addClass("ui-icon ui-icon-gripsmall-diagonal-se")}this.handles[j]=".ui-resizable-"+j;this.element.append(h)}}this._renderAxis=function(q){q=q||this.element;for(var n in this.handles){if(this.handles[n].constructor==String){this.handles[n]=c(this.handles[n],this.element).show()}if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var o=c(this.handles[n],this.element),p=0;p=/sw|ne|nw|se|n|s/.test(n)?o.outerHeight():o.outerWidth();var m=["padding",/ne|nw|n/.test(n)?"Top":/se|sw|s/.test(n)?"Bottom":/^e$/.test(n)?"Right":"Left"].join("");q.css(m,p);this._proportionallyResize()}if(!c(this.handles[n]).length){continue}}};this._renderAxis(this.element);this._handles=c(".ui-resizable-handle",this.element).disableSelection();this._handles.mouseover(function(){if(!f.resizing){if(this.className){var i=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)}f.axis=i&&i[1]?i[1]:"se"}});if(k.autoHide){this._handles.hide();c(this.element).addClass("ui-resizable-autohide").hover(function(){if(k.disabled){return}c(this).removeClass("ui-resizable-autohide");f._handles.show()},function(){if(k.disabled){return}if(!f.resizing){c(this).addClass("ui-resizable-autohide");f._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var e=function(g){c(g).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){e(this.element);var f=this.element;f.after(this.originalElement.css({position:f.css("position"),width:f.outerWidth(),height:f.outerHeight(),top:f.css("top"),left:f.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);e(this.originalElement);return this},_mouseCapture:function(f){var g=false;for(var e in this.handles){if(c(this.handles[e])[0]==f.target){g=true}}return !this.options.disabled&&g},_mouseStart:function(g){var j=this.options,f=this.element.position(),e=this.element;this.resizing=true;this.documentScroll={top:c(document).scrollTop(),left:c(document).scrollLeft()};if(e.is(".ui-draggable")||(/absolute/).test(e.css("position"))){e.css({position:"absolute",top:f.top,left:f.left})}this._renderProxy();var k=b(this.helper.css("left")),h=b(this.helper.css("top"));if(j.containment){k+=c(j.containment).scrollLeft()||0;h+=c(j.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:k,top:h};this.size=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalSize=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalPosition={left:k,top:h};this.sizeDiff={width:e.outerWidth()-e.width(),height:e.outerHeight()-e.height()};this.originalMousePosition={left:g.pageX,top:g.pageY};this.aspectRatio=(typeof j.aspectRatio=="number")?j.aspectRatio:((this.originalSize.width/this.originalSize.height)||1);var i=c(".ui-resizable-"+this.axis).css("cursor");c("body").css("cursor",i=="auto"?this.axis+"-resize":i);e.addClass("ui-resizable-resizing");this._propagate("start",g);return true},_mouseDrag:function(e){var h=this.helper,g=this.options,m={},q=this,j=this.originalMousePosition,n=this.axis;var r=(e.pageX-j.left)||0,p=(e.pageY-j.top)||0;var i=this._change[n];if(!i){return false}var l=i.apply(this,[e,r,p]),k=c.browser.msie&&c.browser.version<7,f=this.sizeDiff;this._updateVirtualBoundaries(e.shiftKey);if(this._aspectRatio||e.shiftKey){l=this._updateRatio(l,e)}l=this._respectSize(l,e);this._propagate("resize",e);h.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});if(!this._helper&&this._proportionallyResizeElements.length){this._proportionallyResize()}this._updateCache(l);this._trigger("resize",e,this.ui());return false},_mouseStop:function(h){this.resizing=false;var i=this.options,m=this;if(this._helper){var g=this._proportionallyResizeElements,e=g.length&&(/textarea/i).test(g[0].nodeName),f=e&&c.ui.hasScroll(g[0],"left")?0:m.sizeDiff.height,k=e?0:m.sizeDiff.width;var n={width:(m.helper.width()-k),height:(m.helper.height()-f)},j=(parseInt(m.element.css("left"),10)+(m.position.left-m.originalPosition.left))||null,l=(parseInt(m.element.css("top"),10)+(m.position.top-m.originalPosition.top))||null;if(!i.animate){this.element.css(c.extend(n,{top:l,left:j}))}m.helper.height(m.size.height);m.helper.width(m.size.width);if(this._helper&&!i.animate){this._proportionallyResize()}}c("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",h);if(this._helper){this.helper.remove()}return false},_updateVirtualBoundaries:function(g){var j=this.options,i,h,f,k,e;e={minWidth:a(j.minWidth)?j.minWidth:0,maxWidth:a(j.maxWidth)?j.maxWidth:Infinity,minHeight:a(j.minHeight)?j.minHeight:0,maxHeight:a(j.maxHeight)?j.maxHeight:Infinity};if(this._aspectRatio||g){i=e.minHeight*this.aspectRatio;f=e.minWidth/this.aspectRatio;h=e.maxHeight*this.aspectRatio;k=e.maxWidth/this.aspectRatio;if(i>e.minWidth){e.minWidth=i}if(f>e.minHeight){e.minHeight=f}if(hl.width),s=a(l.height)&&i.minHeight&&(i.minHeight>l.height);if(h){l.width=i.minWidth}if(s){l.height=i.minHeight}if(t){l.width=i.maxWidth}if(m){l.height=i.maxHeight}var f=this.originalPosition.left+this.originalSize.width,p=this.position.top+this.size.height;var k=/sw|nw|w/.test(q),e=/nw|ne|n/.test(q);if(h&&k){l.left=f-i.minWidth}if(t&&k){l.left=f-i.maxWidth}if(s&&e){l.top=p-i.minHeight}if(m&&e){l.top=p-i.maxHeight}var n=!l.width&&!l.height;if(n&&!l.left&&l.top){l.top=null}else{if(n&&!l.top&&l.left){l.left=null}}return l},_proportionallyResize:function(){var k=this.options;if(!this._proportionallyResizeElements.length){return}var g=this.helper||this.element;for(var f=0;f
');var e=c.browser.msie&&c.browser.version<7,g=(e?1:0),h=(e?2:-1);this.helper.addClass(this._helper).css({width:this.element.outerWidth()+h,height:this.element.outerHeight()+h,position:"absolute",left:this.elementOffset.left-g+"px",top:this.elementOffset.top-g+"px",zIndex:++i.zIndex});this.helper.appendTo("body").disableSelection()}else{this.helper=this.element}},_change:{e:function(g,f,e){return{width:this.originalSize.width+f}},w:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{left:i.left+f,width:g.width-f}},n:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{top:i.top+e,height:g.height-e}},s:function(g,f,e){return{height:this.originalSize.height+e}},se:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},sw:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[g,f,e]))},ne:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},nw:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[g,f,e]))}},_propagate:function(f,e){c.ui.plugin.call(this,f,[e,this.ui()]);(f!="resize"&&this._trigger(f,e,this.ui()))},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});c.extend(c.ui.resizable,{version:"1.8.18"});c.ui.plugin.add("resizable","alsoResize",{start:function(f,g){var e=c(this).data("resizable"),i=e.options;var h=function(j){c(j).each(function(){var k=c(this);k.data("resizable-alsoresize",{width:parseInt(k.width(),10),height:parseInt(k.height(),10),left:parseInt(k.css("left"),10),top:parseInt(k.css("top"),10)})})};if(typeof(i.alsoResize)=="object"&&!i.alsoResize.parentNode){if(i.alsoResize.length){i.alsoResize=i.alsoResize[0];h(i.alsoResize)}else{c.each(i.alsoResize,function(j){h(j)})}}else{h(i.alsoResize)}},resize:function(g,i){var f=c(this).data("resizable"),j=f.options,h=f.originalSize,l=f.originalPosition;var k={height:(f.size.height-h.height)||0,width:(f.size.width-h.width)||0,top:(f.position.top-l.top)||0,left:(f.position.left-l.left)||0},e=function(m,n){c(m).each(function(){var q=c(this),r=c(this).data("resizable-alsoresize"),p={},o=n&&n.length?n:q.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];c.each(o,function(s,u){var t=(r[u]||0)+(k[u]||0);if(t&&t>=0){p[u]=t||null}});q.css(p)})};if(typeof(j.alsoResize)=="object"&&!j.alsoResize.nodeType){c.each(j.alsoResize,function(m,n){e(m,n)})}else{e(j.alsoResize)}},stop:function(e,f){c(this).removeData("resizable-alsoresize")}});c.ui.plugin.add("resizable","animate",{stop:function(i,n){var p=c(this).data("resizable"),j=p.options;var h=p._proportionallyResizeElements,e=h.length&&(/textarea/i).test(h[0].nodeName),f=e&&c.ui.hasScroll(h[0],"left")?0:p.sizeDiff.height,l=e?0:p.sizeDiff.width;var g={width:(p.size.width-l),height:(p.size.height-f)},k=(parseInt(p.element.css("left"),10)+(p.position.left-p.originalPosition.left))||null,m=(parseInt(p.element.css("top"),10)+(p.position.top-p.originalPosition.top))||null;p.element.animate(c.extend(g,m&&k?{top:m,left:k}:{}),{duration:j.animateDuration,easing:j.animateEasing,step:function(){var o={width:parseInt(p.element.css("width"),10),height:parseInt(p.element.css("height"),10),top:parseInt(p.element.css("top"),10),left:parseInt(p.element.css("left"),10)};if(h&&h.length){c(h[0]).css({width:o.width,height:o.height})}p._updateCache(o);p._propagate("resize",i)}})}});c.ui.plugin.add("resizable","containment",{start:function(f,r){var t=c(this).data("resizable"),j=t.options,l=t.element;var g=j.containment,k=(g instanceof c)?g.get(0):(/parent/.test(g))?l.parent().get(0):g;if(!k){return}t.containerElement=c(k);if(/document/.test(g)||g==document){t.containerOffset={left:0,top:0};t.containerPosition={left:0,top:0};t.parentData={element:c(document),left:0,top:0,width:c(document).width(),height:c(document).height()||document.body.parentNode.scrollHeight}}else{var n=c(k),i=[];c(["Top","Right","Left","Bottom"]).each(function(p,o){i[p]=b(n.css("padding"+o))});t.containerOffset=n.offset();t.containerPosition=n.position();t.containerSize={height:(n.innerHeight()-i[3]),width:(n.innerWidth()-i[1])};var q=t.containerOffset,e=t.containerSize.height,m=t.containerSize.width,h=(c.ui.hasScroll(k,"left")?k.scrollWidth:m),s=(c.ui.hasScroll(k)?k.scrollHeight:e);t.parentData={element:k,left:q.left,top:q.top,width:h,height:s}}},resize:function(g,q){var t=c(this).data("resizable"),i=t.options,f=t.containerSize,p=t.containerOffset,m=t.size,n=t.position,r=t._aspectRatio||g.shiftKey,e={top:0,left:0},h=t.containerElement;if(h[0]!=document&&(/static/).test(h.css("position"))){e=p}if(n.left<(t._helper?p.left:0)){t.size.width=t.size.width+(t._helper?(t.position.left-p.left):(t.position.left-e.left));if(r){t.size.height=t.size.width/i.aspectRatio}t.position.left=i.helper?p.left:0}if(n.top<(t._helper?p.top:0)){t.size.height=t.size.height+(t._helper?(t.position.top-p.top):t.position.top);if(r){t.size.width=t.size.height*i.aspectRatio}t.position.top=t._helper?p.top:0}t.offset.left=t.parentData.left+t.position.left;t.offset.top=t.parentData.top+t.position.top;var l=Math.abs((t._helper?t.offset.left-e.left:(t.offset.left-e.left))+t.sizeDiff.width),s=Math.abs((t._helper?t.offset.top-e.top:(t.offset.top-p.top))+t.sizeDiff.height);var k=t.containerElement.get(0)==t.element.parent().get(0),j=/relative|absolute/.test(t.containerElement.css("position"));if(k&&j){l-=t.parentData.left}if(l+t.size.width>=t.parentData.width){t.size.width=t.parentData.width-l;if(r){t.size.height=t.size.width/t.aspectRatio}}if(s+t.size.height>=t.parentData.height){t.size.height=t.parentData.height-s;if(r){t.size.width=t.size.height*t.aspectRatio}}},stop:function(f,n){var q=c(this).data("resizable"),g=q.options,l=q.position,m=q.containerOffset,e=q.containerPosition,i=q.containerElement;var j=c(q.helper),r=j.offset(),p=j.outerWidth()-q.sizeDiff.width,k=j.outerHeight()-q.sizeDiff.height;if(q._helper&&!g.animate&&(/relative/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}if(q._helper&&!g.animate&&(/static/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}}});c.ui.plugin.add("resizable","ghost",{start:function(g,h){var e=c(this).data("resizable"),i=e.options,f=e.size;e.ghost=e.originalElement.clone();e.ghost.css({opacity:0.25,display:"block",position:"relative",height:f.height,width:f.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof i.ghost=="string"?i.ghost:"");e.ghost.appendTo(e.helper)},resize:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost){e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})}},stop:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost&&e.helper){e.helper.get(0).removeChild(e.ghost.get(0))}}});c.ui.plugin.add("resizable","grid",{resize:function(e,m){var p=c(this).data("resizable"),h=p.options,k=p.size,i=p.originalSize,j=p.originalPosition,n=p.axis,l=h._aspectRatio||e.shiftKey;h.grid=typeof h.grid=="number"?[h.grid,h.grid]:h.grid;var g=Math.round((k.width-i.width)/(h.grid[0]||1))*(h.grid[0]||1),f=Math.round((k.height-i.height)/(h.grid[1]||1))*(h.grid[1]||1);if(/^(se|s|e)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f}else{if(/^(ne)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f}else{if(/^(sw)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.left=j.left-g}else{p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f;p.position.left=j.left-g}}}}});var b=function(e){return parseInt(e,10)||0};var a=function(e){return !isNaN(parseInt(e,10))}})(jQuery);/*! * jQuery hashchange event - v1.3 - 7/21/2010 * http://benalman.com/projects/jquery-hashchange-plugin/ - * + * * Copyright (c) 2010 "Cowboy" Ben Alman * Dual licensed under the MIT and GPL licenses. * http://benalman.com/about/license/ @@ -65,4 +93,23 @@ Released under MIT license. https://raw.github.com/stevenbenner/jquery-powertip/master/LICENSE.txt */ -(function(a){if(typeof define==="function"&&define.amd){define(["jquery"],a)}else{a(jQuery)}}(function(k){var A=k(document),s=k(window),w=k("body");var n="displayController",e="hasActiveHover",d="forcedOpen",u="hasMouseMove",f="mouseOnToPopup",g="originalTitle",y="powertip",o="powertipjq",l="powertiptarget",E=180/Math.PI;var c={isTipOpen:false,isFixedTipOpen:false,isClosing:false,tipOpenImminent:false,activeHover:null,currentX:0,currentY:0,previousX:0,previousY:0,desyncTimeout:null,mouseTrackingActive:false,delayInProgress:false,windowWidth:0,windowHeight:0,scrollTop:0,scrollLeft:0};var p={none:0,top:1,bottom:2,left:4,right:8};k.fn.powerTip=function(F,N){if(!this.length){return this}if(k.type(F)==="string"&&k.powerTip[F]){return k.powerTip[F].call(this,this,N)}var O=k.extend({},k.fn.powerTip.defaults,F),G=new x(O);h();this.each(function M(){var R=k(this),Q=R.data(y),P=R.data(o),T=R.data(l),S;if(R.data(n)){k.powerTip.destroy(R)}S=R.attr("title");if(!Q&&!T&&!P&&S){R.data(y,S);R.data(g,S);R.removeAttr("title")}R.data(n,new t(R,O,G))});if(!O.manual){this.on({"mouseenter.powertip":function J(P){k.powerTip.show(this,P)},"mouseleave.powertip":function L(){k.powerTip.hide(this)},"focus.powertip":function K(){k.powerTip.show(this)},"blur.powertip":function H(){k.powerTip.hide(this,true)},"keydown.powertip":function I(P){if(P.keyCode===27){k.powerTip.hide(this,true)}}})}return this};k.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false};k.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};k.powerTip={show:function z(F,G){if(G){i(G);c.previousX=G.pageX;c.previousY=G.pageY;k(F).data(n).show()}else{k(F).first().data(n).show(true,true)}return F},reposition:function r(F){k(F).first().data(n).resetPosition();return F},hide:function D(G,F){if(G){k(G).first().data(n).hide(F)}else{if(c.activeHover){c.activeHover.data(n).hide(true)}}return G},destroy:function C(G){k(G).off(".powertip").each(function F(){var I=k(this),H=[g,n,e,d];if(I.data(g)){I.attr("title",I.data(g));H.push(y)}I.removeData(H)});return G}};k.powerTip.showTip=k.powerTip.show;k.powerTip.closeTip=k.powerTip.hide;function b(){var F=this;F.top="auto";F.left="auto";F.right="auto";F.bottom="auto";F.set=function(H,G){if(k.isNumeric(G)){F[H]=Math.round(G)}}}function t(K,N,F){var J=null;function L(P,Q){M();if(!K.data(e)){if(!P){c.tipOpenImminent=true;J=setTimeout(function O(){J=null;I()},N.intentPollInterval)}else{if(Q){K.data(d,true)}F.showTip(K)}}}function G(P){M();c.tipOpenImminent=false;if(K.data(e)){K.data(d,false);if(!P){c.delayInProgress=true;J=setTimeout(function O(){J=null;F.hideTip(K);c.delayInProgress=false},N.closeDelay)}else{F.hideTip(K)}}}function I(){var Q=Math.abs(c.previousX-c.currentX),O=Math.abs(c.previousY-c.currentY),P=Q+O;if(P",{id:Q.popupId});if(w.length===0){w=k("body")}w.append(O)}if(Q.followMouse){if(!O.data(u)){A.on("mousemove",M);s.on("scroll",M);O.data(u,true)}}if(Q.mouseOnToPopup){O.on({mouseenter:function L(){if(O.data(f)){if(c.activeHover){c.activeHover.data(n).cancel()}}},mouseleave:function N(){if(c.activeHover){c.activeHover.data(n).hide()}}})}function I(S){S.data(e,true);O.queue(function R(T){H(S);T()})}function H(S){var U;if(!S.data(e)){return}if(c.isTipOpen){if(!c.isClosing){K(c.activeHover)}O.delay(100).queue(function R(V){H(S);V()});return}S.trigger("powerTipPreRender");U=B(S);if(U){O.empty().append(U)}else{return}S.trigger("powerTipRender");c.activeHover=S;c.isTipOpen=true;O.data(f,Q.mouseOnToPopup);if(!Q.followMouse){G(S);c.isFixedTipOpen=true}else{M()}O.fadeIn(Q.fadeInTime,function T(){if(!c.desyncTimeout){c.desyncTimeout=setInterval(J,500)}S.trigger("powerTipOpen")})}function K(R){c.isClosing=true;c.activeHover=null;c.isTipOpen=false;c.desyncTimeout=clearInterval(c.desyncTimeout);R.data(e,false);R.data(d,false);O.fadeOut(Q.fadeOutTime,function S(){var T=new b();c.isClosing=false;c.isFixedTipOpen=false;O.removeClass();T.set("top",c.currentY+Q.offset);T.set("left",c.currentX+Q.offset);O.css(T);R.trigger("powerTipClose")})}function M(){if(!c.isFixedTipOpen&&(c.isTipOpen||(c.tipOpenImminent&&O.data(u)))){var R=O.outerWidth(),V=O.outerHeight(),U=new b(),S,T;U.set("top",c.currentY+Q.offset);U.set("left",c.currentX+Q.offset);S=m(U,R,V);if(S!==p.none){T=a(S);if(T===1){if(S===p.right){U.set("left",c.windowWidth-R)}else{if(S===p.bottom){U.set("top",c.scrollTop+c.windowHeight-V)}}}else{U.set("left",c.currentX-R-Q.offset);U.set("top",c.currentY-V-Q.offset)}}O.css(U)}}function G(S){var R,T;if(Q.smartPlacement){R=k.fn.powerTip.smartPlacementLists[Q.placement];k.each(R,function(U,W){var V=m(F(S,W),O.outerWidth(),O.outerHeight());T=W;if(V===p.none){return false}})}else{F(S,Q.placement);T=Q.placement}O.addClass(T)}function F(U,T){var R=0,S,W,V=new b();V.set("top",0);V.set("left",0);O.css(V);do{S=O.outerWidth();W=O.outerHeight();V=P.compute(U,T,S,W,Q.offset);O.css(V)}while(++R<=5&&(S!==O.outerWidth()||W!==O.outerHeight()));return V}function J(){var R=false;if(c.isTipOpen&&!c.isClosing&&!c.delayInProgress){if(c.activeHover.data(e)===false||c.activeHover.is(":disabled")){R=true}else{if(!v(c.activeHover)&&!c.activeHover.is(":focus")&&!c.activeHover.data(d)){if(O.data(f)){if(!v(O)){R=true}}else{R=true}}}if(R){K(c.activeHover)}}}this.showTip=I;this.hideTip=K;this.resetPosition=G}function q(F){return window.SVGElement&&F[0] instanceof SVGElement}function h(){if(!c.mouseTrackingActive){c.mouseTrackingActive=true;k(function H(){c.scrollLeft=s.scrollLeft();c.scrollTop=s.scrollTop();c.windowWidth=s.width();c.windowHeight=s.height()});A.on("mousemove",i);s.on({resize:function G(){c.windowWidth=s.width();c.windowHeight=s.height()},scroll:function F(){var I=s.scrollLeft(),J=s.scrollTop();if(I!==c.scrollLeft){c.currentX+=I-c.scrollLeft;c.scrollLeft=I}if(J!==c.scrollTop){c.currentY+=J-c.scrollTop;c.scrollTop=J}}})}}function i(F){c.currentX=F.pageX;c.currentY=F.pageY}function v(F){var H=F.offset(),J=F[0].getBoundingClientRect(),I=J.right-J.left,G=J.bottom-J.top;return c.currentX>=H.left&&c.currentX<=H.left+I&&c.currentY>=H.top&&c.currentY<=H.top+G}function B(I){var G=I.data(y),F=I.data(o),K=I.data(l),H,J;if(G){if(k.isFunction(G)){G=G.call(I[0])}J=G}else{if(F){if(k.isFunction(F)){F=F.call(I[0])}if(F.length>0){J=F.clone(true,true)}}else{if(K){H=k("#"+K);if(H.length>0){J=H.html()}}}}return J}function m(M,L,K){var G=c.scrollTop,J=c.scrollLeft,I=G+c.windowHeight,F=J+c.windowWidth,H=p.none;if(M.topI||Math.abs(M.bottom-c.windowHeight)>I){H|=p.bottom}if(M.leftF){H|=p.left}if(M.left+L>F||M.right",{id:Q.popupId});if(w.length===0){w=k("body")}w.append(O)}if(Q.followMouse){if(!O.data(u)){A.on("mousemove",M);s.on("scroll",M);O.data(u,true)}}if(Q.mouseOnToPopup){O.on({mouseenter:function L(){if(O.data(f)){if(c.activeHover){c.activeHover.data(n).cancel()}}},mouseleave:function N(){if(c.activeHover){c.activeHover.data(n).hide()}}})}function I(S){S.data(e,true);O.queue(function R(T){H(S);T()})}function H(S){var U;if(!S.data(e)){return}if(c.isTipOpen){if(!c.isClosing){K(c.activeHover)}O.delay(100).queue(function R(V){H(S);V()});return}S.trigger("powerTipPreRender");U=B(S);if(U){O.empty().append(U)}else{return}S.trigger("powerTipRender");c.activeHover=S;c.isTipOpen=true;O.data(f,Q.mouseOnToPopup);if(!Q.followMouse){G(S);c.isFixedTipOpen=true}else{M()}O.fadeIn(Q.fadeInTime,function T(){if(!c.desyncTimeout){c.desyncTimeout=setInterval(J,500)}S.trigger("powerTipOpen")})}function K(R){c.isClosing=true;c.activeHover=null;c.isTipOpen=false;c.desyncTimeout=clearInterval(c.desyncTimeout);R.data(e,false);R.data(d,false);O.fadeOut(Q.fadeOutTime,function S(){var T=new b();c.isClosing=false;c.isFixedTipOpen=false;O.removeClass();T.set("top",c.currentY+Q.offset);T.set("left",c.currentX+Q.offset);O.css(T);R.trigger("powerTipClose")})}function M(){if(!c.isFixedTipOpen&&(c.isTipOpen||(c.tipOpenImminent&&O.data(u)))){var R=O.outerWidth(),V=O.outerHeight(),U=new b(),S,T;U.set("top",c.currentY+Q.offset);U.set("left",c.currentX+Q.offset);S=m(U,R,V);if(S!==p.none){T=a(S);if(T===1){if(S===p.right){U.set("left",c.windowWidth-R)}else{if(S===p.bottom){U.set("top",c.scrollTop+c.windowHeight-V)}}}else{U.set("left",c.currentX-R-Q.offset);U.set("top",c.currentY-V-Q.offset)}}O.css(U)}}function G(S){var R,T;if(Q.smartPlacement){R=k.fn.powerTip.smartPlacementLists[Q.placement];k.each(R,function(U,W){var V=m(F(S,W),O.outerWidth(),O.outerHeight());T=W;if(V===p.none){return false}})}else{F(S,Q.placement);T=Q.placement}O.addClass(T)}function F(U,T){var R=0,S,W,V=new b();V.set("top",0);V.set("left",0);O.css(V);do{S=O.outerWidth();W=O.outerHeight();V=P.compute(U,T,S,W,Q.offset);O.css(V)}while(++R<=5&&(S!==O.outerWidth()||W!==O.outerHeight()));return V}function J(){var R=false;if(c.isTipOpen&&!c.isClosing&&!c.delayInProgress){if(c.activeHover.data(e)===false||c.activeHover.is(":disabled")){R=true}else{if(!v(c.activeHover)&&!c.activeHover.is(":focus")&&!c.activeHover.data(d)){if(O.data(f)){if(!v(O)){R=true}}else{R=true}}}if(R){K(c.activeHover)}}}this.showTip=I;this.hideTip=K;this.resetPosition=G}function q(F){return window.SVGElement&&F[0] instanceof SVGElement}function h(){if(!c.mouseTrackingActive){c.mouseTrackingActive=true;k(function H(){c.scrollLeft=s.scrollLeft();c.scrollTop=s.scrollTop();c.windowWidth=s.width();c.windowHeight=s.height()});A.on("mousemove",i);s.on({resize:function G(){c.windowWidth=s.width();c.windowHeight=s.height()},scroll:function F(){var I=s.scrollLeft(),J=s.scrollTop();if(I!==c.scrollLeft){c.currentX+=I-c.scrollLeft;c.scrollLeft=I}if(J!==c.scrollTop){c.currentY+=J-c.scrollTop;c.scrollTop=J}}})}}function i(F){c.currentX=F.pageX;c.currentY=F.pageY}function v(F){var H=F.offset(),J=F[0].getBoundingClientRect(),I=J.right-J.left,G=J.bottom-J.top;return c.currentX>=H.left&&c.currentX<=H.left+I&&c.currentY>=H.top&&c.currentY<=H.top+G}function B(I){var G=I.data(y),F=I.data(o),K=I.data(l),H,J;if(G){if(k.isFunction(G)){G=G.call(I[0])}J=G}else{if(F){if(k.isFunction(F)){F=F.call(I[0])}if(F.length>0){J=F.clone(true,true)}}else{if(K){H=k("#"+K);if(H.length>0){J=H.html()}}}}return J}function m(M,L,K){var G=c.scrollTop,J=c.scrollLeft,I=G+c.windowHeight,F=J+c.windowWidth,H=p.none;if(M.topI||Math.abs(M.bottom-c.windowHeight)>I){H|=p.bottom}if(M.leftF){H|=p.left}if(M.left+L>F||M.right1){return}h.preventDefault();var j=h.originalEvent.changedTouches[0],g=document.createEvent("MouseEvents");g.initMouseEvent(i,true,true,window,1,j.screenX,j.screenY,j.clientX,j.clientY,false,false,false,false,0,null);h.target.dispatchEvent(g)}d._touchStart=function(h){var g=this;if(a||!g._mouseCapture(h.originalEvent.changedTouches[0])){return}a=true;g._touchMoved=false;e(h,"mouseover");e(h,"mousemove");e(h,"mousedown")};d._touchMove=function(g){if(!a){return}this._touchMoved=true;e(g,"mousemove")};d._touchEnd=function(g){if(!a){return}e(g,"mouseup");e(g,"mouseout");if(!this._touchMoved){e(g,"click")}a=false};d._mouseInit=function(){var g=this;g.element.bind({touchstart:b.proxy(g,"_touchStart"),touchmove:b.proxy(g,"_touchMove"),touchend:b.proxy(g,"_touchEnd")});f.call(g)};d._mouseDestroy=function(){var g=this;g.element.unbind({touchstart:b.proxy(g,"_touchStart"),touchmove:b.proxy(g,"_touchMove"),touchend:b.proxy(g,"_touchEnd")});c.call(g)}})(jQuery);/*! + * SmartMenus jQuery Plugin - v1.0.0 - January 27, 2016 + * http://www.smartmenus.org/ + * + * Copyright Vasil Dinkov, Vadikom Web Ltd. + * http://vadikom.com + * + * Licensed MIT + */ +(function(a){if(typeof define==="function"&&define.amd){define(["jquery"],a)}else{if(typeof module==="object"&&typeof module.exports==="object"){module.exports=a(require("jquery"))}else{a(jQuery)}}}(function(a){var b=[],e=!!window.createPopup,f=false,d="ontouchstart" in window,h=false,g=window.requestAnimationFrame||function(l){return setTimeout(l,1000/60)},c=window.cancelAnimationFrame||function(l){clearTimeout(l)};function k(m){var n=".smartmenus_mouse";if(!h&&!m){var o=true,l=null;a(document).bind(i([["mousemove",function(s){var t={x:s.pageX,y:s.pageY,timeStamp:new Date().getTime()};if(l){var q=Math.abs(l.x-t.x),p=Math.abs(l.y-t.y);if((q>0||p>0)&&q<=2&&p<=2&&t.timeStamp-l.timeStamp<=300){f=true;if(o){var r=a(s.target).closest("a");if(r.is("a")){a.each(b,function(){if(a.contains(this.$root[0],r[0])){this.itemEnter({currentTarget:r[0]});return false}})}o=false}}}l=t}],[d?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut",function(p){if(j(p.originalEvent)){f=false}}]],n));h=true}else{if(h&&m){a(document).unbind(n);h=false}}}function j(l){return !/^(4|mouse)$/.test(l.pointerType)}function i(l,n){if(!n){n=""}var m={};a.each(l,function(o,p){m[p[0].split(" ").join(n+" ")+n]=p[1]});return m}a.SmartMenus=function(m,l){this.$root=a(m);this.opts=l;this.rootId="";this.accessIdPrefix="";this.$subArrow=null;this.activatedItems=[];this.visibleSubMenus=[];this.showTimeout=0;this.hideTimeout=0;this.scrollTimeout=0;this.clickActivated=false;this.focusActivated=false;this.zIndexInc=0;this.idInc=0;this.$firstLink=null;this.$firstSub=null;this.disabled=false;this.$disableOverlay=null;this.$touchScrollingSub=null;this.cssTransforms3d="perspective" in m.style||"webkitPerspective" in m.style;this.wasCollapsible=false;this.init()};a.extend(a.SmartMenus,{hideAll:function(){a.each(b,function(){this.menuHideAll()})},destroy:function(){while(b.length){b[0].destroy()}k(true)},prototype:{init:function(n){var l=this;if(!n){b.push(this);this.rootId=(new Date().getTime()+Math.random()+"").replace(/\D/g,"");this.accessIdPrefix="sm-"+this.rootId+"-";if(this.$root.hasClass("sm-rtl")){this.opts.rightToLeftSubMenus=true}var r=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).bind(i([["mouseover focusin",a.proxy(this.rootOver,this)],["mouseout focusout",a.proxy(this.rootOut,this)],["keydown",a.proxy(this.rootKeyDown,this)]],r)).delegate("a",i([["mouseenter",a.proxy(this.itemEnter,this)],["mouseleave",a.proxy(this.itemLeave,this)],["mousedown",a.proxy(this.itemDown,this)],["focus",a.proxy(this.itemFocus,this)],["blur",a.proxy(this.itemBlur,this)],["click",a.proxy(this.itemClick,this)]],r));r+=this.rootId;if(this.opts.hideOnClick){a(document).bind(i([["touchstart",a.proxy(this.docTouchStart,this)],["touchmove",a.proxy(this.docTouchMove,this)],["touchend",a.proxy(this.docTouchEnd,this)],["click",a.proxy(this.docClick,this)]],r))}a(window).bind(i([["resize orientationchange",a.proxy(this.winResize,this)]],r));if(this.opts.subIndicators){this.$subArrow=a("").addClass("sub-arrow");if(this.opts.subIndicatorsText){this.$subArrow.html(this.opts.subIndicatorsText)}}k()}this.$firstSub=this.$root.find("ul").each(function(){l.menuInit(a(this))}).eq(0);this.$firstLink=this.$root.find("a").eq(0);if(this.opts.markCurrentItem){var p=/(index|default)\.[^#\?\/]*/i,m=/#.*/,q=window.location.href.replace(p,""),o=q.replace(m,"");this.$root.find("a").each(function(){var s=this.href.replace(p,""),t=a(this);if(s==q||s==o){t.addClass("current");if(l.opts.markCurrentTree){t.parentsUntil("[data-smartmenus-id]","ul").each(function(){a(this).dataSM("parent-a").addClass("current")})}}})}this.wasCollapsible=this.isCollapsible()},destroy:function(m){if(!m){var n=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").unbind(n).undelegate(n);n+=this.rootId;a(document).unbind(n);a(window).unbind(n);if(this.opts.subIndicators){this.$subArrow=null}}this.menuHideAll();var l=this;this.$root.find("ul").each(function(){var o=a(this);if(o.dataSM("scroll-arrows")){o.dataSM("scroll-arrows").remove()}if(o.dataSM("shown-before")){if(l.opts.subMenusMinWidth||l.opts.subMenusMaxWidth){o.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap")}if(o.dataSM("scroll-arrows")){o.dataSM("scroll-arrows").remove()}o.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})}if((o.attr("id")||"").indexOf(l.accessIdPrefix)==0){o.removeAttr("id")}}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("ie-shim").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded");this.$root.find("a.has-submenu").each(function(){var o=a(this);if(o.attr("id").indexOf(l.accessIdPrefix)==0){o.removeAttr("id")}}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub");if(this.opts.subIndicators){this.$root.find("span.sub-arrow").remove()}if(this.opts.markCurrentItem){this.$root.find("a.current").removeClass("current")}if(!m){this.$root=null;this.$firstLink=null;this.$firstSub=null;if(this.$disableOverlay){this.$disableOverlay.remove();this.$disableOverlay=null}b.splice(a.inArray(this,b),1)}},disable:function(l){if(!this.disabled){this.menuHideAll();if(!l&&!this.opts.isPopup&&this.$root.is(":visible")){var m=this.$root.offset();this.$disableOverlay=a('
').css({position:"absolute",top:m.top,left:m.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(true),opacity:0}).appendTo(document.body)}this.disabled=true}},docClick:function(l){if(this.$touchScrollingSub){this.$touchScrollingSub=null;return}if(this.visibleSubMenus.length&&!a.contains(this.$root[0],l.target)||a(l.target).is("a")){this.menuHideAll()}},docTouchEnd:function(m){if(!this.lastTouch){return}if(this.visibleSubMenus.length&&(this.lastTouch.x2===undefined||this.lastTouch.x1==this.lastTouch.x2)&&(this.lastTouch.y2===undefined||this.lastTouch.y1==this.lastTouch.y2)&&(!this.lastTouch.target||!a.contains(this.$root[0],this.lastTouch.target))){if(this.hideTimeout){clearTimeout(this.hideTimeout);this.hideTimeout=0}var l=this;this.hideTimeout=setTimeout(function(){l.menuHideAll()},350)}this.lastTouch=null},docTouchMove:function(m){if(!this.lastTouch){return}var l=m.originalEvent.touches[0];this.lastTouch.x2=l.pageX;this.lastTouch.y2=l.pageY},docTouchStart:function(m){var l=m.originalEvent.touches[0];this.lastTouch={x1:l.pageX,y1:l.pageY,target:l.target}},enable:function(){if(this.disabled){if(this.$disableOverlay){this.$disableOverlay.remove();this.$disableOverlay=null}this.disabled=false}},getClosestMenu:function(m){var l=a(m).closest("ul");while(l.dataSM("in-mega")){l=l.parent().closest("ul")}return l[0]||null},getHeight:function(l){return this.getOffset(l,true)},getOffset:function(n,l){var m;if(n.css("display")=="none"){m={position:n[0].style.position,visibility:n[0].style.visibility};n.css({position:"absolute",visibility:"hidden"}).show()}var o=n[0].getBoundingClientRect&&n[0].getBoundingClientRect(),p=o&&(l?o.height||o.bottom-o.top:o.width||o.right-o.left);if(!p&&p!==0){p=l?n[0].offsetHeight:n[0].offsetWidth}if(m){n.hide().css(m)}return p},getStartZIndex:function(l){var m=parseInt(this[l?"$root":"$firstSub"].css("z-index"));if(!l&&isNaN(m)){m=parseInt(this.$root.css("z-index"))}return !isNaN(m)?m:1},getTouchPoint:function(l){return l.touches&&l.touches[0]||l.changedTouches&&l.changedTouches[0]||l},getViewport:function(l){var m=l?"Height":"Width",o=document.documentElement["client"+m],n=window["inner"+m];if(n){o=Math.min(o,n)}return o},getViewportHeight:function(){return this.getViewport(true)},getViewportWidth:function(){return this.getViewport()},getWidth:function(l){return this.getOffset(l)},handleEvents:function(){return !this.disabled&&this.isCSSOn()},handleItemEvents:function(l){return this.handleEvents()&&!this.isLinkInMegaMenu(l)},isCollapsible:function(){return this.$firstSub.css("position")=="static"},isCSSOn:function(){return this.$firstLink.css("display")=="block"},isFixed:function(){var l=this.$root.css("position")=="fixed";if(!l){this.$root.parentsUntil("body").each(function(){if(a(this).css("position")=="fixed"){l=true;return false}})}return l},isLinkInMegaMenu:function(l){return a(this.getClosestMenu(l[0])).hasClass("mega-menu")},isTouchMode:function(){return !f||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(p,l){var n=p.closest("ul"),q=n.dataSM("level");if(q>1&&(!this.activatedItems[q-2]||this.activatedItems[q-2][0]!=n.dataSM("parent-a")[0])){var m=this;a(n.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(n).each(function(){m.itemActivate(a(this).dataSM("parent-a"))})}if(!this.isCollapsible()||l){this.menuHideSubMenus(!this.activatedItems[q-1]||this.activatedItems[q-1][0]!=p[0]?q-1:q)}this.activatedItems[q-1]=p;if(this.$root.triggerHandler("activate.smapi",p[0])===false){return}var o=p.dataSM("sub");if(o&&(this.isTouchMode()||(!this.opts.showOnClick||this.clickActivated))){this.menuShow(o)}},itemBlur:function(m){var l=a(m.currentTarget);if(!this.handleItemEvents(l)){return}this.$root.triggerHandler("blur.smapi",l[0])},itemClick:function(o){var n=a(o.currentTarget);if(!this.handleItemEvents(n)){return}if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==n.closest("ul")[0]){this.$touchScrollingSub=null;o.stopPropagation();return false}if(this.$root.triggerHandler("click.smapi",n[0])===false){return false}var p=a(o.target).is("span.sub-arrow"),m=n.dataSM("sub"),l=m?m.dataSM("level")==2:false;if(m&&!m.is(":visible")){if(this.opts.showOnClick&&l){this.clickActivated=true}this.itemActivate(n);if(m.is(":visible")){this.focusActivated=true;return false}}else{if(this.isCollapsible()&&p){this.itemActivate(n);this.menuHide(m);return false}}if(this.opts.showOnClick&&l||n.hasClass("disabled")||this.$root.triggerHandler("select.smapi",n[0])===false){return false}},itemDown:function(m){var l=a(m.currentTarget);if(!this.handleItemEvents(l)){return}l.dataSM("mousedown",true)},itemEnter:function(n){var m=a(n.currentTarget);if(!this.handleItemEvents(m)){return}if(!this.isTouchMode()){if(this.showTimeout){clearTimeout(this.showTimeout);this.showTimeout=0}var l=this;this.showTimeout=setTimeout(function(){l.itemActivate(m)},this.opts.showOnClick&&m.closest("ul").dataSM("level")==1?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",m[0])},itemFocus:function(m){var l=a(m.currentTarget);if(!this.handleItemEvents(l)){return}if(this.focusActivated&&(!this.isTouchMode()||!l.dataSM("mousedown"))&&(!this.activatedItems.length||this.activatedItems[this.activatedItems.length-1][0]!=l[0])){this.itemActivate(l,true)}this.$root.triggerHandler("focus.smapi",l[0])},itemLeave:function(m){var l=a(m.currentTarget);if(!this.handleItemEvents(l)){return}if(!this.isTouchMode()){l[0].blur();if(this.showTimeout){clearTimeout(this.showTimeout);this.showTimeout=0}}l.removeDataSM("mousedown");this.$root.triggerHandler("mouseleave.smapi",l[0])},menuHide:function(m){if(this.$root.triggerHandler("beforehide.smapi",m[0])===false){return}m.stop(true,true);if(m.css("display")!="none"){var l=function(){m.css("z-index","")};if(this.isCollapsible()){if(this.opts.collapsibleHideFunction){this.opts.collapsibleHideFunction.call(this,m,l)}else{m.hide(this.opts.collapsibleHideDuration,l)}}else{if(this.opts.hideFunction){this.opts.hideFunction.call(this,m,l)}else{m.hide(this.opts.hideDuration,l)}}if(m.dataSM("ie-shim")){m.dataSM("ie-shim").remove().css({"-webkit-transform":"",transform:""})}if(m.dataSM("scroll")){this.menuScrollStop(m);m.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).unbind(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()}m.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false");m.attr({"aria-expanded":"false","aria-hidden":"true"});var n=m.dataSM("level");this.activatedItems.splice(n-1,1);this.visibleSubMenus.splice(a.inArray(m,this.visibleSubMenus),1);this.$root.triggerHandler("hide.smapi",m[0])}},menuHideAll:function(){if(this.showTimeout){clearTimeout(this.showTimeout);this.showTimeout=0}var m=this.opts.isPopup?1:0;for(var l=this.visibleSubMenus.length-1;l>=m;l--){this.menuHide(this.visibleSubMenus[l])}if(this.opts.isPopup){this.$root.stop(true,true);if(this.$root.is(":visible")){if(this.opts.hideFunction){this.opts.hideFunction.call(this,this.$root)}else{this.$root.hide(this.opts.hideDuration)}if(this.$root.dataSM("ie-shim")){this.$root.dataSM("ie-shim").remove()}}}this.activatedItems=[];this.visibleSubMenus=[];this.clickActivated=false;this.focusActivated=false;this.zIndexInc=0;this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(n){for(var l=this.activatedItems.length-1;l>=n;l--){var m=this.activatedItems[l].dataSM("sub");if(m){this.menuHide(m)}}},menuIframeShim:function(l){if(e&&this.opts.overlapControlsInIE&&!l.dataSM("ie-shim")){l.dataSM("ie-shim",a(" +
+ + + +
+
+
sdios.h File Reference
+
+
+ +

C++ IO Streams features. +More...

+
#include "FatLib/fstream.h"
+#include "FatLib/ArduinoStream.h"
+
+Include dependency graph for sdios.h:
+
+
+ + + + + + + + + + + + + + + + + +
+

Detailed Description

+

C++ IO Streams features.

+

Copyright (c) 2011-2018 Bill Greiman This file is part of the SdFat library for SD memory cards.

+

MIT License

+

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+
+ + + + diff --git a/extras/html/sdios_8h__incl.png b/extras/html/sdios_8h__incl.png new file mode 100644 index 00000000..f03703b8 Binary files /dev/null and b/extras/html/sdios_8h__incl.png differ diff --git a/extras/html/search/all_0.html b/extras/html/search/all_0.html index 1d469500..5125b940 100644 --- a/extras/html/search/all_0.html +++ b/extras/html/search/all_0.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/all_1.html b/extras/html/search/all_1.html index 1fbc509c..b8ff8711 100644 --- a/extras/html/search/all_1.html +++ b/extras/html/search/all_1.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/all_10.html b/extras/html/search/all_10.html index 80581d5a..50bc449e 100644 --- a/extras/html/search/all_10.html +++ b/extras/html/search/all_10.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/all_10.js b/extras/html/search/all_10.js index 2bf4e357..7ee09e61 100644 --- a/extras/html/search/all_10.js +++ b/extras/html/search/all_10.js @@ -1,29 +1,33 @@ var searchData= [ - ['rdstate',['rdstate',['../classios.html#aacc57e1e46e23f2f54898ff6a89129a2',1,'ios']]], - ['read',['read',['../class_minimum_serial.html#a4890dd60f2ffb61eba0821cc80d411ad',1,'MinimumSerial::read()'],['../class_file.html#a4c46a1975e66c37977bf07c58ec10b4e',1,'File::read()'],['../class_fat_file.html#a60ae55ff6fe158c2340071d702a363c5',1,'FatFile::read()'],['../class_fat_file.html#a200e6e0553d5b709520c9dfac9ef77dd',1,'FatFile::read(void *buf, size_t nbyte)'],['../class_fat_cache.html#ac2bb0b8f2ce3ab5cd86cf30b4a663cea',1,'FatCache::read()']]], - ['readblock',['readBlock',['../class_base_block_driver.html#a16bb3305f3130253dd7ab6e19aa1b524',1,'BaseBlockDriver::readBlock()'],['../class_sdio_card.html#ac94605c428fa9258106835cceec470d8',1,'SdioCard::readBlock()'],['../class_sd_spi_card.html#a4393634a82c6683ee94d1fefe0be332a',1,'SdSpiCard::readBlock()'],['../class_sd_spi_card_e_x.html#abb69c8bd538dafed1e7f33382ee48d61',1,'SdSpiCardEX::readBlock()']]], - ['readblocks',['readBlocks',['../class_base_block_driver.html#a3a029a2d02fc7cbdd7c15c8d622565c4',1,'BaseBlockDriver::readBlocks()'],['../class_sdio_card.html#a7de36d26a01dc39b7dc122c54ee03b12',1,'SdioCard::readBlocks()'],['../class_sd_spi_card.html#ac630f77c3137923b47c1bd12a9bbfadf',1,'SdSpiCard::readBlocks()'],['../class_sd_spi_card_e_x.html#a9e158cda94fadd12267fe7e63d06622a',1,'SdSpiCardEX::readBlocks()']]], - ['readcid',['readCID',['../class_sdio_card.html#add77777fbcf91cc41e8ec62fda169e79',1,'SdioCard::readCID()'],['../class_sd_spi_card.html#aa073dc42828164883db1b9faeff909ea',1,'SdSpiCard::readCID()']]], - ['readcsd',['readCSD',['../class_sdio_card.html#a1da0ca418c153e24b4e13b4c1e20d450',1,'SdioCard::readCSD()'],['../class_sd_spi_card.html#a9fbea9525e70f6e3602fe5153a5a1290',1,'SdSpiCard::readCSD()']]], - ['readdata',['readData',['../class_sd_spi_card.html#a3a1d1b4b4ceb42fcd41aaf6649482770',1,'SdSpiCard']]], - ['readdir',['readDir',['../class_fat_file.html#a1325afe074c3efecff666678cd9f116a',1,'FatFile']]], - ['readline',['readline',['../class_arduino_in_stream.html#ad4c60f813b8df6dd1d6696a3458de09c',1,'ArduinoInStream']]], - ['readocr',['readOCR',['../class_sdio_card.html#adc583f7a27f57ce55ce474b1379b9303',1,'SdioCard::readOCR()'],['../class_sd_spi_card.html#ab446e49338b3ce834a750ac6dae35f61',1,'SdSpiCard::readOCR()']]], - ['readstart',['readStart',['../class_sd_spi_card.html#a3b1710d11496c32ba4323831e00ac6d1',1,'SdSpiCard']]], - ['readstatus',['readStatus',['../class_sd_spi_card.html#a91d0413599efe0d63c8c2dfe4a12d9ae',1,'SdSpiCard']]], - ['readstop',['readStop',['../class_sd_spi_card.html#afdac7c399fa1ba3f904cf503526e007e',1,'SdSpiCard']]], - ['remove',['remove',['../class_fat_file.html#ac837a537fbcca14c7aa390c5fc9f4e7c',1,'FatFile::remove()'],['../class_fat_file.html#afe820bbb056863e91ec482961c8dc695',1,'FatFile::remove(FatFile *dirFile, const char *path)'],['../class_fat_file_system.html#abf7d7d0dab43083d5be10d70ff4669e4',1,'FatFileSystem::remove()']]], - ['rename',['rename',['../class_fat_file.html#a4b42f2454ff462555c07ea094a92a1e0',1,'FatFile::rename()'],['../class_fat_file_system.html#a0187891a24017b41bd7c5ba63e659e65',1,'FatFileSystem::rename()']]], - ['reserved1',['reserved1',['../structfat__boot.html#affa7e6efb3ccea19ba7ea0ddadce7463',1,'fat_boot::reserved1()'],['../structfat32__boot.html#a7075c3c00aae071110fd1acb2e6fd599',1,'fat32_boot::reserved1()'],['../structfat32__fsinfo.html#ac24bd4801a60a54e5133ed1bb71bcdaa',1,'fat32_fsinfo::reserved1()']]], - ['reserved2',['reserved2',['../structfat32__fsinfo.html#a9ec0e2756cd7e169268798a558df3814',1,'fat32_fsinfo']]], - ['reservednt',['reservedNT',['../structdirectory_entry.html#afe7d00be85f3b78549b21610050da52b',1,'directoryEntry']]], - ['reservedsectorcount',['reservedSectorCount',['../structbios_parm_block.html#adb4830c345b27293c7d7b97b77f52e01',1,'biosParmBlock::reservedSectorCount()'],['../structfat__boot.html#a13f272a8f780fb43a400f873a3fd7b73',1,'fat_boot::reservedSectorCount()'],['../structfat32__boot.html#a8e490f05ad3552dfbdf8f9332d287ba0',1,'fat32_boot::reservedSectorCount()']]], - ['rewind',['rewind',['../class_fat_file.html#a5aac6e0b3cb08fc8b8668e916a8b0ca5',1,'FatFile::rewind()'],['../class_stdio_stream.html#ad985866675193d2ee1dde9e27b0d08da',1,'StdioStream::rewind()']]], - ['rewinddirectory',['rewindDirectory',['../class_file.html#ae1419603dea25a6c8480b941d7ac63a3',1,'File']]], - ['right',['right',['../classios__base.html#aec064a12730b5d87e718c1864e29ac64',1,'ios_base::right()'],['../ios_8h.html#aee80fd600c5c58a2bebbd48afdcf8280',1,'right(): ios.h']]], - ['rmdir',['rmdir',['../class_fat_file.html#a9515bac181d33e7f0125e88fa2ccd283',1,'FatFile::rmdir()'],['../class_fat_file_system.html#aaed2edc7ff7fedb163458c870bb41b33',1,'FatFileSystem::rmdir()']]], - ['rmrfstar',['rmRfStar',['../class_fat_file.html#ac780a80526f86d3def701ecdc99d8bfe',1,'FatFile']]], - ['rootdirentrycount',['rootDirEntryCount',['../structbios_parm_block.html#a9a1b24bb2dbb3a123c4ffc703954d71d',1,'biosParmBlock::rootDirEntryCount()'],['../structfat__boot.html#a2124f89e12307df944f08e6657dbf4af',1,'fat_boot::rootDirEntryCount()'],['../structfat32__boot.html#a94185496fb56c6e0e8078fc3803e9142',1,'fat32_boot::rootDirEntryCount()'],['../class_fat_volume.html#ab2d483670a0a6a6a4754b23614fe11bc',1,'FatVolume::rootDirEntryCount()']]], - ['rootdirstart',['rootDirStart',['../class_fat_volume.html#ae9363ebbbae90e895ea56e8fa3f60c13',1,'FatVolume']]] + ['p',['p',['../structsetprecision.html#a7cb7bb355a303fa39a8035615bde9348',1,'setprecision']]], + ['part',['part',['../structmaster_boot_record.html#aa4e294e50f311635c10c92f4c99227c5',1,'masterBootRecord']]], + ['part_5ft',['part_t',['../_fat_structs_8h.html#a37251e7d5c69a159be727a3fc8c9d0e6',1,'FatStructs.h']]], + ['partitiontable',['partitionTable',['../structpartition_table.html',1,'']]], + ['peek',['peek',['../class_print_file.html#a3a2a66f4a0cb69ab4edc66d39997fda7',1,'PrintFile::peek()'],['../class_file.html#a0e5025f39bd584563bfe4b05fc1db268',1,'File::peek()'],['../class_fat_file.html#ac05b7136b887539426856c623869aa3a',1,'FatFile::peek()'],['../classistream.html#a4022265e0ede3698454f1ff59348c14a',1,'istream::peek()']]], + ['pgm_5fread_5fbyte',['pgm_read_byte',['../_fat_file_8h.html#a48c60b057902adf805797f183286728d',1,'FatFile.h']]], + ['pgm_5fread_5fword',['pgm_read_word',['../_fat_file_8h.html#a910fb5f01313d339d3b835d45e1e5ad0',1,'FatFile.h']]], + ['pos_5ftype',['pos_type',['../classios__base.html#abe85cf1f181b8bce8022f05ab76aae7f',1,'ios_base']]], + ['position',['position',['../struct_fat_pos__t.html#a8e14c6f2705777502b543452743eaa26',1,'FatPos_t::position()'],['../class_file.html#aae991c597c0bc4c5eb44c1f3b06a21ec',1,'File::position()']]], + ['precision',['precision',['../classios__base.html#aba92f0687644fc14f202958635ce276f',1,'ios_base::precision() const'],['../classios__base.html#a5b70cc65fc2c276136fea99bddedb6f0',1,'ios_base::precision(unsigned int n)']]], + ['print',['print',['../class_stdio_stream.html#ad3f6ee8e8ca5dcf6dabfd88199b172e2',1,'StdioStream::print(char c)'],['../class_stdio_stream.html#a1158ea5f9bf041f21b1733b7811c9bb9',1,'StdioStream::print(const char *str)'],['../class_stdio_stream.html#aac4d7b3548d03b8fd70adf12c7ee315c',1,'StdioStream::print(const __FlashStringHelper *str)'],['../class_stdio_stream.html#a26f5b98560b6771225005b073166108b',1,'StdioStream::print(double val, uint8_t prec=2)'],['../class_stdio_stream.html#a06b6eb9f0a7000fdcc73cd6af8d40560',1,'StdioStream::print(float val, uint8_t prec=2)'],['../class_stdio_stream.html#a7129f85c7c5f16867f467731ef84dee9',1,'StdioStream::print(T val)']]], + ['print_5ft',['print_t',['../_fat_volume_8h.html#ac62f6449331cfe1a71f29be30efe7890',1,'FatVolume.h']]], + ['printcreatedatetime',['printCreateDateTime',['../class_fat_file.html#a558530f20314a8d8ee3d1a488fc7f46e',1,'FatFile']]], + ['printdec',['printDec',['../class_stdio_stream.html#ac0a907feb1e4b7e00de99857b4c0a470',1,'StdioStream::printDec(char n)'],['../class_stdio_stream.html#a2707ea97f6113c226781469f4f39ff62',1,'StdioStream::printDec(signed char n)'],['../class_stdio_stream.html#a6e6ac78caa6259a4c4934707bf497a2b',1,'StdioStream::printDec(unsigned char n)'],['../class_stdio_stream.html#a218af88db35f38babf01d6e0a9cdceeb',1,'StdioStream::printDec(int16_t n)'],['../class_stdio_stream.html#a90b2999af94a3578fff7579c2acf8e35',1,'StdioStream::printDec(uint16_t n)'],['../class_stdio_stream.html#ad4591f1234b57f63c1acf0f3392099ac',1,'StdioStream::printDec(int32_t n)'],['../class_stdio_stream.html#a8b6c2c80342abe45e6f564e9bd5bb7ea',1,'StdioStream::printDec(uint32_t n)'],['../class_stdio_stream.html#aaa8921947d4dbbae840d285cb633e8aa',1,'StdioStream::printDec(double value, uint8_t prec)'],['../class_stdio_stream.html#a6a09284b1c6d0769c27916a2e131e749',1,'StdioStream::printDec(float value, uint8_t prec)']]], + ['printfatdate',['printFatDate',['../class_fat_file.html#a8fdb038aafdf3a17ac80b53c063aa73b',1,'FatFile::printFatDate(uint16_t fatDate)'],['../class_fat_file.html#ada5364f66204b1a64afbf9d2e6cd2b0b',1,'FatFile::printFatDate(print_t *pr, uint16_t fatDate)']]], + ['printfattime',['printFatTime',['../class_fat_file.html#a7740731f08ef97de7dfbc9b075c4c7d1',1,'FatFile::printFatTime(uint16_t fatTime)'],['../class_fat_file.html#a4e7e56ba52ca17c602af1b85684b09a9',1,'FatFile::printFatTime(print_t *pr, uint16_t fatTime)']]], + ['printfield',['printField',['../class_fat_file.html#a7478cad0f9e5079311b9e1fa558016ff',1,'FatFile::printField(float value, char term, uint8_t prec=2)'],['../class_fat_file.html#abd3e1747511216462b3ef98167156cbb',1,'FatFile::printField(int16_t value, char term)'],['../class_fat_file.html#a9972c2419c293ef9c382bff666b9ae4d',1,'FatFile::printField(uint16_t value, char term)'],['../class_fat_file.html#a41b3b32dd8482429b74c7af3432d6cf8',1,'FatFile::printField(int32_t value, char term)'],['../class_fat_file.html#a097240f08baadeb1c64b63eab9afb088',1,'FatFile::printField(uint32_t value, char term)'],['../class_stdio_stream.html#a4988592ada39c4b4c603b061f84d183f',1,'StdioStream::printField(double value, char term, uint8_t prec=2)'],['../class_stdio_stream.html#a3b90b2317cc391f94784a847f5313c08',1,'StdioStream::printField(float value, char term, uint8_t prec=2)'],['../class_stdio_stream.html#a02c2ad1a2e71e82d238b8386cf3e6c41',1,'StdioStream::printField(T value, char term)']]], + ['printfile',['PrintFile',['../class_print_file.html',1,'PrintFile'],['../class_print_file.html#a537ea4364a7958550acf2c8ddb8791ec',1,'PrintFile::PrintFile()']]], + ['printfilesize',['printFileSize',['../class_fat_file.html#a12a5d2de2737c201aa39ca1bd2ab9c47',1,'FatFile']]], + ['printhex',['printHex',['../class_stdio_stream.html#add39b2b4ec3daa7c8922e96ce5d368bc',1,'StdioStream']]], + ['printhexln',['printHexln',['../class_stdio_stream.html#aec6ebea511489b0ef6b61d9132d93af9',1,'StdioStream']]], + ['println',['println',['../class_stdio_stream.html#ad0cd3acc05a91456f505752377bd405a',1,'StdioStream::println()'],['../class_stdio_stream.html#a3793dd66cf347a1ca0b7b167e948cce9',1,'StdioStream::println(double val, uint8_t prec=2)'],['../class_stdio_stream.html#aac250d041a7844c8db1cbd2d97ecfdaa',1,'StdioStream::println(float val, uint8_t prec=2)'],['../class_stdio_stream.html#a3b14532768d07e6ed89c762d04792c12',1,'StdioStream::println(T val)']]], + ['printmodifydatetime',['printModifyDateTime',['../class_fat_file.html#a05cee5df46a370bf916d3ba597c82e39',1,'FatFile']]], + ['printname',['printName',['../class_fat_file.html#ad1cbc3aeb0f5193b7a26595966da9621',1,'FatFile::printName()'],['../class_fat_file.html#afe18a787fb8640e2d2483370c770f82f',1,'FatFile::printName(print_t *pr)']]], + ['printsfn',['printSFN',['../class_fat_file.html#a791cd7aade71f609aab62ec018aea3c0',1,'FatFile']]], + ['progmem',['PROGMEM',['../_fat_file_8h.html#a75acaba9e781937468d0911423bc0c35',1,'FatFile.h']]], + ['pstr',['PSTR',['../_fat_file_8h.html#a9c00057fd19e916cc1aa0a5949336beb',1,'FatFile.h']]], + ['put',['put',['../classostream.html#a11aad8a1efd284ccfa91cbfb78d089bd',1,'ostream']]], + ['putc',['putc',['../class_stdio_stream.html#adf9e552212aad6fc2284da0ee62d04dc',1,'StdioStream']]], + ['putcrlf',['putCRLF',['../class_stdio_stream.html#a09ccc4b6cabc3502c1052e85d94e84ef',1,'StdioStream']]] ]; diff --git a/extras/html/search/all_11.html b/extras/html/search/all_11.html index bb6241be..b35c8bf0 100644 --- a/extras/html/search/all_11.html +++ b/extras/html/search/all_11.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/all_11.js b/extras/html/search/all_11.js index 832aef45..ff13a902 100644 --- a/extras/html/search/all_11.js +++ b/extras/html/search/all_11.js @@ -1,64 +1,29 @@ var searchData= [ - ['sd2card',['Sd2Card',['../class_sd2_card.html',1,'']]], - ['sd_5ffat_5fversion',['SD_FAT_VERSION',['../_sd_fat_8h.html#aca25ecce379f446043bdee2c55304210',1,'SdFat.h']]], - ['sd_5fhas_5fcustom_5fspi',['SD_HAS_CUSTOM_SPI',['../_sd_fat_config_8h.html#a838861a01379e94361148d22e62b1977',1,'SdFatConfig.h']]], - ['sdbasefile',['SdBaseFile',['../class_sd_base_file.html',1,'SdBaseFile'],['../class_sd_base_file.html#a94d44fc448dc8a06867d490100a57781',1,'SdBaseFile::SdBaseFile()']]], - ['sdfat',['SdFat',['../class_sd_fat.html',1,'SdFat'],['../class_sd_fat.html#a232871b6bbd0f40d6a2883b3c7b0425f',1,'SdFat::SdFat()']]], - ['sdfat_2eh',['SdFat.h',['../_sd_fat_8h.html',1,'']]], - ['sdfatconfig_2eh',['SdFatConfig.h',['../_sd_fat_config_8h.html',1,'']]], - ['sdfatex',['SdFatEX',['../class_sd_fat_e_x.html',1,'SdFatEX'],['../class_sd_fat_e_x.html#a86b1fdf8b81dff2fced176d39b851474',1,'SdFatEX::SdFatEX()']]], - ['sdfatsdio',['SdFatSdio',['../class_sd_fat_sdio.html',1,'']]], - ['sdfatsoftspi',['SdFatSoftSpi',['../class_sd_fat_soft_spi.html',1,'']]], - ['sdfatsoftspiex',['SdFatSoftSpiEX',['../class_sd_fat_soft_spi_e_x.html',1,'']]], - ['sdfile',['SdFile',['../class_sd_file.html',1,'SdFile'],['../class_sd_file.html#aca7da9858a5e53e10f3c2fa9aeca8485',1,'SdFile::SdFile()']]], - ['sdfilesystem',['SdFileSystem',['../class_sd_file_system.html',1,'']]], - ['sdfilesystem_3c_20sdiocard_20_3e',['SdFileSystem< SdioCard >',['../class_sd_file_system.html',1,'']]], - ['sdfilesystem_3c_20sdspicard_20_3e',['SdFileSystem< SdSpiCard >',['../class_sd_file_system.html',1,'']]], - ['sdfilesystem_3c_20sdspicardex_20_3e',['SdFileSystem< SdSpiCardEX >',['../class_sd_file_system.html',1,'']]], - ['sdiocard',['SdioCard',['../class_sdio_card.html',1,'']]], - ['sdspicard',['SdSpiCard',['../class_sd_spi_card.html',1,'SdSpiCard'],['../class_sd_spi_card.html#a0441c5da53bd3bd72fb833fc940f25e8',1,'SdSpiCard::SdSpiCard()']]], - ['sdspicard_2eh',['SdSpiCard.h',['../_sd_spi_card_8h.html',1,'']]], - ['sdspicardex',['SdSpiCardEX',['../class_sd_spi_card_e_x.html',1,'']]], - ['sectorspercluster',['sectorsPerCluster',['../structbios_parm_block.html#a45d5e2d8c93a028a074e8ce3dc751ab5',1,'biosParmBlock::sectorsPerCluster()'],['../structfat__boot.html#ab3063726125b16a2ccad719548d79abd',1,'fat_boot::sectorsPerCluster()'],['../structfat32__boot.html#a63ded2780732f166f7b7d36bc6aed702',1,'fat32_boot::sectorsPerCluster()']]], - ['sectorsperfat16',['sectorsPerFat16',['../structbios_parm_block.html#a24d6e5a9069491d5db6dbe747336985b',1,'biosParmBlock::sectorsPerFat16()'],['../structfat__boot.html#a0d5ab13399759acfa571e49b85600db1',1,'fat_boot::sectorsPerFat16()'],['../structfat32__boot.html#aeaa78272cd42b162ea448e1642f75cab',1,'fat32_boot::sectorsPerFat16()']]], - ['sectorsperfat32',['sectorsPerFat32',['../structbios_parm_block.html#ad80429df03a6b80f79b18cb6e1008d64',1,'biosParmBlock::sectorsPerFat32()'],['../structfat32__boot.html#aa00db084ff2f7e25febef321469adeb9',1,'fat32_boot::sectorsPerFat32()']]], - ['sectorspertrack',['sectorsPerTrack',['../structfat__boot.html#a6d5ceaf374e0607be8b8162bf657f282',1,'fat_boot::sectorsPerTrack()'],['../structfat32__boot.html#a9525b2e63f84a5cf62ea20199cedf5de',1,'fat32_boot::sectorsPerTrack()']]], - ['sectorspertrtack',['sectorsPerTrtack',['../structbios_parm_block.html#a7c27cb7f66c2c9d5266d896e8df227c7',1,'biosParmBlock']]], - ['seek',['seek',['../class_file.html#a2d41ea52356b769e05e1242685758c08',1,'File']]], - ['seek_5fcur',['SEEK_CUR',['../_stdio_stream_8h.html#a4c8d0b76b470ba65a43ca46a88320f39',1,'StdioStream.h']]], - ['seek_5fend',['SEEK_END',['../_stdio_stream_8h.html#ad2a2e6c114780c3071efd24f16c7f7d8',1,'StdioStream.h']]], - ['seek_5fset',['SEEK_SET',['../_stdio_stream_8h.html#a0d112bae8fd35be772185b6ec6bcbe64',1,'StdioStream.h']]], - ['seekcur',['seekCur',['../class_fat_file.html#a5812037ea30777cc350698ad26f2c73f',1,'FatFile']]], - ['seekdir',['seekdir',['../classios__base.html#ab01103ba35f6ba93a704b3ec0c86191e',1,'ios_base']]], - ['seekend',['seekEnd',['../class_fat_file.html#a84f677f4e75ef6fa2eb632f4cdf6b486',1,'FatFile']]], - ['seekg',['seekg',['../classistream.html#a52d637b1aeca9946085a4a72e0208aec',1,'istream::seekg(pos_type pos)'],['../classistream.html#a60dd48a3b374fb9cbdc59e1f930dea95',1,'istream::seekg(off_type off, seekdir way)']]], - ['seekp',['seekp',['../classostream.html#a18b453d2770a8852c312cbda919c4687',1,'ostream::seekp(pos_type pos)'],['../classostream.html#af6265a5be29237517b30673667ba4213',1,'ostream::seekp(off_type off, seekdir way)']]], - ['seekset',['seekSet',['../class_fat_file.html#ab067190d25733ed7e697d9890f61fd7a',1,'FatFile']]], - ['seqpos',['seqPos',['../structfname__t.html#a96b7c779dec8dd568be3290451078a4e',1,'fname_t']]], - ['setcwd',['setCwd',['../class_fat_file.html#a360ef9c05e677271bed6c0a4d663634c',1,'FatFile']]], - ['setf',['setf',['../classios__base.html#ab5db835cb45bba7684ebf72d9a3cccb4',1,'ios_base::setf(fmtflags fl)'],['../classios__base.html#a74dbc93607ab7d68a87ec326b92b6c81',1,'ios_base::setf(fmtflags fl, fmtflags mask)']]], - ['setfill',['setfill',['../structsetfill.html',1,'setfill'],['../structsetfill.html#abcd87f0632678d277df55406d25c8325',1,'setfill::setfill()']]], - ['setpos',['setpos',['../class_fat_file.html#acf264de4e3ca36c5e8a39e56173c9044',1,'FatFile']]], - ['setprecision',['setprecision',['../structsetprecision.html',1,'setprecision'],['../structsetprecision.html#a73fce143591989f56ef887a2ea86ac45',1,'setprecision::setprecision()']]], - ['setstate',['setstate',['../classios.html#aee5d194656bdfb0c8621b23ea2f51afb',1,'ios']]], - ['setw',['setw',['../structsetw.html',1,'setw'],['../structsetw.html#afd8bfd075474f63df3c8b44ad47517d2',1,'setw::setw()']]], - ['sfn',['sfn',['../structfname__t.html#a37ed0c108b1feb81be4f8c041a4336bd',1,'fname_t']]], - ['showbase',['showbase',['../classios__base.html#a7e3373ab307feecfc228bc9bdb29cd01',1,'ios_base::showbase()'],['../ios_8h.html#a73159e1398939807aeae6015dd86f2f4',1,'showbase(): ios.h']]], - ['showpoint',['showpoint',['../classios__base.html#ac9bb172682e157f037bd7fb82a236ee6',1,'ios_base::showpoint()'],['../ios_8h.html#a322f5897ace09768cd782f0c8f222770',1,'showpoint(): ios.h']]], - ['showpos',['showpos',['../classios__base.html#a7bfa4a883933105d10f8ce2693cb9f21',1,'ios_base::showpos()'],['../ios_8h.html#a80798554dbfece679adb0e05eb855943',1,'showpos(): ios.h']]], - ['size',['size',['../class_file.html#a603d3cd3319142d00a7ebd434970b017',1,'File']]], - ['skipwhite',['skipWhite',['../classistream.html#a0f7468be86d93de5d33fa99095898279',1,'istream']]], - ['skipws',['skipws',['../classios__base.html#a64977c777d6e45826d1be9763f17f824',1,'ios_base::skipws()'],['../ios_8h.html#a972282e5d9d894f61c8a54423858c0a4',1,'skipws(): ios.h']]], - ['spistart',['spiStart',['../class_sd_spi_card.html#aa39feb6ebb269071ac6843a424ac311c',1,'SdSpiCard']]], - ['spistop',['spiStop',['../class_sd_spi_card.html#a1033a4a68d38f52dddf6a1764fcca3e1',1,'SdSpiCard']]], - ['stdiostream',['StdioStream',['../class_stdio_stream.html',1,'StdioStream'],['../class_stdio_stream.html#a96b2c027e76bfca6d6835c9ae1be2ad2',1,'StdioStream::StdioStream()']]], - ['stdiostream_2eh',['StdioStream.h',['../_stdio_stream_8h.html',1,'']]], - ['stream_5fbuf_5fsize',['STREAM_BUF_SIZE',['../_stdio_stream_8h.html#ad9a6150ef11e2616c1a99bc777df17d3',1,'StdioStream.h']]], - ['streamsize',['streamsize',['../classios__base.html#a82836e1d3cc603fba8f0b54d323a2dff',1,'ios_base']]], - ['structsignature',['structSignature',['../structfat32__fsinfo.html#aa4a9ed657a0f58a7a1c75760c3a79fd4',1,'fat32_fsinfo']]], - ['sync',['sync',['../class_fat_file.html#a67f3dc4896c542d695e11aac927f585e',1,'FatFile::sync()'],['../class_fat_cache.html#a4d76d4f46ce5994f6fc4678a7b4f8cf1',1,'FatCache::sync()']]], - ['syncblocks',['syncBlocks',['../class_base_block_driver.html#a5361ff2658d7654bf00b97c54c6aa2aa',1,'BaseBlockDriver::syncBlocks()'],['../class_sdio_card.html#affcd36a5c3a42042fe24716671f06632',1,'SdioCard::syncBlocks()'],['../class_sd_spi_card.html#a1b6d5f412c4ad75c2f575ca75c56c095',1,'SdSpiCard::syncBlocks()'],['../class_sd_spi_card_e_x.html#af4a7c15bae6add50d66d066c0927a021',1,'SdSpiCardEX::syncBlocks()']]], - ['syscall',['SysCall',['../class_sys_call.html',1,'']]], - ['syscall_2eh',['SysCall.h',['../_sys_call_8h.html',1,'']]] + ['rdstate',['rdstate',['../classios.html#afe4d084ba0d2704a27525147d1463c36',1,'ios']]], + ['read',['read',['../class_minimum_serial.html#a4890dd60f2ffb61eba0821cc80d411ad',1,'MinimumSerial::read()'],['../class_file.html#a4c46a1975e66c37977bf07c58ec10b4e',1,'File::read()'],['../class_fat_file.html#a60ae55ff6fe158c2340071d702a363c5',1,'FatFile::read()'],['../class_fat_file.html#a200e6e0553d5b709520c9dfac9ef77dd',1,'FatFile::read(void *buf, size_t nbyte)'],['../class_fat_cache.html#ac2bb0b8f2ce3ab5cd86cf30b4a663cea',1,'FatCache::read()']]], + ['readblock',['readBlock',['../class_base_block_driver.html#a16bb3305f3130253dd7ab6e19aa1b524',1,'BaseBlockDriver::readBlock()'],['../class_sdio_card.html#ac94605c428fa9258106835cceec470d8',1,'SdioCard::readBlock()'],['../class_sdio_card_e_x.html#a49609f0409ef01284bc83b10a8ec5efe',1,'SdioCardEX::readBlock()'],['../class_sd_spi_card.html#a4393634a82c6683ee94d1fefe0be332a',1,'SdSpiCard::readBlock()'],['../class_sd_spi_card_e_x.html#abb69c8bd538dafed1e7f33382ee48d61',1,'SdSpiCardEX::readBlock()']]], + ['readblocks',['readBlocks',['../class_base_block_driver.html#a3a029a2d02fc7cbdd7c15c8d622565c4',1,'BaseBlockDriver::readBlocks()'],['../class_sdio_card.html#a7de36d26a01dc39b7dc122c54ee03b12',1,'SdioCard::readBlocks()'],['../class_sdio_card_e_x.html#a1b50db2f87246f4ff1af4782152c5fee',1,'SdioCardEX::readBlocks()'],['../class_sd_spi_card.html#ac630f77c3137923b47c1bd12a9bbfadf',1,'SdSpiCard::readBlocks()'],['../class_sd_spi_card_e_x.html#a9e158cda94fadd12267fe7e63d06622a',1,'SdSpiCardEX::readBlocks()']]], + ['readcid',['readCID',['../class_sdio_card.html#add77777fbcf91cc41e8ec62fda169e79',1,'SdioCard::readCID()'],['../class_sd_spi_card.html#aa073dc42828164883db1b9faeff909ea',1,'SdSpiCard::readCID()']]], + ['readcsd',['readCSD',['../class_sdio_card.html#a1da0ca418c153e24b4e13b4c1e20d450',1,'SdioCard::readCSD()'],['../class_sd_spi_card.html#a9fbea9525e70f6e3602fe5153a5a1290',1,'SdSpiCard::readCSD()']]], + ['readdata',['readData',['../class_sdio_card.html#a9dc1cd99d0136e514faaecf56a6318d2',1,'SdioCard::readData()'],['../class_sd_spi_card.html#a3a1d1b4b4ceb42fcd41aaf6649482770',1,'SdSpiCard::readData()']]], + ['readdir',['readDir',['../class_fat_file.html#a1325afe074c3efecff666678cd9f116a',1,'FatFile']]], + ['readline',['readline',['../class_arduino_in_stream.html#ad4c60f813b8df6dd1d6696a3458de09c',1,'ArduinoInStream']]], + ['readocr',['readOCR',['../class_sdio_card.html#adc583f7a27f57ce55ce474b1379b9303',1,'SdioCard::readOCR()'],['../class_sd_spi_card.html#ab446e49338b3ce834a750ac6dae35f61',1,'SdSpiCard::readOCR()']]], + ['readstart',['readStart',['../class_sdio_card.html#a73beed782d16173b2e7b0e29c663f6fb',1,'SdioCard::readStart(uint32_t lba)'],['../class_sdio_card.html#a788171db84a1d724808d56ab9608e3a4',1,'SdioCard::readStart(uint32_t lba, uint32_t count)'],['../class_sd_spi_card.html#a3b1710d11496c32ba4323831e00ac6d1',1,'SdSpiCard::readStart()']]], + ['readstatus',['readStatus',['../class_sd_spi_card.html#a91d0413599efe0d63c8c2dfe4a12d9ae',1,'SdSpiCard']]], + ['readstop',['readStop',['../class_sdio_card.html#a5bd3f206d790149340783135d08eb701',1,'SdioCard::readStop()'],['../class_sd_spi_card.html#afdac7c399fa1ba3f904cf503526e007e',1,'SdSpiCard::readStop()']]], + ['remove',['remove',['../class_fat_file.html#ac837a537fbcca14c7aa390c5fc9f4e7c',1,'FatFile::remove()'],['../class_fat_file.html#afe820bbb056863e91ec482961c8dc695',1,'FatFile::remove(FatFile *dirFile, const char *path)'],['../class_fat_file_system.html#abf7d7d0dab43083d5be10d70ff4669e4',1,'FatFileSystem::remove()']]], + ['rename',['rename',['../class_fat_file.html#a4b42f2454ff462555c07ea094a92a1e0',1,'FatFile::rename()'],['../class_fat_file_system.html#a0187891a24017b41bd7c5ba63e659e65',1,'FatFileSystem::rename()']]], + ['reserved1',['reserved1',['../structfat__boot.html#affa7e6efb3ccea19ba7ea0ddadce7463',1,'fat_boot::reserved1()'],['../structfat32__boot.html#a7075c3c00aae071110fd1acb2e6fd599',1,'fat32_boot::reserved1()'],['../structfat32__fsinfo.html#ac24bd4801a60a54e5133ed1bb71bcdaa',1,'fat32_fsinfo::reserved1()']]], + ['reserved2',['reserved2',['../structfat32__fsinfo.html#a9ec0e2756cd7e169268798a558df3814',1,'fat32_fsinfo']]], + ['reservednt',['reservedNT',['../structdirectory_entry.html#afe7d00be85f3b78549b21610050da52b',1,'directoryEntry']]], + ['reservedsectorcount',['reservedSectorCount',['../structbios_parm_block.html#adb4830c345b27293c7d7b97b77f52e01',1,'biosParmBlock::reservedSectorCount()'],['../structfat__boot.html#a13f272a8f780fb43a400f873a3fd7b73',1,'fat_boot::reservedSectorCount()'],['../structfat32__boot.html#a8e490f05ad3552dfbdf8f9332d287ba0',1,'fat32_boot::reservedSectorCount()']]], + ['rewind',['rewind',['../class_fat_file.html#a5aac6e0b3cb08fc8b8668e916a8b0ca5',1,'FatFile::rewind()'],['../class_stdio_stream.html#ad985866675193d2ee1dde9e27b0d08da',1,'StdioStream::rewind()']]], + ['rewinddirectory',['rewindDirectory',['../class_file.html#ae1419603dea25a6c8480b941d7ac63a3',1,'File']]], + ['right',['right',['../classios__base.html#aec064a12730b5d87e718c1864e29ac64',1,'ios_base::right()'],['../ios_8h.html#aee80fd600c5c58a2bebbd48afdcf8280',1,'right(): ios.h']]], + ['rmdir',['rmdir',['../class_fat_file.html#a9515bac181d33e7f0125e88fa2ccd283',1,'FatFile::rmdir()'],['../class_fat_file_system.html#aaed2edc7ff7fedb163458c870bb41b33',1,'FatFileSystem::rmdir()']]], + ['rmrfstar',['rmRfStar',['../class_fat_file.html#ac780a80526f86d3def701ecdc99d8bfe',1,'FatFile']]], + ['rootdirentrycount',['rootDirEntryCount',['../structbios_parm_block.html#a9a1b24bb2dbb3a123c4ffc703954d71d',1,'biosParmBlock::rootDirEntryCount()'],['../structfat__boot.html#a2124f89e12307df944f08e6657dbf4af',1,'fat_boot::rootDirEntryCount()'],['../structfat32__boot.html#a94185496fb56c6e0e8078fc3803e9142',1,'fat32_boot::rootDirEntryCount()'],['../class_fat_volume.html#a31d0efaf3e47c9342da0dfb3735eecf1',1,'FatVolume::rootDirEntryCount()']]], + ['rootdirstart',['rootDirStart',['../class_fat_volume.html#a372f1f1fab71f5744eaf538156abe64d',1,'FatVolume']]] ]; diff --git a/extras/html/search/all_12.html b/extras/html/search/all_12.html index fe93a5bf..fd265245 100644 --- a/extras/html/search/all_12.html +++ b/extras/html/search/all_12.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/all_12.js b/extras/html/search/all_12.js index 63a7c68a..a1c4df07 100644 --- a/extras/html/search/all_12.js +++ b/extras/html/search/all_12.js @@ -1,13 +1,68 @@ var searchData= [ - ['tailsignature',['tailSignature',['../structfat32__fsinfo.html#a484dd16425e4e687dc914d12309470e0',1,'fat32_fsinfo']]], - ['tellg',['tellg',['../classistream.html#a18332bdcb7fbe33ca06045c786cac4c3',1,'istream']]], - ['tellp',['tellp',['../classostream.html#a92dec0e2bc8352df1419d1cdc434e619',1,'ostream']]], - ['timestamp',['timestamp',['../class_fat_file.html#aa53a8d1d2467ad9af7d61cbf8ee85243',1,'FatFile::timestamp(FatFile *file)'],['../class_fat_file.html#a56dabdf73833b7e961c4530eb8e16d23',1,'FatFile::timestamp(uint8_t flags, uint16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second)']]], - ['totalsectors',['totalSectors',['../structpartition_table.html#acf96e59ce648a9a0cf35751c3b6d7730',1,'partitionTable']]], - ['totalsectors16',['totalSectors16',['../structbios_parm_block.html#a686c686fde2fb109bea120f2f434db87',1,'biosParmBlock::totalSectors16()'],['../structfat__boot.html#ac8bd40dd9186882e423e10b0c83e89b7',1,'fat_boot::totalSectors16()'],['../structfat32__boot.html#acbcae2f15475a886f674f932da1deb3f',1,'fat32_boot::totalSectors16()']]], - ['totalsectors32',['totalSectors32',['../structbios_parm_block.html#abead42e130c40e2aa535202e7cb07578',1,'biosParmBlock::totalSectors32()'],['../structfat__boot.html#addeb2dd8f78418edbf544303d44133e2',1,'fat_boot::totalSectors32()'],['../structfat32__boot.html#ab79466016103c2762c6b057dd458d434',1,'fat32_boot::totalSectors32()']]], - ['trunc',['trunc',['../classios__base.html#ae62b8972f37509819e1384214071194b',1,'ios_base']]], - ['truncate',['truncate',['../class_fat_file.html#aa6e663098a578635d37d92e82d18d616',1,'FatFile::truncate()'],['../class_fat_file_system.html#ad60cb13557f35578f868e03e9ccb8be1',1,'FatFileSystem::truncate()']]], - ['type',['type',['../structpartition_table.html#a3861cf276c728c4dd30ca04e74197ee8',1,'partitionTable::type()'],['../structlong_directory_entry.html#a9adb019dbf24cce65c8d1419cd000f91',1,'longDirectoryEntry::type()'],['../class_sdio_card.html#a2151106a93280ae41bab654428214661',1,'SdioCard::type()'],['../class_sd_spi_card.html#a061d92bf154a1863a6321385b7505f6e',1,'SdSpiCard::type()']]] + ['sd2card',['Sd2Card',['../class_sd2_card.html',1,'']]], + ['sd_5ffat_5fversion',['SD_FAT_VERSION',['../_sd_fat_8h.html#aca25ecce379f446043bdee2c55304210',1,'SdFat.h']]], + ['sd_5fhas_5fcustom_5fspi',['SD_HAS_CUSTOM_SPI',['../_sd_fat_config_8h.html#a838861a01379e94361148d22e62b1977',1,'SdFatConfig.h']]], + ['sdbasefile',['SdBaseFile',['../class_sd_base_file.html',1,'SdBaseFile'],['../class_sd_base_file.html#af23fd43105b4eb629f4b66fa695a5cf3',1,'SdBaseFile::SdBaseFile()']]], + ['sdfat',['SdFat',['../class_sd_fat.html',1,'SdFat'],['../class_sd_fat.html#a68d0e890435e3e71e5e44db1736add1e',1,'SdFat::SdFat()']]], + ['sdfat_2eh',['SdFat.h',['../_sd_fat_8h.html',1,'']]], + ['sdfatconfig_2eh',['SdFatConfig.h',['../_sd_fat_config_8h.html',1,'']]], + ['sdfatex',['SdFatEX',['../class_sd_fat_e_x.html',1,'SdFatEX'],['../class_sd_fat_e_x.html#aef4d79f9a36785543f48ddc18ac2af78',1,'SdFatEX::SdFatEX()']]], + ['sdfatsdio',['SdFatSdio',['../class_sd_fat_sdio.html',1,'']]], + ['sdfatsdioex',['SdFatSdioEX',['../class_sd_fat_sdio_e_x.html',1,'']]], + ['sdfatsoftspi',['SdFatSoftSpi',['../class_sd_fat_soft_spi.html',1,'']]], + ['sdfatsoftspiex',['SdFatSoftSpiEX',['../class_sd_fat_soft_spi_e_x.html',1,'']]], + ['sdfile',['SdFile',['../class_sd_file.html',1,'SdFile'],['../class_sd_file.html#ad05be3a1fb635448d15a154424b6c33f',1,'SdFile::SdFile()']]], + ['sdfilesystem',['SdFileSystem',['../class_sd_file_system.html',1,'']]], + ['sdfilesystem_3c_20sdiocard_20_3e',['SdFileSystem< SdioCard >',['../class_sd_file_system.html',1,'']]], + ['sdfilesystem_3c_20sdiocardex_20_3e',['SdFileSystem< SdioCardEX >',['../class_sd_file_system.html',1,'']]], + ['sdfilesystem_3c_20sdspicard_20_3e',['SdFileSystem< SdSpiCard >',['../class_sd_file_system.html',1,'']]], + ['sdfilesystem_3c_20sdspicardex_20_3e',['SdFileSystem< SdSpiCardEX >',['../class_sd_file_system.html',1,'']]], + ['sdiocard',['SdioCard',['../class_sdio_card.html',1,'']]], + ['sdiocardex',['SdioCardEX',['../class_sdio_card_e_x.html',1,'']]], + ['sdios_2eh',['sdios.h',['../sdios_8h.html',1,'']]], + ['sdspicard',['SdSpiCard',['../class_sd_spi_card.html',1,'SdSpiCard'],['../class_sd_spi_card.html#a0441c5da53bd3bd72fb833fc940f25e8',1,'SdSpiCard::SdSpiCard()']]], + ['sdspicard_2eh',['SdSpiCard.h',['../_sd_spi_card_8h.html',1,'']]], + ['sdspicardex',['SdSpiCardEX',['../class_sd_spi_card_e_x.html',1,'']]], + ['sectorspercluster',['sectorsPerCluster',['../structbios_parm_block.html#a45d5e2d8c93a028a074e8ce3dc751ab5',1,'biosParmBlock::sectorsPerCluster()'],['../structfat__boot.html#ab3063726125b16a2ccad719548d79abd',1,'fat_boot::sectorsPerCluster()'],['../structfat32__boot.html#a63ded2780732f166f7b7d36bc6aed702',1,'fat32_boot::sectorsPerCluster()']]], + ['sectorsperfat16',['sectorsPerFat16',['../structbios_parm_block.html#a24d6e5a9069491d5db6dbe747336985b',1,'biosParmBlock::sectorsPerFat16()'],['../structfat__boot.html#a0d5ab13399759acfa571e49b85600db1',1,'fat_boot::sectorsPerFat16()'],['../structfat32__boot.html#aeaa78272cd42b162ea448e1642f75cab',1,'fat32_boot::sectorsPerFat16()']]], + ['sectorsperfat32',['sectorsPerFat32',['../structbios_parm_block.html#ad80429df03a6b80f79b18cb6e1008d64',1,'biosParmBlock::sectorsPerFat32()'],['../structfat32__boot.html#aa00db084ff2f7e25febef321469adeb9',1,'fat32_boot::sectorsPerFat32()']]], + ['sectorspertrack',['sectorsPerTrack',['../structfat__boot.html#a6d5ceaf374e0607be8b8162bf657f282',1,'fat_boot::sectorsPerTrack()'],['../structfat32__boot.html#a9525b2e63f84a5cf62ea20199cedf5de',1,'fat32_boot::sectorsPerTrack()']]], + ['sectorspertrtack',['sectorsPerTrtack',['../structbios_parm_block.html#a7c27cb7f66c2c9d5266d896e8df227c7',1,'biosParmBlock']]], + ['seek',['seek',['../class_file.html#a2d41ea52356b769e05e1242685758c08',1,'File']]], + ['seek_5fcur',['SEEK_CUR',['../_stdio_stream_8h.html#a4c8d0b76b470ba65a43ca46a88320f39',1,'StdioStream.h']]], + ['seek_5fend',['SEEK_END',['../_stdio_stream_8h.html#ad2a2e6c114780c3071efd24f16c7f7d8',1,'StdioStream.h']]], + ['seek_5fset',['SEEK_SET',['../_stdio_stream_8h.html#a0d112bae8fd35be772185b6ec6bcbe64',1,'StdioStream.h']]], + ['seekcur',['seekCur',['../class_fat_file.html#a5812037ea30777cc350698ad26f2c73f',1,'FatFile']]], + ['seekdir',['seekdir',['../classios__base.html#ab01103ba35f6ba93a704b3ec0c86191e',1,'ios_base']]], + ['seekend',['seekEnd',['../class_fat_file.html#a84f677f4e75ef6fa2eb632f4cdf6b486',1,'FatFile']]], + ['seekg',['seekg',['../classistream.html#a52d637b1aeca9946085a4a72e0208aec',1,'istream::seekg(pos_type pos)'],['../classistream.html#a60dd48a3b374fb9cbdc59e1f930dea95',1,'istream::seekg(off_type off, seekdir way)']]], + ['seekp',['seekp',['../classostream.html#a18b453d2770a8852c312cbda919c4687',1,'ostream::seekp(pos_type pos)'],['../classostream.html#af6265a5be29237517b30673667ba4213',1,'ostream::seekp(off_type off, seekdir way)']]], + ['seekset',['seekSet',['../class_fat_file.html#ab067190d25733ed7e697d9890f61fd7a',1,'FatFile']]], + ['seqpos',['seqPos',['../structfname__t.html#a96b7c779dec8dd568be3290451078a4e',1,'fname_t']]], + ['setcwd',['setCwd',['../class_fat_file.html#a360ef9c05e677271bed6c0a4d663634c',1,'FatFile']]], + ['setf',['setf',['../classios__base.html#ab5db835cb45bba7684ebf72d9a3cccb4',1,'ios_base::setf(fmtflags fl)'],['../classios__base.html#a74dbc93607ab7d68a87ec326b92b6c81',1,'ios_base::setf(fmtflags fl, fmtflags mask)']]], + ['setfill',['setfill',['../structsetfill.html',1,'setfill'],['../structsetfill.html#abcd87f0632678d277df55406d25c8325',1,'setfill::setfill()']]], + ['setpos',['setpos',['../class_fat_file.html#acf264de4e3ca36c5e8a39e56173c9044',1,'FatFile']]], + ['setprecision',['setprecision',['../structsetprecision.html',1,'setprecision'],['../structsetprecision.html#a73fce143591989f56ef887a2ea86ac45',1,'setprecision::setprecision()']]], + ['setstate',['setstate',['../classios.html#aee5d194656bdfb0c8621b23ea2f51afb',1,'ios']]], + ['setw',['setw',['../structsetw.html',1,'setw'],['../structsetw.html#afd8bfd075474f63df3c8b44ad47517d2',1,'setw::setw()']]], + ['sfn',['sfn',['../structfname__t.html#a37ed0c108b1feb81be4f8c041a4336bd',1,'fname_t']]], + ['showbase',['showbase',['../classios__base.html#a7e3373ab307feecfc228bc9bdb29cd01',1,'ios_base::showbase()'],['../ios_8h.html#a73159e1398939807aeae6015dd86f2f4',1,'showbase(): ios.h']]], + ['showpoint',['showpoint',['../classios__base.html#ac9bb172682e157f037bd7fb82a236ee6',1,'ios_base::showpoint()'],['../ios_8h.html#a322f5897ace09768cd782f0c8f222770',1,'showpoint(): ios.h']]], + ['showpos',['showpos',['../classios__base.html#a7bfa4a883933105d10f8ce2693cb9f21',1,'ios_base::showpos()'],['../ios_8h.html#a80798554dbfece679adb0e05eb855943',1,'showpos(): ios.h']]], + ['size',['size',['../class_file.html#a603d3cd3319142d00a7ebd434970b017',1,'File']]], + ['skipwhite',['skipWhite',['../classistream.html#a0f7468be86d93de5d33fa99095898279',1,'istream']]], + ['skipws',['skipws',['../classios__base.html#a64977c777d6e45826d1be9763f17f824',1,'ios_base::skipws()'],['../ios_8h.html#a972282e5d9d894f61c8a54423858c0a4',1,'skipws(): ios.h']]], + ['spistart',['spiStart',['../class_sd_spi_card.html#aa39feb6ebb269071ac6843a424ac311c',1,'SdSpiCard']]], + ['spistop',['spiStop',['../class_sd_spi_card.html#a1033a4a68d38f52dddf6a1764fcca3e1',1,'SdSpiCard']]], + ['stdiostream',['StdioStream',['../class_stdio_stream.html',1,'StdioStream'],['../class_stdio_stream.html#a96b2c027e76bfca6d6835c9ae1be2ad2',1,'StdioStream::StdioStream()']]], + ['stdiostream_2eh',['StdioStream.h',['../_stdio_stream_8h.html',1,'']]], + ['stream_5fbuf_5fsize',['STREAM_BUF_SIZE',['../_stdio_stream_8h.html#ad9a6150ef11e2616c1a99bc777df17d3',1,'StdioStream.h']]], + ['streamsize',['streamsize',['../classios__base.html#a82836e1d3cc603fba8f0b54d323a2dff',1,'ios_base']]], + ['structsignature',['structSignature',['../structfat32__fsinfo.html#aa4a9ed657a0f58a7a1c75760c3a79fd4',1,'fat32_fsinfo']]], + ['sync',['sync',['../class_fat_file.html#a67f3dc4896c542d695e11aac927f585e',1,'FatFile::sync()'],['../class_fat_cache.html#a4d76d4f46ce5994f6fc4678a7b4f8cf1',1,'FatCache::sync()']]], + ['syncblocks',['syncBlocks',['../class_base_block_driver.html#a5361ff2658d7654bf00b97c54c6aa2aa',1,'BaseBlockDriver::syncBlocks()'],['../class_sdio_card.html#affcd36a5c3a42042fe24716671f06632',1,'SdioCard::syncBlocks()'],['../class_sdio_card_e_x.html#a02699a39ef940441ef0f1049742c5aa7',1,'SdioCardEX::syncBlocks()'],['../class_sd_spi_card.html#a1b6d5f412c4ad75c2f575ca75c56c095',1,'SdSpiCard::syncBlocks()'],['../class_sd_spi_card_e_x.html#af4a7c15bae6add50d66d066c0927a021',1,'SdSpiCardEX::syncBlocks()']]], + ['syscall',['SysCall',['../class_sys_call.html',1,'']]], + ['syscall_2eh',['SysCall.h',['../_sys_call_8h.html',1,'']]] ]; diff --git a/extras/html/search/all_13.html b/extras/html/search/all_13.html index cb938b91..04f66e2f 100644 --- a/extras/html/search/all_13.html +++ b/extras/html/search/all_13.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/all_13.js b/extras/html/search/all_13.js index a2e23a1f..aaf59419 100644 --- a/extras/html/search/all_13.js +++ b/extras/html/search/all_13.js @@ -1,13 +1,13 @@ var searchData= [ - ['ungetc',['ungetc',['../class_stdio_stream.html#ac00e0dd906c2e857ece53794c6c92786',1,'StdioStream']]], - ['ungetc_5fbuf_5fsize',['UNGETC_BUF_SIZE',['../_stdio_stream_8h.html#a785dd413c0d7b05f95df82d3453ecacd',1,'StdioStream.h']]], - ['unsetf',['unsetf',['../classios__base.html#a3bf7d054a433ed15e8b984e16f630fa4',1,'ios_base']]], - ['uppercase',['uppercase',['../classios__base.html#ade3db1fe3249e87f4c47a9a8916793d9',1,'ios_base::uppercase()'],['../ios_8h.html#af5d5e1a0effa1b500bb882feed5a2061',1,'uppercase(): ios.h']]], - ['use_5flong_5ffile_5fnames',['USE_LONG_FILE_NAMES',['../_sd_fat_config_8h.html#a2536b194b3b007604a39e8526e108b52',1,'USE_LONG_FILE_NAMES(): SdFatConfig.h'],['../_fat_lib_config_8h.html#a2536b194b3b007604a39e8526e108b52',1,'USE_LONG_FILE_NAMES(): FatLibConfig.h']]], - ['use_5fmulti_5fblock_5fio',['USE_MULTI_BLOCK_IO',['../_sd_fat_config_8h.html#afc3ef382d3ab8d7e6f8fc134ef21d487',1,'USE_MULTI_BLOCK_IO(): SdFatConfig.h'],['../_fat_lib_config_8h.html#afc3ef382d3ab8d7e6f8fc134ef21d487',1,'USE_MULTI_BLOCK_IO(): FatLibConfig.h']]], - ['use_5fsd_5fcrc',['USE_SD_CRC',['../_sd_fat_config_8h.html#af2e76ffb2fdb830175abf513dd640fdd',1,'SdFatConfig.h']]], - ['use_5fseparate_5ffat_5fcache',['USE_SEPARATE_FAT_CACHE',['../_sd_fat_config_8h.html#a23f662882413dcb017ebd8107473b8c3',1,'USE_SEPARATE_FAT_CACHE(): SdFatConfig.h'],['../_fat_lib_config_8h.html#a23f662882413dcb017ebd8107473b8c3',1,'USE_SEPARATE_FAT_CACHE(): FatLibConfig.h']]], - ['use_5fstandard_5fspi_5flibrary',['USE_STANDARD_SPI_LIBRARY',['../_sd_fat_config_8h.html#a3dc42547ca4567cb789bec55759afeb2',1,'SdFatConfig.h']]], - ['usuallyzero',['usuallyZero',['../structmaster_boot_record.html#afacfc863e98f64053cd9459c6dec948f',1,'masterBootRecord']]] + ['tailsignature',['tailSignature',['../structfat32__fsinfo.html#a484dd16425e4e687dc914d12309470e0',1,'fat32_fsinfo']]], + ['tellg',['tellg',['../classistream.html#a18332bdcb7fbe33ca06045c786cac4c3',1,'istream']]], + ['tellp',['tellp',['../classostream.html#a92dec0e2bc8352df1419d1cdc434e619',1,'ostream']]], + ['timestamp',['timestamp',['../class_fat_file.html#aa53a8d1d2467ad9af7d61cbf8ee85243',1,'FatFile::timestamp(FatFile *file)'],['../class_fat_file.html#a56dabdf73833b7e961c4530eb8e16d23',1,'FatFile::timestamp(uint8_t flags, uint16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second)']]], + ['totalsectors',['totalSectors',['../structpartition_table.html#acf96e59ce648a9a0cf35751c3b6d7730',1,'partitionTable']]], + ['totalsectors16',['totalSectors16',['../structbios_parm_block.html#a686c686fde2fb109bea120f2f434db87',1,'biosParmBlock::totalSectors16()'],['../structfat__boot.html#ac8bd40dd9186882e423e10b0c83e89b7',1,'fat_boot::totalSectors16()'],['../structfat32__boot.html#acbcae2f15475a886f674f932da1deb3f',1,'fat32_boot::totalSectors16()']]], + ['totalsectors32',['totalSectors32',['../structbios_parm_block.html#abead42e130c40e2aa535202e7cb07578',1,'biosParmBlock::totalSectors32()'],['../structfat__boot.html#addeb2dd8f78418edbf544303d44133e2',1,'fat_boot::totalSectors32()'],['../structfat32__boot.html#ab79466016103c2762c6b057dd458d434',1,'fat32_boot::totalSectors32()']]], + ['trunc',['trunc',['../classios__base.html#ae62b8972f37509819e1384214071194b',1,'ios_base']]], + ['truncate',['truncate',['../class_fat_file.html#aa6e663098a578635d37d92e82d18d616',1,'FatFile::truncate()'],['../class_fat_file_system.html#ad60cb13557f35578f868e03e9ccb8be1',1,'FatFileSystem::truncate()']]], + ['type',['type',['../structpartition_table.html#a3861cf276c728c4dd30ca04e74197ee8',1,'partitionTable::type()'],['../structlong_directory_entry.html#a9adb019dbf24cce65c8d1419cd000f91',1,'longDirectoryEntry::type()'],['../class_sdio_card.html#a2151106a93280ae41bab654428214661',1,'SdioCard::type()'],['../class_sd_spi_card.html#a48f1e3f107d7242518bdfed78acb46bc',1,'SdSpiCard::type()']]] ]; diff --git a/extras/html/search/all_14.html b/extras/html/search/all_14.html index 2fcfb13a..285f34bd 100644 --- a/extras/html/search/all_14.html +++ b/extras/html/search/all_14.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/all_14.js b/extras/html/search/all_14.js index 2983655e..d732d327 100644 --- a/extras/html/search/all_14.js +++ b/extras/html/search/all_14.js @@ -1,9 +1,14 @@ var searchData= [ - ['vol',['vol',['../class_fat_file_system.html#a4ca68fe47bb675df0a80df1ed7a53698',1,'FatFileSystem']]], - ['volume',['volume',['../class_fat_file.html#a3c64bd8a9abb9a6461d4addb405614df',1,'FatFile']]], - ['volumeblockcount',['volumeBlockCount',['../class_fat_volume.html#a07bc98088ce4a9c725700899c184f7fc',1,'FatVolume']]], - ['volumelabel',['volumeLabel',['../structfat__boot.html#a9ee733f1b1abc0210ec8f9676bba2218',1,'fat_boot::volumeLabel()'],['../structfat32__boot.html#a8e6349f46344145a7320637a58107b3b',1,'fat32_boot::volumeLabel()']]], - ['volumeserialnumber',['volumeSerialNumber',['../structfat__boot.html#ac05e88a0d27f0340ba008834361d2b20',1,'fat_boot::volumeSerialNumber()'],['../structfat32__boot.html#a20768678da224faefd8acf12cabdbfb8',1,'fat32_boot::volumeSerialNumber()']]], - ['vwd',['vwd',['../class_fat_file_system.html#acf257d02b7166683bda2abc5058004bf',1,'FatFileSystem']]] + ['ungetc',['ungetc',['../class_stdio_stream.html#ac00e0dd906c2e857ece53794c6c92786',1,'StdioStream']]], + ['ungetc_5fbuf_5fsize',['UNGETC_BUF_SIZE',['../_stdio_stream_8h.html#a785dd413c0d7b05f95df82d3453ecacd',1,'StdioStream.h']]], + ['unsetf',['unsetf',['../classios__base.html#a3bf7d054a433ed15e8b984e16f630fa4',1,'ios_base']]], + ['uppercase',['uppercase',['../classios__base.html#ade3db1fe3249e87f4c47a9a8916793d9',1,'ios_base::uppercase()'],['../ios_8h.html#af5d5e1a0effa1b500bb882feed5a2061',1,'uppercase(): ios.h']]], + ['use_5ffcntl_5fh',['USE_FCNTL_H',['../_sd_fat_config_8h.html#ab4b7255422e65730612f1f6af1a26752',1,'SdFatConfig.h']]], + ['use_5flong_5ffile_5fnames',['USE_LONG_FILE_NAMES',['../_sd_fat_config_8h.html#a2536b194b3b007604a39e8526e108b52',1,'USE_LONG_FILE_NAMES(): SdFatConfig.h'],['../_fat_lib_config_8h.html#a2536b194b3b007604a39e8526e108b52',1,'USE_LONG_FILE_NAMES(): FatLibConfig.h']]], + ['use_5fmulti_5fblock_5fio',['USE_MULTI_BLOCK_IO',['../_sd_fat_config_8h.html#afc3ef382d3ab8d7e6f8fc134ef21d487',1,'USE_MULTI_BLOCK_IO(): SdFatConfig.h'],['../_fat_lib_config_8h.html#afc3ef382d3ab8d7e6f8fc134ef21d487',1,'USE_MULTI_BLOCK_IO(): FatLibConfig.h']]], + ['use_5fsd_5fcrc',['USE_SD_CRC',['../_sd_fat_config_8h.html#af2e76ffb2fdb830175abf513dd640fdd',1,'SdFatConfig.h']]], + ['use_5fseparate_5ffat_5fcache',['USE_SEPARATE_FAT_CACHE',['../_sd_fat_config_8h.html#a23f662882413dcb017ebd8107473b8c3',1,'USE_SEPARATE_FAT_CACHE(): SdFatConfig.h'],['../_fat_lib_config_8h.html#a23f662882413dcb017ebd8107473b8c3',1,'USE_SEPARATE_FAT_CACHE(): FatLibConfig.h']]], + ['use_5fstandard_5fspi_5flibrary',['USE_STANDARD_SPI_LIBRARY',['../_sd_fat_config_8h.html#a3dc42547ca4567cb789bec55759afeb2',1,'SdFatConfig.h']]], + ['usuallyzero',['usuallyZero',['../structmaster_boot_record.html#afacfc863e98f64053cd9459c6dec948f',1,'masterBootRecord']]] ]; diff --git a/extras/html/search/all_15.html b/extras/html/search/all_15.html index a31c6e8f..0ed74e01 100644 --- a/extras/html/search/all_15.html +++ b/extras/html/search/all_15.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/all_15.js b/extras/html/search/all_15.js index a92f3a2a..f19dcfb3 100644 --- a/extras/html/search/all_15.js +++ b/extras/html/search/all_15.js @@ -1,14 +1,9 @@ var searchData= [ - ['w',['w',['../structsetw.html#ab48d915a24d3f3365c9eb76e138a6f4e',1,'setw']]], - ['wdt_5fyield_5ftime_5fmicros',['WDT_YIELD_TIME_MICROS',['../_sd_fat_config_8h.html#a4e8a928d86c50c91c0bfc9a442373e14',1,'SdFatConfig.h']]], - ['width',['width',['../classios__base.html#afa30e7644b4eae5928ad9c487ad387de',1,'ios_base::width()'],['../classios__base.html#ab2ba0f005bbf3d8ebed93b64068492e0',1,'ios_base::width(unsigned n)']]], - ['wipe',['wipe',['../class_fat_file_system.html#a36d7831f92acfbfef1c4a24dd7103dc4',1,'FatFileSystem::wipe()'],['../class_fat_volume.html#a8088aa74cf601996905dadd2eea6966c',1,'FatVolume::wipe()']]], - ['write',['write',['../class_minimum_serial.html#a0ca1d9631fe5f2f00878bd481dbbd3aa',1,'MinimumSerial::write()'],['../class_print_file.html#a460b033ff85e85f684f8d9b615645db1',1,'PrintFile::write(uint8_t b)'],['../class_print_file.html#a29c1d534d21c3a82ad04232d37119a57',1,'PrintFile::write(const uint8_t *buf, size_t size)'],['../class_file.html#a618a6b2b7e81bfb93e0d3c158f614f90',1,'File::write(uint8_t b)'],['../class_file.html#aa531c1641a2363e1f6b9d103f37433da',1,'File::write(const uint8_t *buf, size_t size)'],['../class_fat_file.html#aa4a5b81161994cea07938702cdfce49f',1,'FatFile::write(const char *str)'],['../class_fat_file.html#a5524bd9f3b8f54ee163e391cba618186',1,'FatFile::write(uint8_t b)'],['../class_fat_file.html#a0ab9df44a9ee4b6eb0a78f15f1e30004',1,'FatFile::write(const void *buf, size_t nbyte)']]], - ['writeblock',['writeBlock',['../class_base_block_driver.html#a87df3db1b400286883661525441d39fa',1,'BaseBlockDriver::writeBlock()'],['../class_sdio_card.html#ae53e5f72ddf9ace3f47774d968e064ed',1,'SdioCard::writeBlock()'],['../class_sd_spi_card.html#a03a0bdb0f37a88076f24a2133cf5b4ed',1,'SdSpiCard::writeBlock()'],['../class_sd_spi_card_e_x.html#a6bd5e6bcfc2ab9574daa11bdd342be7b',1,'SdSpiCardEX::writeBlock()']]], - ['writeblocks',['writeBlocks',['../class_base_block_driver.html#a3d6520b21252ebfb17b0cac0b87689b1',1,'BaseBlockDriver::writeBlocks()'],['../class_sdio_card.html#a8b811f875497e90e75fbe6c2d41d89cb',1,'SdioCard::writeBlocks()'],['../class_sd_spi_card.html#a181d96fe44891b7caabcd47dd29ac913',1,'SdSpiCard::writeBlocks()'],['../class_sd_spi_card_e_x.html#a9a7a5815b56c2cc77590a72635593762',1,'SdSpiCardEX::writeBlocks()']]], - ['writedata',['writeData',['../class_sd_spi_card.html#a9495c0b148eb380358bb4a9721c0dffa',1,'SdSpiCard']]], - ['writestart',['writeStart',['../class_sd_spi_card.html#a56d4750a5d2f693943eec985cb61ffe2',1,'SdSpiCard::writeStart(uint32_t blockNumber)'],['../class_sd_spi_card.html#a8bf0dc991308dcd2a7427bad89a9e2ba',1,'SdSpiCard::writeStart(uint32_t blockNumber, uint32_t eraseCount)']]], - ['writestop',['writeStop',['../class_sd_spi_card.html#aef9154785a4de5560fb807e4f9316fb0',1,'SdSpiCard']]], - ['ws',['ws',['../iostream_8h.html#a8adf4c714b8c8f201dedc83ee04556b1',1,'iostream.h']]] + ['vol',['vol',['../class_fat_file_system.html#a4ca68fe47bb675df0a80df1ed7a53698',1,'FatFileSystem']]], + ['volume',['volume',['../class_fat_file.html#ae813920a21860b25f25d95c934dada0f',1,'FatFile']]], + ['volumeblockcount',['volumeBlockCount',['../class_fat_volume.html#ada9f893c796559c132ef9da061f04a39',1,'FatVolume']]], + ['volumelabel',['volumeLabel',['../structfat__boot.html#a9ee733f1b1abc0210ec8f9676bba2218',1,'fat_boot::volumeLabel()'],['../structfat32__boot.html#a8e6349f46344145a7320637a58107b3b',1,'fat32_boot::volumeLabel()']]], + ['volumeserialnumber',['volumeSerialNumber',['../structfat__boot.html#ac05e88a0d27f0340ba008834361d2b20',1,'fat_boot::volumeSerialNumber()'],['../structfat32__boot.html#a20768678da224faefd8acf12cabdbfb8',1,'fat32_boot::volumeSerialNumber()']]], + ['vwd',['vwd',['../class_fat_file_system.html#acf257d02b7166683bda2abc5058004bf',1,'FatFileSystem']]] ]; diff --git a/extras/html/search/all_16.html b/extras/html/search/all_16.html index 6343dec5..696f0252 100644 --- a/extras/html/search/all_16.html +++ b/extras/html/search/all_16.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/all_16.js b/extras/html/search/all_16.js index 685c4a73..3f333e17 100644 --- a/extras/html/search/all_16.js +++ b/extras/html/search/all_16.js @@ -1,4 +1,14 @@ var searchData= [ - ['yield',['yield',['../class_sys_call.html#a2219ba5ea8e411b022a3a00df5f380e0',1,'SysCall']]] + ['w',['w',['../structsetw.html#ab48d915a24d3f3365c9eb76e138a6f4e',1,'setw']]], + ['wdt_5fyield_5ftime_5fmicros',['WDT_YIELD_TIME_MICROS',['../_sd_fat_config_8h.html#a4e8a928d86c50c91c0bfc9a442373e14',1,'SdFatConfig.h']]], + ['width',['width',['../classios__base.html#afa30e7644b4eae5928ad9c487ad387de',1,'ios_base::width()'],['../classios__base.html#ab2ba0f005bbf3d8ebed93b64068492e0',1,'ios_base::width(unsigned n)']]], + ['wipe',['wipe',['../class_fat_file_system.html#a36d7831f92acfbfef1c4a24dd7103dc4',1,'FatFileSystem::wipe()'],['../class_fat_volume.html#a8088aa74cf601996905dadd2eea6966c',1,'FatVolume::wipe()']]], + ['write',['write',['../class_minimum_serial.html#a0ca1d9631fe5f2f00878bd481dbbd3aa',1,'MinimumSerial::write()'],['../class_print_file.html#a460b033ff85e85f684f8d9b615645db1',1,'PrintFile::write(uint8_t b)'],['../class_print_file.html#a29c1d534d21c3a82ad04232d37119a57',1,'PrintFile::write(const uint8_t *buf, size_t size)'],['../class_file.html#a618a6b2b7e81bfb93e0d3c158f614f90',1,'File::write(uint8_t b)'],['../class_file.html#aa531c1641a2363e1f6b9d103f37433da',1,'File::write(const uint8_t *buf, size_t size)'],['../class_fat_file.html#aa4a5b81161994cea07938702cdfce49f',1,'FatFile::write(const char *str)'],['../class_fat_file.html#a5524bd9f3b8f54ee163e391cba618186',1,'FatFile::write(uint8_t b)'],['../class_fat_file.html#a0ab9df44a9ee4b6eb0a78f15f1e30004',1,'FatFile::write(const void *buf, size_t nbyte)']]], + ['writeblock',['writeBlock',['../class_base_block_driver.html#a87df3db1b400286883661525441d39fa',1,'BaseBlockDriver::writeBlock()'],['../class_sdio_card.html#ae53e5f72ddf9ace3f47774d968e064ed',1,'SdioCard::writeBlock()'],['../class_sdio_card_e_x.html#ab34379d6663461dd0000180e640b73be',1,'SdioCardEX::writeBlock()'],['../class_sd_spi_card.html#a03a0bdb0f37a88076f24a2133cf5b4ed',1,'SdSpiCard::writeBlock()'],['../class_sd_spi_card_e_x.html#a6bd5e6bcfc2ab9574daa11bdd342be7b',1,'SdSpiCardEX::writeBlock()']]], + ['writeblocks',['writeBlocks',['../class_base_block_driver.html#a3d6520b21252ebfb17b0cac0b87689b1',1,'BaseBlockDriver::writeBlocks()'],['../class_sdio_card.html#a8b811f875497e90e75fbe6c2d41d89cb',1,'SdioCard::writeBlocks()'],['../class_sdio_card_e_x.html#a0e504921296a473da074d4a60d573f29',1,'SdioCardEX::writeBlocks()'],['../class_sd_spi_card.html#a181d96fe44891b7caabcd47dd29ac913',1,'SdSpiCard::writeBlocks()'],['../class_sd_spi_card_e_x.html#a9a7a5815b56c2cc77590a72635593762',1,'SdSpiCardEX::writeBlocks()']]], + ['writedata',['writeData',['../class_sdio_card.html#a8467e7ffafa45ff930b38a6f18e9547a',1,'SdioCard::writeData()'],['../class_sd_spi_card.html#a9495c0b148eb380358bb4a9721c0dffa',1,'SdSpiCard::writeData()']]], + ['writestart',['writeStart',['../class_sdio_card.html#a6216b2b1c42bd585669955f774292f78',1,'SdioCard::writeStart(uint32_t lba)'],['../class_sdio_card.html#a55b31eb21c986c8476bf42e975801e05',1,'SdioCard::writeStart(uint32_t lba, uint32_t count)'],['../class_sd_spi_card.html#a56d4750a5d2f693943eec985cb61ffe2',1,'SdSpiCard::writeStart(uint32_t blockNumber)'],['../class_sd_spi_card.html#a8bf0dc991308dcd2a7427bad89a9e2ba',1,'SdSpiCard::writeStart(uint32_t blockNumber, uint32_t eraseCount)']]], + ['writestop',['writeStop',['../class_sdio_card.html#acb560c2ea1f30c646b96f02e728b0fe1',1,'SdioCard::writeStop()'],['../class_sd_spi_card.html#aef9154785a4de5560fb807e4f9316fb0',1,'SdSpiCard::writeStop()']]], + ['ws',['ws',['../iostream_8h.html#a8adf4c714b8c8f201dedc83ee04556b1',1,'iostream.h']]] ]; diff --git a/extras/html/search/all_17.html b/extras/html/search/all_17.html new file mode 100644 index 00000000..f1e14b63 --- /dev/null +++ b/extras/html/search/all_17.html @@ -0,0 +1,30 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/extras/html/search/all_17.js b/extras/html/search/all_17.js new file mode 100644 index 00000000..685c4a73 --- /dev/null +++ b/extras/html/search/all_17.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['yield',['yield',['../class_sys_call.html#a2219ba5ea8e411b022a3a00df5f380e0',1,'SysCall']]] +]; diff --git a/extras/html/search/all_2.html b/extras/html/search/all_2.html index 93962b72..2f17735e 100644 --- a/extras/html/search/all_2.html +++ b/extras/html/search/all_2.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/all_2.js b/extras/html/search/all_2.js index 2cabb231..fdc13ef7 100644 --- a/extras/html/search/all_2.js +++ b/extras/html/search/all_2.js @@ -1,11 +1,11 @@ var searchData= [ - ['bad',['bad',['../classios.html#a7daa417c60277a4a4a452df4ad0af8e6',1,'ios']]], + ['bad',['bad',['../classios.html#a78be4e3069a644ff36d83a70b080c321',1,'ios']]], ['badbit',['badbit',['../classios__base.html#ac8c2c8f2f6bc9e6ce101c20e88ebce35',1,'ios_base']]], ['baseblockdriver',['BaseBlockDriver',['../class_base_block_driver.html',1,'']]], ['basefield',['basefield',['../classios__base.html#a75ce5482aa207d7aa0265d138b50a102',1,'ios_base']]], ['beg',['beg',['../classios__base.html#ab01103ba35f6ba93a704b3ec0c86191ea6639b4dd9e9b57ffef4a176cd1a1e7bb',1,'ios_base']]], - ['begin',['begin',['../class_minimum_serial.html#a5c56beb3472bb97f949defeecacda52c',1,'MinimumSerial::begin()'],['../class_sd_file_system.html#ad94237ef45c52698e97b04e8c131f21e',1,'SdFileSystem::begin()'],['../class_sd_fat.html#abfafe10a64b28e6c1698ed82d340f624',1,'SdFat::begin()'],['../class_sd_fat_sdio.html#ac742b37bd8f2f4eb4df44b37c98398e0',1,'SdFatSdio::begin()'],['../class_sd_fat_soft_spi.html#a061019e4b5e17fad3cf8b0e3a08532e4',1,'SdFatSoftSpi::begin()'],['../class_sd_fat_e_x.html#a25acc97272c6004a6a4118bacef07467',1,'SdFatEX::begin()'],['../class_sd_fat_soft_spi_e_x.html#af84b3a6a61dd4c7f3c2c4bb17a8a6609',1,'SdFatSoftSpiEX::begin()'],['../class_sd2_card.html#a8506e1a2d7c4d8ec3f26e8b62ea81cd7',1,'Sd2Card::begin()'],['../class_fat_file_system.html#a5dda20d3dcbfc8c641babbb2c9aac382',1,'FatFileSystem::begin()'],['../class_sdio_card.html#ac749bdad92a4465d062f5d21a7f4faf5',1,'SdioCard::begin()'],['../class_sd_spi_card.html#a824cd60ef8ac2b06262597d6f30a4ea7',1,'SdSpiCard::begin()'],['../class_sd_spi_card_e_x.html#a4fd0b23d230c6ad7dc406e798bbd5470',1,'SdSpiCardEX::begin()']]], + ['begin',['begin',['../class_minimum_serial.html#a5c56beb3472bb97f949defeecacda52c',1,'MinimumSerial::begin()'],['../class_sd_file_system.html#ad94237ef45c52698e97b04e8c131f21e',1,'SdFileSystem::begin()'],['../class_sd_fat.html#abfafe10a64b28e6c1698ed82d340f624',1,'SdFat::begin()'],['../class_sd_fat_sdio.html#ac742b37bd8f2f4eb4df44b37c98398e0',1,'SdFatSdio::begin()'],['../class_sd_fat_sdio_e_x.html#a5af596a3788fa3c321a6cce2fc4e2824',1,'SdFatSdioEX::begin()'],['../class_sd_fat_soft_spi.html#a061019e4b5e17fad3cf8b0e3a08532e4',1,'SdFatSoftSpi::begin()'],['../class_sd_fat_e_x.html#a25acc97272c6004a6a4118bacef07467',1,'SdFatEX::begin()'],['../class_sd_fat_soft_spi_e_x.html#af84b3a6a61dd4c7f3c2c4bb17a8a6609',1,'SdFatSoftSpiEX::begin()'],['../class_sd2_card.html#a8506e1a2d7c4d8ec3f26e8b62ea81cd7',1,'Sd2Card::begin()'],['../class_fat_file_system.html#a5dda20d3dcbfc8c641babbb2c9aac382',1,'FatFileSystem::begin()'],['../class_sdio_card.html#ac749bdad92a4465d062f5d21a7f4faf5',1,'SdioCard::begin()'],['../class_sdio_card_e_x.html#adf877d2c8641cdbd52657004c34ec18a',1,'SdioCardEX::begin()'],['../class_sd_spi_card.html#a824cd60ef8ac2b06262597d6f30a4ea7',1,'SdSpiCard::begin()'],['../class_sd_spi_card_e_x.html#a4fd0b23d230c6ad7dc406e798bbd5470',1,'SdSpiCardEX::begin()']]], ['begincylinderhigh',['beginCylinderHigh',['../structpartition_table.html#a744f0c7f9ad4c426b10de085b4f52392',1,'partitionTable']]], ['begincylinderlow',['beginCylinderLow',['../structpartition_table.html#a941fcb4df298f5f73ccca011bf40787a',1,'partitionTable']]], ['beginhead',['beginHead',['../structpartition_table.html#a7d426694b8cf2151ae38568670a8c845',1,'partitionTable']]], @@ -15,8 +15,8 @@ var searchData= ['block',['block',['../class_fat_cache.html#ab3d9c4f94af61065b6d6d0892827fd8a',1,'FatCache']]], ['blockdriver',['BlockDriver',['../_block_driver_8h.html#ace97f2377acdc471a01f9f7ec1fd6bbb',1,'BlockDriver.h']]], ['blockdriver_2eh',['BlockDriver.h',['../_block_driver_8h.html',1,'']]], - ['blockspercluster',['blocksPerCluster',['../class_fat_volume.html#a06beed4cea5e38116b58254a57125442',1,'FatVolume']]], - ['blocksperfat',['blocksPerFat',['../class_fat_volume.html#abc66d856d05198d9ebe7104c8c4155d7',1,'FatVolume']]], + ['blockspercluster',['blocksPerCluster',['../class_fat_volume.html#af6ab43bc0853febb38298406c4067a43',1,'FatVolume']]], + ['blocksperfat',['blocksPerFat',['../class_fat_volume.html#adb87da3b10344f28a92dfade492b8398',1,'FatVolume']]], ['boolalpha',['boolalpha',['../classios__base.html#afa74acd95d4bbc7cc3551251aac2bf00',1,'ios_base::boolalpha()'],['../ios_8h.html#a0016daaaf730481e2ad36972fa7abb17',1,'boolalpha(): ios.h']]], ['boot',['boot',['../structpartition_table.html#adf386afb1f33046d8b6a1a0afa780ec9',1,'partitionTable']]], ['bootcode',['bootCode',['../structfat__boot.html#acf9f5d9f61a6e680e11849f957ecf782',1,'fat_boot::bootCode()'],['../structfat32__boot.html#a7a74880066860140386edf3d9278b9f7',1,'fat32_boot::bootCode()']]], diff --git a/extras/html/search/all_3.html b/extras/html/search/all_3.html index 679f93ca..a3e6f7db 100644 --- a/extras/html/search/all_3.html +++ b/extras/html/search/all_3.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/all_3.js b/extras/html/search/all_3.js index fb88ee5c..e7254c50 100644 --- a/extras/html/search/all_3.js +++ b/extras/html/search/all_3.js @@ -10,12 +10,13 @@ var searchData= ['cache_5fstatus_5fmirror_5ffat',['CACHE_STATUS_MIRROR_FAT',['../class_fat_cache.html#a45236e1c0a2a098f08d3add0e4b1467a',1,'FatCache']]], ['cache_5ft',['cache_t',['../unioncache__t.html',1,'']]], ['cacheclear',['cacheClear',['../class_fat_volume.html#aa1e3b1d0c21d202deb82668068ab00e8',1,'FatVolume']]], - ['card',['card',['../class_sd_file_system.html#ab5dcfbeeb7caa38a38db86003341eb07',1,'SdFileSystem']]], - ['cardbegin',['cardBegin',['../class_sd_fat.html#ae380e4572776db851b2f80a3ed143fca',1,'SdFat::cardBegin()'],['../class_sd_fat_sdio.html#ac49062cc8fb2a42564d0ff05b4c0be8b',1,'SdFatSdio::cardBegin()']]], + ['card',['card',['../class_sd_file_system.html#ab5dcfbeeb7caa38a38db86003341eb07',1,'SdFileSystem::card()'],['../class_sd_fat_sdio_e_x.html#ac3fe2fd93b491918ec77308ec7c0290c',1,'SdFatSdioEX::card()']]], + ['cardbegin',['cardBegin',['../class_sd_fat.html#ae380e4572776db851b2f80a3ed143fca',1,'SdFat::cardBegin()'],['../class_sd_fat_sdio.html#ac49062cc8fb2a42564d0ff05b4c0be8b',1,'SdFatSdio::cardBegin()'],['../class_sd_fat_sdio_e_x.html#a18f3cf979d7e72105c4642b0ebb56324',1,'SdFatSdioEX::cardBegin()']]], ['carderrorcode',['cardErrorCode',['../class_sd_file_system.html#aedfd5a0830c955bc5514e52f2f2dd066',1,'SdFileSystem']]], ['carderrordata',['cardErrorData',['../class_sd_file_system.html#a0602ab3c04ea33293649f0a15fc81e05',1,'SdFileSystem']]], ['cardsize',['cardSize',['../class_sdio_card.html#a3d8f9a92f7faec77094ec65e6c41dd45',1,'SdioCard::cardSize()'],['../class_sd_spi_card.html#afca8bd6b7e465bf9c475ba375c4deec8',1,'SdSpiCard::cardSize()']]], ['chdir',['chdir',['../class_fat_file_system.html#a5667915e63187a43a71dfada63800865',1,'FatFileSystem::chdir(bool set_cwd=false)'],['../class_fat_file_system.html#a44af1b98e8d986d12107b654453acbc4',1,'FatFileSystem::chdir(const char *path, bool set_cwd=false)']]], + ['check_5fflash_5fprogramming',['CHECK_FLASH_PROGRAMMING',['../_sd_fat_config_8h.html#a63747c9ac4e3d78579690cf9eb38c4df',1,'SdFatConfig.h']]], ['chksum',['chksum',['../structlong_directory_entry.html#a60c35531bc0e12f2d764d290244f8cc9',1,'longDirectoryEntry']]], ['chvol',['chvol',['../class_fat_file_system.html#af24917d6e00c8766dab168eb834047ec',1,'FatFileSystem']]], ['clear',['clear',['../classfstream.html#a682b278a6a299ffb21b8737717ff12bf',1,'fstream::clear()'],['../classofstream.html#a09edfdb3dbda20aff105e751001313f0',1,'ofstream::clear()'],['../classios.html#aa49ed6670d1743e7a373b2d915ec739a',1,'ios::clear()']]], @@ -24,8 +25,8 @@ var searchData= ['clearwriteerror',['clearWriteError',['../class_fat_file.html#aeca2a2eff91e6aa55fe1b0e3860c9a05',1,'FatFile']]], ['close',['close',['../class_fat_file.html#afd16af325e0642e4bff6430b7d8bb18b',1,'FatFile::close()'],['../classfstream.html#ac5720ee620c09d63dd186823e688ea9a',1,'fstream::close()'],['../classifstream.html#ac5892f472afdef6160f5fe2401b16dce',1,'ifstream::close()'],['../classofstream.html#a240f3752c7ff7a78d10c143d2083715f',1,'ofstream::close()']]], ['cluster',['cluster',['../struct_fat_pos__t.html#a7b50657b0debaf0e6231af2c74a655fe',1,'FatPos_t']]], - ['clustercount',['clusterCount',['../class_fat_volume.html#a18446a9c5924304fa7a87d5f03ccaf21',1,'FatVolume']]], - ['clustersizeshift',['clusterSizeShift',['../class_fat_volume.html#ac0e63f33d71d5dc95a602834274def6a',1,'FatVolume']]], + ['clustercount',['clusterCount',['../class_fat_volume.html#ae724879a554174e31a737f73da418009',1,'FatVolume']]], + ['clustersizeshift',['clusterSizeShift',['../class_fat_volume.html#ab36468240ef6846578ad7f58d1bc41ac',1,'FatVolume']]], ['codearea',['codeArea',['../structmaster_boot_record.html#a26ca1fb4ebbff2cc1a54153b1dfcd688',1,'masterBootRecord']]], ['contiguousrange',['contiguousRange',['../class_fat_file.html#aa367708bcc8bc0e0c45c0c2a812c65da',1,'FatFile']]], ['createcontiguous',['createContiguous',['../class_fat_file.html#a0afc2a1cffa238d1cb2049bfa2d8d199',1,'FatFile::createContiguous(FatFile *dirFile, const char *path, uint32_t size)'],['../class_fat_file.html#a0853fbd44aee2798d14d8e3aed78f8bf',1,'FatFile::createContiguous(const char *path, uint32_t size)']]], @@ -33,8 +34,8 @@ var searchData= ['creationtime',['creationTime',['../structdirectory_entry.html#a622bfa70c2cd9006108d7473d737a953',1,'directoryEntry']]], ['creationtimetenths',['creationTimeTenths',['../structdirectory_entry.html#aa5e1ce5b411b88f005b28a3e7c7c5af6',1,'directoryEntry']]], ['cur',['cur',['../classios__base.html#ab01103ba35f6ba93a704b3ec0c86191ea53910041525b9e2f33bfc3bb4482134c',1,'ios_base']]], - ['curcluster',['curCluster',['../class_fat_file.html#a4c03e2f6729526786e6ab4a623e0339b',1,'FatFile']]], - ['curposition',['curPosition',['../class_fat_file.html#a20c55b134bfd1d287a00bf64eba9332e',1,'FatFile']]], + ['curcluster',['curCluster',['../class_fat_file.html#a526f3dd56ce205690e45ffc86ef6f891',1,'FatFile']]], + ['curposition',['curPosition',['../class_fat_file.html#a97e0620949f97e9b9c91ed1094d728aa',1,'FatFile']]], ['curtimems',['curTimeMS',['../_sys_call_8h.html#a7a1c5babdcf00c78d4d2e6a012bd9e68',1,'SysCall.h']]], ['cwd',['cwd',['../class_fat_file.html#a3b68e603ad8e47bad915f0547e580adb',1,'FatFile']]] ]; diff --git a/extras/html/search/all_4.html b/extras/html/search/all_4.html index adc99fbb..6452295d 100644 --- a/extras/html/search/all_4.html +++ b/extras/html/search/all_4.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/all_4.js b/extras/html/search/all_4.js index fb8b9660..790bcc31 100644 --- a/extras/html/search/all_4.js +++ b/extras/html/search/all_4.js @@ -1,7 +1,7 @@ var searchData= [ ['data',['data',['../unioncache__t.html#ae675b7a3a87d809070de111d1d1f1d81',1,'cache_t']]], - ['datastartblock',['dataStartBlock',['../class_fat_volume.html#a443364af257c219f8e908d5b073d8fa3',1,'FatVolume']]], + ['datastartblock',['dataStartBlock',['../class_fat_volume.html#a55906112e0d151db3b144d29630f5066',1,'FatVolume']]], ['datetimecallback',['dateTimeCallback',['../class_fat_file.html#a29a623f50df057e8b49045ba6611ec2b',1,'FatFile']]], ['datetimecallbackcancel',['dateTimeCallbackCancel',['../class_fat_file.html#a5df02f1d037e6091375488af25244ebc',1,'FatFile']]], ['dbgfat',['dbgFat',['../class_fat_volume.html#a25c6311b70fa274b3be94ff25fdebba7',1,'FatVolume']]], @@ -37,7 +37,6 @@ var searchData= ['dirsize',['dirSize',['../class_fat_file.html#ae2ed15f05c9ccbce355e7a8d3ce8382d',1,'FatFile']]], ['dirty',['dirty',['../class_fat_cache.html#ab4d3b0c16bb6a116c7d01afff2dcb307',1,'FatCache']]], ['disksignature',['diskSignature',['../structmaster_boot_record.html#a77151c641444c0653ff71a253f0423ef',1,'masterBootRecord']]], - ['dmabusy',['dmaBusy',['../class_sdio_card.html#a9781b9b4f91366a69dd077ad8fb364c5',1,'SdioCard']]], ['dmpfile',['dmpFile',['../class_fat_file.html#a4f01d27954ae49aeb6888ac7302f55d9',1,'FatFile']]], ['drivenumber',['driveNumber',['../structfat__boot.html#aebd280b93563b75b9612d3db844b0d16',1,'fat_boot::driveNumber()'],['../structfat32__boot.html#aca415c1a6eb1c242d460a6d0ffa9ebec',1,'fat32_boot::driveNumber()']]] ]; diff --git a/extras/html/search/all_5.html b/extras/html/search/all_5.html index a9fcd170..e59e1d53 100644 --- a/extras/html/search/all_5.html +++ b/extras/html/search/all_5.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/all_5.js b/extras/html/search/all_5.js index c89df750..b4375180 100644 --- a/extras/html/search/all_5.js +++ b/extras/html/search/all_5.js @@ -11,13 +11,13 @@ var searchData= ['endl',['endl',['../iostream_8h.html#ab9868f8e151efc1705646437dbb59bb2',1,'iostream.h']]], ['endl_5fcalls_5fflush',['ENDL_CALLS_FLUSH',['../_sd_fat_config_8h.html#a270eefdaec4778f2a491658f34f61b17',1,'ENDL_CALLS_FLUSH(): SdFatConfig.h'],['../_fat_lib_config_8h.html#a270eefdaec4778f2a491658f34f61b17',1,'ENDL_CALLS_FLUSH(): FatLibConfig.h']]], ['endsector',['endSector',['../structpartition_table.html#a27cdc4320c418ed0d833ab163ed77ad7',1,'partitionTable']]], - ['eof',['eof',['../classios.html#ad2f091f3ed1a2e13f62557854c0885a7',1,'ios::eof()'],['../_stdio_stream_8h.html#a59adc4c82490d23754cd39c2fb99b0da',1,'EOF(): StdioStream.h']]], + ['eof',['eof',['../classios.html#a7aa5ea2f670d64eb3dcb3b62eddd576c',1,'ios::eof()'],['../_stdio_stream_8h.html#a59adc4c82490d23754cd39c2fb99b0da',1,'EOF(): StdioStream.h']]], ['eofbit',['eofbit',['../classios__base.html#af75072b7ef2a931c77a2cb8e7ccda460',1,'ios_base']]], - ['erase',['erase',['../class_sdio_card.html#a1ce82b035257790ed8e4a9be3d966b80',1,'SdioCard::erase()'],['../class_sd_spi_card.html#a1caa13d19df6596b2c0dd62365c75362',1,'SdSpiCard::erase()']]], + ['erase',['erase',['../class_sdio_card.html#a1ce82b035257790ed8e4a9be3d966b80',1,'SdioCard::erase()'],['../class_sdio_card_e_x.html#a58362f3ddf4bc5ce632cce6768b2d780',1,'SdioCardEX::erase()'],['../class_sd_spi_card.html#a1caa13d19df6596b2c0dd62365c75362',1,'SdSpiCard::erase()']]], ['erasesingleblockenable',['eraseSingleBlockEnable',['../class_sd_spi_card.html#aed4591884254c9f58daa8738d7c1ccdd',1,'SdSpiCard']]], ['error',['error',['../class_sd_spi_card.html#aa12ad53111abcb187d3c6119a3a77592',1,'SdSpiCard']]], - ['errorcode',['errorCode',['../class_sdio_card.html#a4ff272009a24fc4078ac87c2d87ccd16',1,'SdioCard::errorCode()'],['../class_sd_spi_card.html#a50bf5f92223222beacec2b203a6b7a95',1,'SdSpiCard::errorCode()']]], - ['errordata',['errorData',['../class_sdio_card.html#a8251b9aa0d623487e80cf908fc1625b5',1,'SdioCard::errorData()'],['../class_sd_spi_card.html#a7b1abdb8dd5254cd4af0df19ba59ce4a',1,'SdSpiCard::errorData()']]], + ['errorcode',['errorCode',['../class_sdio_card.html#a4ff272009a24fc4078ac87c2d87ccd16',1,'SdioCard::errorCode()'],['../class_sd_spi_card.html#a4c736fb8d6d9d734d5e262875c74f054',1,'SdSpiCard::errorCode()']]], + ['errordata',['errorData',['../class_sdio_card.html#a8251b9aa0d623487e80cf908fc1625b5',1,'SdioCard::errorData()'],['../class_sd_spi_card.html#a10bb2f65b1ca85ad14de19e61a283262',1,'SdSpiCard::errorData()']]], ['errorhalt',['errorHalt',['../class_sd_file_system.html#a855267374306bfee2df67642c99d4d18',1,'SdFileSystem::errorHalt()'],['../class_sd_file_system.html#ae1f79a2974ebe134e70f898c32d97e98',1,'SdFileSystem::errorHalt(Print *pr)'],['../class_sd_file_system.html#a32c20dfa6a8cb8af95f25847b19bdbca',1,'SdFileSystem::errorHalt(char const *msg)'],['../class_sd_file_system.html#a27fb329d6aee79a63c20386218ce7e9e',1,'SdFileSystem::errorHalt(Print *pr, char const *msg)'],['../class_sd_file_system.html#af856494745a9842d9728dfeabf19c51e',1,'SdFileSystem::errorHalt(const __FlashStringHelper *msg)'],['../class_sd_file_system.html#a746c80d048c30baf0b281e16932670a2',1,'SdFileSystem::errorHalt(Print *pr, const __FlashStringHelper *msg)']]], ['errorline',['errorLine',['../class_sdio_card.html#aafa9feb1b5a90f3cf96456b6b286bfdf',1,'SdioCard']]], ['errorprint',['errorPrint',['../class_sd_file_system.html#ab0b78154d6874c29279ba81f36ccb09c',1,'SdFileSystem::errorPrint()'],['../class_sd_file_system.html#a03736274debea71fef5e2ff34d7ec3dc',1,'SdFileSystem::errorPrint(Print *pr)'],['../class_sd_file_system.html#a2e2436b7b2666737cbaf4b22218bc69f',1,'SdFileSystem::errorPrint(const char *msg)'],['../class_sd_file_system.html#a0eb6b92a0700ba932f6127962981d153',1,'SdFileSystem::errorPrint(Print *pr, char const *msg)'],['../class_sd_file_system.html#a1ccb1f937f42e9c1331c942bc357f6da',1,'SdFileSystem::errorPrint(const __FlashStringHelper *msg)'],['../class_sd_file_system.html#a43344a079d9af92ea4b550914d0512f6',1,'SdFileSystem::errorPrint(Print *pr, const __FlashStringHelper *msg)']]], diff --git a/extras/html/search/all_6.html b/extras/html/search/all_6.html index 821c374d..f75a754e 100644 --- a/extras/html/search/all_6.html +++ b/extras/html/search/all_6.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/all_6.js b/extras/html/search/all_6.js index 39257bc5..804b1804 100644 --- a/extras/html/search/all_6.js +++ b/extras/html/search/all_6.js @@ -1,7 +1,7 @@ var searchData= [ ['f',['F',['../_sys_call_8h.html#a0e3009529aac180ed5f48296d6670d6b',1,'SysCall.h']]], - ['fail',['fail',['../classios.html#a1c7b563046a50c5a0430405964998034',1,'ios']]], + ['fail',['fail',['../classios.html#a15269e67d05d4fe83a6cf344d542f8ae',1,'ios']]], ['failbit',['failbit',['../classios__base.html#a36157154001bcce17827db6786e35efd',1,'ios_base']]], ['fat12_5fsupport',['FAT12_SUPPORT',['../_sd_fat_config_8h.html#a28998c5daf4bd038f4f93172698320b1',1,'FAT12_SUPPORT(): SdFatConfig.h'],['../_fat_lib_config_8h.html#a28998c5daf4bd038f4f93172698320b1',1,'FAT12_SUPPORT(): FatLibConfig.h']]], ['fat12eoc',['FAT12EOC',['../_fat_structs_8h.html#af314c45d1d37d09c9e44847326232466',1,'FatStructs.h']]], @@ -35,18 +35,18 @@ var searchData= ['fat_5fsecond',['FAT_SECOND',['../_fat_structs_8h.html#a4d553e2088d42e01d6c08ee84e611b00',1,'FatStructs.h']]], ['fat_5ftime',['FAT_TIME',['../_fat_structs_8h.html#a375720927be5a39475d48b2d75dae29a',1,'FatStructs.h']]], ['fat_5fyear',['FAT_YEAR',['../_fat_structs_8h.html#a279a75f907dd2603543c7bdad00ff603',1,'FatStructs.h']]], - ['fatcache',['FatCache',['../class_fat_cache.html',1,'']]], + ['fatcache',['FatCache',['../class_fat_cache.html',1,'FatCache'],['../class_fat_volume.html#a1e97a7aed860b898c403cb29455b3fe7',1,'FatVolume::FatCache()']]], ['fatcount',['fatCount',['../structbios_parm_block.html#a7c03f147c3fb18f0df03d346050af13b',1,'biosParmBlock::fatCount()'],['../structfat__boot.html#a04d3b6a45acf28a80ff909dc1b33da2f',1,'fat_boot::fatCount()'],['../structfat32__boot.html#a7882fa8744bd171bfa1512bd442574bc',1,'fat32_boot::fatCount()'],['../class_fat_volume.html#acdedc6a200b01e401c9cd9b511eae6ec',1,'FatVolume::fatCount()']]], - ['fatfile',['FatFile',['../class_fat_file.html',1,'FatFile'],['../class_fat_file.html#a7b591c9b92165fa8e4eae8c30c30e533',1,'FatFile::FatFile()'],['../class_fat_file.html#a29d31067d0aa3a9a74b1a660c38775cc',1,'FatFile::FatFile(const char *path, uint8_t oflag)']]], + ['fatfile',['FatFile',['../class_fat_file.html',1,'FatFile'],['../class_fat_volume.html#a18fb15a715ea85037ab802286853103e',1,'FatVolume::FatFile()'],['../class_fat_file.html#a7b591c9b92165fa8e4eae8c30c30e533',1,'FatFile::FatFile()'],['../class_fat_file.html#a38f9a296138648d6135cbbbf41ef6b92',1,'FatFile::FatFile(const char *path, oflag_t oflag)']]], ['fatfile_2eh',['FatFile.h',['../_fat_file_8h.html',1,'']]], - ['fatfilesystem',['FatFileSystem',['../class_fat_file_system.html',1,'']]], + ['fatfilesystem',['FatFileSystem',['../class_fat_file_system.html',1,'FatFileSystem'],['../class_fat_volume.html#ac095954ff68b78a07c0cf5fabbb2db6f',1,'FatVolume::FatFileSystem()']]], ['fatfilesystem_2eh',['FatFileSystem.h',['../_fat_file_system_8h.html',1,'']]], ['fatlibconfig_2eh',['FatLibConfig.h',['../_fat_lib_config_8h.html',1,'']]], ['fatpos_5ft',['FatPos_t',['../struct_fat_pos__t.html',1,'']]], - ['fatstartblock',['fatStartBlock',['../class_fat_volume.html#a0dd0cc689b63ef0702aed1cf36b1722d',1,'FatVolume']]], + ['fatstartblock',['fatStartBlock',['../class_fat_volume.html#a260bc030ab188a481dd34d6062f7b9d2',1,'FatVolume']]], ['fatstreambase',['FatStreamBase',['../class_fat_stream_base.html',1,'']]], ['fatstructs_2eh',['FatStructs.h',['../_fat_structs_8h.html',1,'']]], - ['fattype',['fatType',['../class_fat_volume.html#a1364f11fe9bb4717ce0685e2b7b86027',1,'FatVolume']]], + ['fattype',['fatType',['../class_fat_volume.html#a0d736f0e8f03476b896307fbe5427376',1,'FatVolume']]], ['fatvolume',['FatVolume',['../class_fat_volume.html',1,'FatVolume'],['../class_fat_volume.html#a026de2bb58026e4edea130db2949b84c',1,'FatVolume::FatVolume()']]], ['fatvolume_2eh',['FatVolume.h',['../_fat_volume_8h.html',1,'']]], ['fbs',['fbs',['../unioncache__t.html#ad1a4f1c0e8b8ca4d530427dbc920c764',1,'cache_t']]], @@ -57,19 +57,19 @@ var searchData= ['fflush',['fflush',['../class_stdio_stream.html#a7ce32ec7ea3f2fd8ea42b9633890f1c0',1,'StdioStream']]], ['fgetc',['fgetc',['../class_stdio_stream.html#a160bd2828cb7e7370cffe1046eff8899',1,'StdioStream']]], ['fgets',['fgets',['../class_fat_file.html#a31ef26b3ee37cf5f5f4c6024c0ddab69',1,'FatFile::fgets()'],['../class_stdio_stream.html#aa240c1021a1aad1cc57f63a483541dc7',1,'StdioStream::fgets()']]], - ['file',['File',['../class_file.html',1,'File'],['../class_file.html#a9ecb14efb960d1369926182479f56213',1,'File::File()']]], + ['file',['File',['../class_file.html',1,'File'],['../class_file.html#af72feff53281f269ac592cba92397cd4',1,'File::File()']]], ['file_5fread',['FILE_READ',['../_arduino_files_8h.html#ad52d51659a75e25d96fb04d22ff718cb',1,'ArduinoFiles.h']]], ['file_5fwrite',['FILE_WRITE',['../_arduino_files_8h.html#ace34e503254fa9004599ddf122264c8f',1,'ArduinoFiles.h']]], - ['fileattr',['fileAttr',['../class_fat_file.html#a7e043dfb89d268bfd620bbbadacf1002',1,'FatFile']]], - ['filesize',['fileSize',['../structdirectory_entry.html#ac2445d99b50f925f662952e0ccd26a02',1,'directoryEntry::fileSize()'],['../class_fat_file.html#a02fc3b3ca36b4745f695f3de8c8ec36d',1,'FatFile::fileSize()']]], + ['fileattr',['fileAttr',['../class_fat_file.html#a28ebaf42f0173adeb9faa1884337c8f8',1,'FatFile']]], + ['filesize',['fileSize',['../structdirectory_entry.html#ac2445d99b50f925f662952e0ccd26a02',1,'directoryEntry::fileSize()'],['../class_fat_file.html#a874940574b9c99e763526465adf8dc28',1,'FatFile::fileSize()']]], ['filesystemtype',['fileSystemType',['../structfat__boot.html#aee529e32908406866f3ec3c17c4632fa',1,'fat_boot::fileSystemType()'],['../structfat32__boot.html#a13ee6c63e17d634b6826bfdfa94cbd78',1,'fat32_boot::fileSystemType()']]], ['fill',['fill',['../classios__base.html#ade5bd46462e075999c3a5c2cff2015f1',1,'ios_base::fill()'],['../classios__base.html#aa5683f9bdf295311bd5a6d3cdc2fedd5',1,'ios_base::fill(char c)']]], ['firstblock',['firstBlock',['../class_fat_file.html#ac87b753811e540c7b799da56fa89724b',1,'FatFile']]], - ['firstcluster',['firstCluster',['../class_fat_file.html#a1057bc23b92a074539f661e896e79a09',1,'FatFile']]], + ['firstcluster',['firstCluster',['../class_fat_file.html#ad6233a5122080219b6d8148b1bec4b6a',1,'FatFile']]], ['firstclusterhigh',['firstClusterHigh',['../structdirectory_entry.html#a3b492598b2b05e8425d2a500443613bd',1,'directoryEntry']]], ['firstclusterlow',['firstClusterLow',['../structdirectory_entry.html#a74bd660417a9c3501eae353326c14bb9',1,'directoryEntry']]], ['firstsector',['firstSector',['../structpartition_table.html#a02bbdff840c854dc96fa0b6da8589d86',1,'partitionTable']]], - ['flags',['flags',['../structfname__t.html#a39c69edff13165c6e03b308104e7286d',1,'fname_t::flags()'],['../classios__base.html#ab5e9c7dbcbc33b7de9dcb70525ec7384',1,'ios_base::flags() const '],['../classios__base.html#ae67e900dc12e4c7cbc0741ad1c70d6c2',1,'ios_base::flags(fmtflags fl)']]], + ['flags',['flags',['../structfname__t.html#a39c69edff13165c6e03b308104e7286d',1,'fname_t::flags()'],['../classios__base.html#a2a73a30a8b157cc1cc92bb55b0a62e4a',1,'ios_base::flags() const'],['../classios__base.html#ae67e900dc12e4c7cbc0741ad1c70d6c2',1,'ios_base::flags(fmtflags fl)']]], ['flush',['flush',['../class_minimum_serial.html#a872f0ff70f0e256352004f83d13fff28',1,'MinimumSerial::flush()'],['../class_print_file.html#a53c4cb94af030fdf83a9160ec9a96949',1,'PrintFile::flush()'],['../class_file.html#af87fa862de707575b8badd044a5af80e',1,'File::flush()'],['../classostream.html#af6be1f30d824f5a65d27d5b5d20b8c6c',1,'ostream::flush()'],['../iostream_8h.html#a2f6f5344fca38fd4fe7b6231fd992a0d',1,'flush(): iostream.h']]], ['fmtflags',['fmtflags',['../classios__base.html#ac9a54e52cef4f01ac0afd8ae896a3413',1,'ios_base']]], ['fname_5fflag_5flc_5fbase',['FNAME_FLAG_LC_BASE',['../_fat_file_8h.html#a79e43960e1b4eecf274f5faea9c3168c',1,'FatFile.h']]], @@ -86,7 +86,7 @@ var searchData= ['freecount',['freeCount',['../structfat32__fsinfo.html#a6c2d84388c0a38a74f7682fd602492c7',1,'fat32_fsinfo']]], ['freestack',['FreeStack',['../_free_stack_8h.html#a2c0121d5649d35329a8d0a71e4ffb89b',1,'FreeStack.h']]], ['freestack_2eh',['FreeStack.h',['../_free_stack_8h.html',1,'']]], - ['fsbegin',['fsBegin',['../class_sd_fat.html#add6a9a3ad07585f6e0e5c35e35cacb9a',1,'SdFat::fsBegin()'],['../class_sd_fat_sdio.html#aac0e8d86182a0e0566c4671c15f3df61',1,'SdFatSdio::fsBegin()']]], + ['fsbegin',['fsBegin',['../class_sd_fat.html#add6a9a3ad07585f6e0e5c35e35cacb9a',1,'SdFat::fsBegin()'],['../class_sd_fat_sdio.html#aac0e8d86182a0e0566c4671c15f3df61',1,'SdFatSdio::fsBegin()'],['../class_sd_fat_sdio_e_x.html#ae7c3cc13d2ec18ab14b4ff88348cc7a0',1,'SdFatSdioEX::fsBegin()']]], ['fseek',['fseek',['../class_stdio_stream.html#a71584fd5c5cda3c31ce6cdbcc56f104d',1,'StdioStream']]], ['fsinfo',['fsinfo',['../unioncache__t.html#a46c7b14586a6248824a97101111cbae1',1,'cache_t']]], ['fsinfo_5flead_5fsig',['FSINFO_LEAD_SIG',['../_fat_structs_8h.html#a7a7a74a7315ad523e3b0c9dbd44d9a32',1,'FatStructs.h']]], diff --git a/extras/html/search/all_7.html b/extras/html/search/all_7.html index 38c6c000..88acd946 100644 --- a/extras/html/search/all_7.html +++ b/extras/html/search/all_7.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/all_7.js b/extras/html/search/all_7.js index 6f507944..5ac197d3 100644 --- a/extras/html/search/all_7.js +++ b/extras/html/search/all_7.js @@ -1,14 +1,14 @@ var searchData= [ - ['gcount',['gcount',['../classistream.html#ad2b705d2f363ed59db6ac4046f78b4bb',1,'istream']]], - ['get',['get',['../classistream.html#a36573c9b7fc522e6c85a73221019fd11',1,'istream::get()'],['../classistream.html#a9c7313d6f21f1f7ac9b0e759e74b4db2',1,'istream::get(char &ch)'],['../classistream.html#a4247f47e388598c69ef3bd39ea4c056f',1,'istream::get(char *str, streamsize n, char delim= '\n')']]], + ['gcount',['gcount',['../classistream.html#ad0a3db5199ca44b191a9675f2dd3a098',1,'istream']]], + ['get',['get',['../classistream.html#a36573c9b7fc522e6c85a73221019fd11',1,'istream::get()'],['../classistream.html#a9c7313d6f21f1f7ac9b0e759e74b4db2',1,'istream::get(char &ch)'],['../classistream.html#a2c963fd04375e5faa1b7a4362986269a',1,'istream::get(char *str, streamsize n, char delim='\n')']]], ['getc',['getc',['../class_stdio_stream.html#a28ba31e7b526607744bfa41844ffce31',1,'StdioStream']]], ['geterror',['getError',['../class_fat_file.html#ad0dbbd083180f44c7a3ce7124d4ce19c',1,'FatFile']]], - ['getline',['getline',['../classistream.html#a7d86035d178e526283e5c7555ab7b243',1,'istream']]], + ['getline',['getline',['../classistream.html#a7ea6a5edd6b44a6e1ed297fb278b5d52',1,'istream']]], ['getname',['getName',['../class_fat_file.html#aafa565e286440aab612cdb430fc01da5',1,'FatFile']]], ['getpos',['getpos',['../class_fat_file.html#aaa4f9886887947815a61eaf015996932',1,'FatFile']]], ['getsfn',['getSFN',['../class_fat_file.html#aba30e92a66f8e0d2f815c85662772a58',1,'FatFile']]], ['getwriteerror',['getWriteError',['../class_fat_file.html#a8062c0d3a118e8d77d0310418703d5f5',1,'FatFile']]], - ['good',['good',['../classios.html#a5fdf9247f642a7a5c5a21323ffd45366',1,'ios']]], + ['good',['good',['../classios.html#a0192d754476f243d7f13dc16e851c7cc',1,'ios']]], ['goodbit',['goodbit',['../classios__base.html#a07a00996a6e525b88bdfe7935d5ead05',1,'ios_base']]] ]; diff --git a/extras/html/search/all_8.html b/extras/html/search/all_8.html index 2a22cd52..b74d5fd8 100644 --- a/extras/html/search/all_8.html +++ b/extras/html/search/all_8.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/all_9.html b/extras/html/search/all_9.html index bd9b05c3..95e88dd2 100644 --- a/extras/html/search/all_9.html +++ b/extras/html/search/all_9.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/all_9.js b/extras/html/search/all_9.js index 1bd06870..6a271f30 100644 --- a/extras/html/search/all_9.js +++ b/extras/html/search/all_9.js @@ -5,6 +5,7 @@ var searchData= ['ignore',['ignore',['../classistream.html#a12597b03d86b66047a5581bbd26eb032',1,'istream']]], ['implement_5fspi_5fport_5fselection',['IMPLEMENT_SPI_PORT_SELECTION',['../_sd_fat_config_8h.html#aa13678c06fd801cb8f00b497a517d91e',1,'SdFatConfig.h']]], ['in',['in',['../classios__base.html#ae5432e3c269064480652c4602f5f74ad',1,'ios_base']]], + ['include_5fsdios',['INCLUDE_SDIOS',['../_sd_fat_config_8h.html#a7cc6c9647297d65f8e823de70740630b',1,'SdFatConfig.h']]], ['init',['init',['../classibufstream.html#a1d7bae17d9d2c79218085251946f322a',1,'ibufstream::init()'],['../classobufstream.html#a8f75dbadab2fed7770d01a2cc2628258',1,'obufstream::init()'],['../class_fat_cache.html#ae1d8a2da1493b5ffca0520184daaddf1',1,'FatCache::init()'],['../class_fat_volume.html#acab819fa25a91dad1cc698a7e1e0eb32',1,'FatVolume::init()'],['../class_fat_volume.html#a034d997a1e7a0b2b664a4357bcccd256',1,'FatVolume::init(uint8_t part)']]], ['initerrorhalt',['initErrorHalt',['../class_sd_file_system.html#a8e1f26486bb878a24fa9868e59dbbbc2',1,'SdFileSystem::initErrorHalt()'],['../class_sd_file_system.html#a24bd0f699cf0fe11fd2148b15c49251a',1,'SdFileSystem::initErrorHalt(Print *pr)'],['../class_sd_file_system.html#a893833a880e2a83757480ba4c1351041',1,'SdFileSystem::initErrorHalt(char const *msg)'],['../class_sd_file_system.html#a3077b1a53d789d0401b707963cb28f46',1,'SdFileSystem::initErrorHalt(Print *pr, char const *msg)'],['../class_sd_file_system.html#a2a1e4cc8056ba23b55dfa2c6486b8798',1,'SdFileSystem::initErrorHalt(const __FlashStringHelper *msg)'],['../class_sd_file_system.html#ab03d98012dea18733c3252f27832de69',1,'SdFileSystem::initErrorHalt(Print *pr, const __FlashStringHelper *msg)']]], ['initerrorprint',['initErrorPrint',['../class_sd_file_system.html#ae31c9cbd7e1c03129d6c99b25f73cd50',1,'SdFileSystem::initErrorPrint()'],['../class_sd_file_system.html#a066707dce0667213b5f083d59f67448d',1,'SdFileSystem::initErrorPrint(Print *pr)'],['../class_sd_file_system.html#a538796f79fd9db9c5bbeefd9defe639a',1,'SdFileSystem::initErrorPrint(char const *msg)'],['../class_sd_file_system.html#ad9855d33ebd465715b706d0926291b13',1,'SdFileSystem::initErrorPrint(Print *pr, char const *msg)'],['../class_sd_file_system.html#ad6ffec5a7d82be46d46b8a4f82d0803b',1,'SdFileSystem::initErrorPrint(const __FlashStringHelper *msg)'],['../class_sd_file_system.html#a8a2018b6366145a9843d3d29a47d6560',1,'SdFileSystem::initErrorPrint(Print *pr, const __FlashStringHelper *msg)']]], @@ -17,20 +18,21 @@ var searchData= ['iostream',['iostream',['../classiostream.html',1,'']]], ['iostream_2eh',['iostream.h',['../iostream_8h.html',1,'']]], ['is_5fopen',['is_open',['../classfstream.html#ae4a71c6f3da2f168ec222739d796fc8b',1,'fstream::is_open()'],['../classifstream.html#aaa16c6422ea371995d02159f2e6707b2',1,'ifstream::is_open()'],['../classofstream.html#a9c97eb2eb6e35ae87cf7f7453a67e70a',1,'ofstream::is_open()']]], - ['isbusy',['isBusy',['../class_sd_spi_card.html#aa3cb9139dbc1e6596c6717da2b486328',1,'SdSpiCard']]], - ['isdir',['isDir',['../class_fat_file.html#aef41d65e0f1ce753d18cc9ed691f7de4',1,'FatFile']]], + ['isbusy',['isBusy',['../class_sdio_card.html#a560bdfc96932d073c2b0610600560f78',1,'SdioCard::isBusy()'],['../class_sd_spi_card.html#aa3cb9139dbc1e6596c6717da2b486328',1,'SdSpiCard::isBusy()']]], + ['isdir',['isDir',['../class_fat_file.html#a933360b20b496421b2bd9ee7a95563a6',1,'FatFile']]], ['isdirectory',['isDirectory',['../class_file.html#a6ba5bdb943363cda56649238ccb18c27',1,'File']]], ['isdirseparator',['isDirSeparator',['../_fat_file_8h.html#a9f85580ad6f1dfc86fff09a58ff0a1c0',1,'FatFile.h']]], - ['isfile',['isFile',['../class_fat_file.html#afcf6270ea8d4a3a5f8e89523bc684e22',1,'FatFile']]], - ['ishidden',['isHidden',['../class_fat_file.html#a7eefe7408f34b6326f0c6e78af7eb05f',1,'FatFile']]], - ['islfn',['isLFN',['../class_fat_file.html#aed36d17f8fde597b6ed9446faec1f7e3',1,'FatFile']]], - ['isopen',['isOpen',['../class_fat_file.html#a4c8a07b081f04aa25839c6f56c739bdc',1,'FatFile']]], - ['isreadonly',['isReadOnly',['../class_fat_file.html#a6872d3acb1e70f81c9c2be2495977583',1,'FatFile']]], - ['isroot',['isRoot',['../class_fat_file.html#aa4a206803a4bf8243be20244c1aef4d2',1,'FatFile']]], - ['isroot32',['isRoot32',['../class_fat_file.html#a1449b294e3a838396c62e47674ca8cf0',1,'FatFile']]], - ['isrootfixed',['isRootFixed',['../class_fat_file.html#a8215bd4b21e11ec83fa88ef226ceb06f',1,'FatFile']]], - ['issubdir',['isSubDir',['../class_fat_file.html#a95b503b17442c2b364a2f53de1b2aeba',1,'FatFile']]], - ['issystem',['isSystem',['../class_fat_file.html#add932e13e5bf32ad467af6ec34824e3c',1,'FatFile']]], + ['isdirty',['isDirty',['../class_fat_cache.html#ae50287d95bd78558db1e4aa97d7b2c06',1,'FatCache']]], + ['isfile',['isFile',['../class_fat_file.html#acc5a87da1a5c8cb9758bfeaa7ae47b57',1,'FatFile']]], + ['ishidden',['isHidden',['../class_fat_file.html#ae216b4a2bc44a9cfb88478fa051a1fd8',1,'FatFile']]], + ['islfn',['isLFN',['../class_fat_file.html#af8f456ab790e818bfdd225cf6ffd40f3',1,'FatFile']]], + ['isopen',['isOpen',['../class_fat_file.html#a8b8a2850c086d3ce79bee64a23fbf7a6',1,'FatFile']]], + ['isreadonly',['isReadOnly',['../class_fat_file.html#abaf639ec8f86f34aeb7e6b3615526f0b',1,'FatFile']]], + ['isroot',['isRoot',['../class_fat_file.html#a03421a0c28649332f55e6ca06d3aeedb',1,'FatFile']]], + ['isroot32',['isRoot32',['../class_fat_file.html#a8fda8004720ec4cc55710869dbb52e35',1,'FatFile']]], + ['isrootfixed',['isRootFixed',['../class_fat_file.html#a0cc65089f7ce6c1ff92edbf0bff59dee',1,'FatFile']]], + ['issubdir',['isSubDir',['../class_fat_file.html#abfd02c5d26f7d4f8739a8610116a6660',1,'FatFile']]], + ['issystem',['isSystem',['../class_fat_file.html#a48087bdeb6b94fc27e0f74c3d90af5a9',1,'FatFile']]], ['istream',['istream',['../classistream.html',1,'']]], ['istream_2eh',['istream.h',['../istream_8h.html',1,'']]] ]; diff --git a/extras/html/search/all_a.html b/extras/html/search/all_a.html index 4a25af1c..3148a8e5 100644 --- a/extras/html/search/all_a.html +++ b/extras/html/search/all_a.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/all_b.html b/extras/html/search/all_b.html index a92de485..f2a3c8d0 100644 --- a/extras/html/search/all_b.html +++ b/extras/html/search/all_b.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/all_b.js b/extras/html/search/all_b.js index aaf99c93..a37596e4 100644 --- a/extras/html/search/all_b.js +++ b/extras/html/search/all_b.js @@ -1,20 +1,4 @@ var searchData= [ - ['lastaccessdate',['lastAccessDate',['../structdirectory_entry.html#abca70dc5c5fcbe199fd78df010111331',1,'directoryEntry']]], - ['lastwritedate',['lastWriteDate',['../structdirectory_entry.html#a12b2e7cf87482a942a0b5d3df6c51468',1,'directoryEntry']]], - ['lastwritetime',['lastWriteTime',['../structdirectory_entry.html#a7bab435322d1928f66fbce53ee1f402d',1,'directoryEntry']]], - ['lbn',['lbn',['../class_fat_cache.html#a9f981b53e212f79937e5f6381b169374',1,'FatCache']]], - ['ldir_5fname1_5fdim',['LDIR_NAME1_DIM',['../_fat_structs_8h.html#af843af29c67dd30ca7c5684806bf02fc',1,'FatStructs.h']]], - ['ldir_5fname2_5fdim',['LDIR_NAME2_DIM',['../_fat_structs_8h.html#a99cae591c59e261f54617617e173e7e0',1,'FatStructs.h']]], - ['ldir_5fname3_5fdim',['LDIR_NAME3_DIM',['../_fat_structs_8h.html#a99fbd27fa9e5003a8d77ca7fc14d2090',1,'FatStructs.h']]], - ['ldir_5ford_5flast_5flong_5fentry',['LDIR_ORD_LAST_LONG_ENTRY',['../_fat_structs_8h.html#a8cfb60b9eaf04dcdc6e4f5a466af5540',1,'FatStructs.h']]], - ['ldir_5ft',['ldir_t',['../_fat_structs_8h.html#aa1b540ee1eedd1aa9b267d11cba0d9e2',1,'FatStructs.h']]], - ['leadsignature',['leadSignature',['../structfat32__fsinfo.html#aa8ee056cc1beb1355e15610c1beba5e3',1,'fat32_fsinfo']]], - ['left',['left',['../classios__base.html#ad364df9af2cfde1f40bd8e10c62bb215',1,'ios_base::left()'],['../ios_8h.html#a24a80a73f0a0d2d72d1cb74f49ff4759',1,'left(): ios.h']]], - ['legal83char',['legal83Char',['../class_fat_file.html#a94df8090f16e9666cdc53ca20f6aff90',1,'FatFile']]], - ['len',['len',['../structfname__t.html#a471184cc4c2671526d7d6fb80b2fe20c',1,'fname_t']]], - ['length',['length',['../classobufstream.html#ac650708e968b0c0545a3badeb809cf15',1,'obufstream']]], - ['lfn',['lfn',['../structfname__t.html#a76ffd7abd5b7d3acf90b329c905770fd',1,'fname_t']]], - ['longdirectoryentry',['longDirectoryEntry',['../structlong_directory_entry.html',1,'']]], - ['ls',['ls',['../class_fat_file.html#ad49f688a494b351ccbb0102dcfafb925',1,'FatFile::ls(uint8_t flags=0)'],['../class_fat_file.html#acabf31ff85e696fbf384c49428012fea',1,'FatFile::ls(print_t *pr, uint8_t flags=0, uint8_t indent=0)'],['../class_fat_file_system.html#a2398fb37a7a9d5e0dc0ffde6a44a993d',1,'FatFileSystem::ls(uint8_t flags=0)'],['../class_fat_file_system.html#a122b61dbec5051304bcc81bc08b1b99d',1,'FatFileSystem::ls(const char *path, uint8_t flags=0)'],['../class_fat_file_system.html#ae12fb8bfad5c4a8e052dda70a5a0ed93',1,'FatFileSystem::ls(print_t *pr, uint8_t flags=0)'],['../class_fat_file_system.html#aa79695db8e910300507210b3067d39fd',1,'FatFileSystem::ls(print_t *pr, const char *path, uint8_t flags)']]] + ['khzsdclk',['kHzSdClk',['../class_sdio_card.html#a3532a1a4b8a43a51ed9b5853186203cb',1,'SdioCard']]] ]; diff --git a/extras/html/search/all_c.html b/extras/html/search/all_c.html index 20cdfbcf..63768107 100644 --- a/extras/html/search/all_c.html +++ b/extras/html/search/all_c.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/all_c.js b/extras/html/search/all_c.js index 30a4bf7a..aaf99c93 100644 --- a/extras/html/search/all_c.js +++ b/extras/html/search/all_c.js @@ -1,14 +1,20 @@ var searchData= [ - ['maintain_5ffree_5fcluster_5fcount',['MAINTAIN_FREE_CLUSTER_COUNT',['../_sd_fat_config_8h.html#ac2865dac8fdbb4fff47105db32ddf05b',1,'MAINTAIN_FREE_CLUSTER_COUNT(): SdFatConfig.h'],['../_fat_lib_config_8h.html#ac2865dac8fdbb4fff47105db32ddf05b',1,'MAINTAIN_FREE_CLUSTER_COUNT(): FatLibConfig.h']]], - ['masterbootrecord',['masterBootRecord',['../structmaster_boot_record.html',1,'']]], - ['mbr',['mbr',['../unioncache__t.html#a6ac10bfb1ebb1139c448456679663bb6',1,'cache_t']]], - ['mbr_5ft',['mbr_t',['../_fat_structs_8h.html#a7c429e5097f101c8c97663d6c4155bd9',1,'FatStructs.h']]], - ['mbrsig0',['mbrSig0',['../structmaster_boot_record.html#a42b0b413ecb21ac5314d4f6bca05308f',1,'masterBootRecord']]], - ['mbrsig1',['mbrSig1',['../structmaster_boot_record.html#aafbbcb4f6a2d1181c6458d4c9603df4f',1,'masterBootRecord']]], - ['mediatype',['mediaType',['../structbios_parm_block.html#a4237e7c3ba247516d546c149954e5042',1,'biosParmBlock::mediaType()'],['../structfat__boot.html#a63eaf7185663369af2527309634d3c90',1,'fat_boot::mediaType()'],['../structfat32__boot.html#a3b1ab5d2dc872c0d80cd4f34622de417',1,'fat32_boot::mediaType()']]], - ['minimumserial',['MinimumSerial',['../class_minimum_serial.html',1,'']]], - ['minimumserial_2eh',['MinimumSerial.h',['../_minimum_serial_8h.html',1,'']]], - ['mkdir',['mkdir',['../class_fat_file.html#abab5b9f72cc796388dd4eed01d13d90d',1,'FatFile::mkdir()'],['../class_fat_file_system.html#a231c62c98ba8ac3c2624dc5ad2053ebf',1,'FatFileSystem::mkdir()']]], - ['mustbezero',['mustBeZero',['../structlong_directory_entry.html#af3055930e869875e49b32ef0b49c3649',1,'longDirectoryEntry']]] + ['lastaccessdate',['lastAccessDate',['../structdirectory_entry.html#abca70dc5c5fcbe199fd78df010111331',1,'directoryEntry']]], + ['lastwritedate',['lastWriteDate',['../structdirectory_entry.html#a12b2e7cf87482a942a0b5d3df6c51468',1,'directoryEntry']]], + ['lastwritetime',['lastWriteTime',['../structdirectory_entry.html#a7bab435322d1928f66fbce53ee1f402d',1,'directoryEntry']]], + ['lbn',['lbn',['../class_fat_cache.html#a9f981b53e212f79937e5f6381b169374',1,'FatCache']]], + ['ldir_5fname1_5fdim',['LDIR_NAME1_DIM',['../_fat_structs_8h.html#af843af29c67dd30ca7c5684806bf02fc',1,'FatStructs.h']]], + ['ldir_5fname2_5fdim',['LDIR_NAME2_DIM',['../_fat_structs_8h.html#a99cae591c59e261f54617617e173e7e0',1,'FatStructs.h']]], + ['ldir_5fname3_5fdim',['LDIR_NAME3_DIM',['../_fat_structs_8h.html#a99fbd27fa9e5003a8d77ca7fc14d2090',1,'FatStructs.h']]], + ['ldir_5ford_5flast_5flong_5fentry',['LDIR_ORD_LAST_LONG_ENTRY',['../_fat_structs_8h.html#a8cfb60b9eaf04dcdc6e4f5a466af5540',1,'FatStructs.h']]], + ['ldir_5ft',['ldir_t',['../_fat_structs_8h.html#aa1b540ee1eedd1aa9b267d11cba0d9e2',1,'FatStructs.h']]], + ['leadsignature',['leadSignature',['../structfat32__fsinfo.html#aa8ee056cc1beb1355e15610c1beba5e3',1,'fat32_fsinfo']]], + ['left',['left',['../classios__base.html#ad364df9af2cfde1f40bd8e10c62bb215',1,'ios_base::left()'],['../ios_8h.html#a24a80a73f0a0d2d72d1cb74f49ff4759',1,'left(): ios.h']]], + ['legal83char',['legal83Char',['../class_fat_file.html#a94df8090f16e9666cdc53ca20f6aff90',1,'FatFile']]], + ['len',['len',['../structfname__t.html#a471184cc4c2671526d7d6fb80b2fe20c',1,'fname_t']]], + ['length',['length',['../classobufstream.html#ac650708e968b0c0545a3badeb809cf15',1,'obufstream']]], + ['lfn',['lfn',['../structfname__t.html#a76ffd7abd5b7d3acf90b329c905770fd',1,'fname_t']]], + ['longdirectoryentry',['longDirectoryEntry',['../structlong_directory_entry.html',1,'']]], + ['ls',['ls',['../class_fat_file.html#ad49f688a494b351ccbb0102dcfafb925',1,'FatFile::ls(uint8_t flags=0)'],['../class_fat_file.html#acabf31ff85e696fbf384c49428012fea',1,'FatFile::ls(print_t *pr, uint8_t flags=0, uint8_t indent=0)'],['../class_fat_file_system.html#a2398fb37a7a9d5e0dc0ffde6a44a993d',1,'FatFileSystem::ls(uint8_t flags=0)'],['../class_fat_file_system.html#a122b61dbec5051304bcc81bc08b1b99d',1,'FatFileSystem::ls(const char *path, uint8_t flags=0)'],['../class_fat_file_system.html#ae12fb8bfad5c4a8e052dda70a5a0ed93',1,'FatFileSystem::ls(print_t *pr, uint8_t flags=0)'],['../class_fat_file_system.html#aa79695db8e910300507210b3067d39fd',1,'FatFileSystem::ls(print_t *pr, const char *path, uint8_t flags)']]] ]; diff --git a/extras/html/search/all_d.html b/extras/html/search/all_d.html index 00b28ed8..cc52c79f 100644 --- a/extras/html/search/all_d.html +++ b/extras/html/search/all_d.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/all_d.js b/extras/html/search/all_d.js index 8b100cc2..30a4bf7a 100644 --- a/extras/html/search/all_d.js +++ b/extras/html/search/all_d.js @@ -1,15 +1,14 @@ var searchData= [ - ['name',['name',['../structdirectory_entry.html#a05dc993ea55a1a742de5970541a31ecb',1,'directoryEntry::name()'],['../class_file.html#a7ca23d8d3997c10c221977c64736f575',1,'File::name()']]], - ['name1',['name1',['../structlong_directory_entry.html#a629f1ca5ba2ccce6cac5295578b6e7b4',1,'longDirectoryEntry']]], - ['name2',['name2',['../structlong_directory_entry.html#ad763b5a3da4b8d326d9888493fbb819a',1,'longDirectoryEntry']]], - ['name3',['name3',['../structlong_directory_entry.html#a6f14c81b7d224dc4431217f92601257a',1,'longDirectoryEntry']]], - ['nextfree',['nextFree',['../structfat32__fsinfo.html#a539b3bb0a2ead9df417df9ac8b6b1606',1,'fat32_fsinfo']]], - ['noboolalpha',['noboolalpha',['../ios_8h.html#aa6a1ec04992fc8090ca775a39678be01',1,'ios.h']]], - ['noshowbase',['noshowbase',['../ios_8h.html#ab861ff5f863de0ae002b65390dde36b0',1,'ios.h']]], - ['noshowpoint',['noshowpoint',['../ios_8h.html#ad85399d1b75151cf9e2436f2a1ccfc13',1,'ios.h']]], - ['noshowpos',['noshowpos',['../ios_8h.html#a985805b22ffb4ce2f5298168662bd2d7',1,'ios.h']]], - ['noskipws',['noskipws',['../ios_8h.html#a773b847300db776fde08a0b562792131',1,'ios.h']]], - ['nouppercase',['nouppercase',['../ios_8h.html#a24b96fb317e056b34aa84c4bb965a79a',1,'ios.h']]], - ['null',['NULL',['../_stdio_stream_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4',1,'StdioStream.h']]] + ['maintain_5ffree_5fcluster_5fcount',['MAINTAIN_FREE_CLUSTER_COUNT',['../_sd_fat_config_8h.html#ac2865dac8fdbb4fff47105db32ddf05b',1,'MAINTAIN_FREE_CLUSTER_COUNT(): SdFatConfig.h'],['../_fat_lib_config_8h.html#ac2865dac8fdbb4fff47105db32ddf05b',1,'MAINTAIN_FREE_CLUSTER_COUNT(): FatLibConfig.h']]], + ['masterbootrecord',['masterBootRecord',['../structmaster_boot_record.html',1,'']]], + ['mbr',['mbr',['../unioncache__t.html#a6ac10bfb1ebb1139c448456679663bb6',1,'cache_t']]], + ['mbr_5ft',['mbr_t',['../_fat_structs_8h.html#a7c429e5097f101c8c97663d6c4155bd9',1,'FatStructs.h']]], + ['mbrsig0',['mbrSig0',['../structmaster_boot_record.html#a42b0b413ecb21ac5314d4f6bca05308f',1,'masterBootRecord']]], + ['mbrsig1',['mbrSig1',['../structmaster_boot_record.html#aafbbcb4f6a2d1181c6458d4c9603df4f',1,'masterBootRecord']]], + ['mediatype',['mediaType',['../structbios_parm_block.html#a4237e7c3ba247516d546c149954e5042',1,'biosParmBlock::mediaType()'],['../structfat__boot.html#a63eaf7185663369af2527309634d3c90',1,'fat_boot::mediaType()'],['../structfat32__boot.html#a3b1ab5d2dc872c0d80cd4f34622de417',1,'fat32_boot::mediaType()']]], + ['minimumserial',['MinimumSerial',['../class_minimum_serial.html',1,'']]], + ['minimumserial_2eh',['MinimumSerial.h',['../_minimum_serial_8h.html',1,'']]], + ['mkdir',['mkdir',['../class_fat_file.html#abab5b9f72cc796388dd4eed01d13d90d',1,'FatFile::mkdir()'],['../class_fat_file_system.html#a231c62c98ba8ac3c2624dc5ad2053ebf',1,'FatFileSystem::mkdir()']]], + ['mustbezero',['mustBeZero',['../structlong_directory_entry.html#af3055930e869875e49b32ef0b49c3649',1,'longDirectoryEntry']]] ]; diff --git a/extras/html/search/all_e.html b/extras/html/search/all_e.html index 07d52599..85b39bd4 100644 --- a/extras/html/search/all_e.html +++ b/extras/html/search/all_e.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/all_e.js b/extras/html/search/all_e.js index 18ca5152..cc1d64b3 100644 --- a/extras/html/search/all_e.js +++ b/extras/html/search/all_e.js @@ -1,22 +1,15 @@ var searchData= [ - ['obufstream',['obufstream',['../classobufstream.html',1,'obufstream'],['../classobufstream.html#a74f7dbcf1131b77d3665aa85d6629722',1,'obufstream::obufstream()'],['../classobufstream.html#a7af0555c5c08ebf9cbc70fc5e2f67db7',1,'obufstream::obufstream(char *buf, size_t size)']]], - ['oct',['oct',['../classios__base.html#a4155540f8d3ffdb8d25a2f50ee4df08f',1,'ios_base::oct()'],['../ios_8h.html#ae661b435df22f8e8e643817f4f915123',1,'oct(): ios.h']]], - ['oemid',['oemId',['../structfat__boot.html#adc034212201e879fea1eb44db43e55a5',1,'fat_boot::oemId()'],['../structfat32__boot.html#af623a473a960ea20904dce0edfb6bb9d',1,'fat32_boot::oemId()']]], - ['off_5ftype',['off_type',['../classios__base.html#a45de7cca0d01da781f4b886179c65c22',1,'ios_base']]], - ['ofstream',['ofstream',['../classofstream.html',1,'ofstream'],['../classofstream.html#ae8a8145adf2cfe1f948ad482ed504b75',1,'ofstream::ofstream()']]], - ['open',['open',['../class_fat_file.html#a5f64576d3d19177ab3cf3812b69abdfa',1,'FatFile::open(FatFileSystem *fs, const char *path, uint8_t oflag)'],['../class_fat_file.html#ad3fa9daaccb4e4179fb88a8ca037aa80',1,'FatFile::open(FatFile *dirFile, uint16_t index, uint8_t oflag)'],['../class_fat_file.html#a211be757679b18708f6b6a36464e4f61',1,'FatFile::open(FatFile *dirFile, const char *path, uint8_t oflag)'],['../class_fat_file.html#ab0e7075062c89f356441f80fc64d03e6',1,'FatFile::open(const char *path, uint8_t oflag=O_READ)'],['../class_fat_file_system.html#a947e4586077a922892b632edac33b67a',1,'FatFileSystem::open(const char *path, uint8_t mode=FILE_READ)'],['../class_fat_file_system.html#a0abfb1f754a8fb559cfa884ee040f56f',1,'FatFileSystem::open(const String &path, uint8_t mode=FILE_READ)'],['../classfstream.html#a85b24d94552991f33caf4c3a83420879',1,'fstream::open()'],['../classifstream.html#a169694d6535fd551fd6db48a2867590e',1,'ifstream::open()'],['../classofstream.html#a4b9d30c742fbe01baa336406c7afdcb2',1,'ofstream::open()']]], - ['openmode',['openmode',['../classios__base.html#aaa192ec0dccc43050715553a34644523',1,'ios_base']]], - ['opennext',['openNext',['../class_fat_file.html#a8034c4649eb0d26715b1a8a69e73d9d0',1,'FatFile']]], - ['opennextfile',['openNextFile',['../class_file.html#acd72000ab1f6a1ce73ac8fbdc854ae0c',1,'File']]], - ['openroot',['openRoot',['../class_fat_file.html#a7e0c0548fed3a69e7284b91b694439d4',1,'FatFile']]], - ['operator_20bool',['operator bool',['../class_minimum_serial.html#a73a1a2a92604ecb8507afde0022aedd8',1,'MinimumSerial::operator bool()'],['../class_file.html#af171fbf441c899cf71d88b8b0b83d38b',1,'File::operator bool()']]], - ['operator_20const_20void_20_2a',['operator const void *',['../classios.html#a8c2e7e42e31d3d7898a51c0bc837b2a3',1,'ios']]], - ['operator_21',['operator!',['../classios.html#a1ae2d4f1ccdfcaaef6a3a8ac9e28c267',1,'ios']]], - ['operator_3c_3c',['operator<<',['../classostream.html#a4dfc0cdb38bced959ba7cf963db38c30',1,'ostream::operator<<(ostream &(*pf)(ostream &str))'],['../classostream.html#af52c607ea168aff1025222c62cad392f',1,'ostream::operator<<(ios_base &(*pf)(ios_base &str))'],['../classostream.html#a63e3999be154253cf92a45c22e548f51',1,'ostream::operator<<(bool arg)'],['../classostream.html#a618b5d6861dde2347847102b89e0ccfa',1,'ostream::operator<<(const char *arg)'],['../classostream.html#aebe24ff723b806cbee19deb2165d0a5b',1,'ostream::operator<<(const signed char *arg)'],['../classostream.html#ac0cf68ffa4706994f47acb1fa37c601a',1,'ostream::operator<<(const unsigned char *arg)'],['../classostream.html#a1d1e11d2fadaf4c9e34194a1f28572e4',1,'ostream::operator<<(char arg)'],['../classostream.html#ad06f8c6c47667e9c7b14620882c09434',1,'ostream::operator<<(signed char arg)'],['../classostream.html#a69912ec4a8536f289b716e95953d09d7',1,'ostream::operator<<(unsigned char arg)'],['../classostream.html#a8065697d56d5e5d1a0ca50c1916b4955',1,'ostream::operator<<(double arg)'],['../classostream.html#a6c68e418e19d9dcdfe6b1790b2621666',1,'ostream::operator<<(float arg)'],['../classostream.html#a227c47e2b631f29d8873b00290bb4872',1,'ostream::operator<<(short arg)'],['../classostream.html#ace10a3a767dc55faff2cec71cd0a89b1',1,'ostream::operator<<(unsigned short arg)'],['../classostream.html#a62488f7ce7822c777ea27d15223b8e5f',1,'ostream::operator<<(int arg)'],['../classostream.html#ad31df6cd88c7248c01808e40889a7907',1,'ostream::operator<<(unsigned int arg)'],['../classostream.html#a15db9977ed82e503bd3cd1f585acf9e6',1,'ostream::operator<<(long arg)'],['../classostream.html#aaedd44fefa48cf3f0967fcd699a2909d',1,'ostream::operator<<(unsigned long arg)'],['../classostream.html#a2a8febd7c07f078120dd69bb71f25a94',1,'ostream::operator<<(const void *arg)'],['../classostream.html#a99ee8d9265d9354f197d02a3d17116be',1,'ostream::operator<<(const __FlashStringHelper *arg)'],['../iostream_8h.html#aa125ac928f3377cbc6e3cf288b9378fd',1,'operator<<(ostream &os, const setfill &arg): iostream.h'],['../iostream_8h.html#a23d4c29ef8ae37ec7d972d0b66187652',1,'operator<<(ostream &os, const setprecision &arg): iostream.h'],['../iostream_8h.html#a331649f2fdb01ed069dc18a5fad781b1',1,'operator<<(ostream &os, const setw &arg): iostream.h']]], - ['operator_3e_3e',['operator>>',['../classistream.html#aa67d3b8ac67e2097d876a66657ec6067',1,'istream::operator>>(istream &(*pf)(istream &str))'],['../classistream.html#ac6e2f17c80edd19deecdc20f804c424e',1,'istream::operator>>(ios_base &(*pf)(ios_base &str))'],['../classistream.html#a5a0a2c0e06abadb79951ebe34f36d62a',1,'istream::operator>>(ios &(*pf)(ios &str))'],['../classistream.html#a99db66d2e192f02deff0171ad098271f',1,'istream::operator>>(char *str)'],['../classistream.html#addaf5e0f39a15cc213117165dfef0d77',1,'istream::operator>>(char &ch)'],['../classistream.html#a390af4d28adbdc537e436f2121d1c862',1,'istream::operator>>(signed char *str)'],['../classistream.html#a49ab1a573fbf69809d19a52855a30072',1,'istream::operator>>(signed char &ch)'],['../classistream.html#a52e85d01198968330f20026a52cb9f72',1,'istream::operator>>(unsigned char *str)'],['../classistream.html#a74875fcf9ccdc0dca4b46a0b66821798',1,'istream::operator>>(unsigned char &ch)'],['../classistream.html#a3708636d095d360695e9c23335639317',1,'istream::operator>>(bool &arg)'],['../classistream.html#a662060e885a0551c390b7042b3b9e4a5',1,'istream::operator>>(short &arg)'],['../classistream.html#a31a706a374c5a594e400734b8992e2a0',1,'istream::operator>>(unsigned short &arg)'],['../classistream.html#ae8451bc86d83828892d9d67c67b7f02b',1,'istream::operator>>(int &arg)'],['../classistream.html#a35c9847ebf7b822c5ec9742e9de19345',1,'istream::operator>>(unsigned int &arg)'],['../classistream.html#aa26e7f35e74d96803bb0dfb3fb0dc154',1,'istream::operator>>(long &arg)'],['../classistream.html#a5aafa4c7f6615a7f1441962b61b8ef59',1,'istream::operator>>(unsigned long &arg)'],['../classistream.html#af9bf453725ce1d9ef62142a7ee38936e',1,'istream::operator>>(double &arg)'],['../classistream.html#aa8efce6fecab80cf7a17d5dfa31f5aa8',1,'istream::operator>>(float &arg)'],['../classistream.html#a62ef4762feacc64a8acdcbf8f1296936',1,'istream::operator>>(void *&arg)'],['../iostream_8h.html#a4a4079de901e0f3f10c743115bd345b2',1,'operator>>(istream &obj, const setfill &arg): iostream.h'],['../iostream_8h.html#a2f819cd0ccda31a8b648f20534469308',1,'operator>>(istream &is, const setprecision &arg): iostream.h'],['../iostream_8h.html#a8d1b3da6f1074322a6e9e11ff4ce8c33',1,'operator>>(istream &is, const setw &arg): iostream.h']]], - ['ord',['ord',['../structlong_directory_entry.html#a1b65e85dd63d0708cd1b875ce4e5e338',1,'longDirectoryEntry']]], - ['ostream',['ostream',['../classostream.html',1,'']]], - ['ostream_2eh',['ostream.h',['../ostream_8h.html',1,'']]], - ['out',['out',['../classios__base.html#a4c1d517774c0d11af3424e90395f26ae',1,'ios_base']]] + ['name',['name',['../structdirectory_entry.html#a05dc993ea55a1a742de5970541a31ecb',1,'directoryEntry::name()'],['../class_file.html#a3d7c8f86311b9aad2bcc43e677d927ed',1,'File::name()']]], + ['name1',['name1',['../structlong_directory_entry.html#a629f1ca5ba2ccce6cac5295578b6e7b4',1,'longDirectoryEntry']]], + ['name2',['name2',['../structlong_directory_entry.html#ad763b5a3da4b8d326d9888493fbb819a',1,'longDirectoryEntry']]], + ['name3',['name3',['../structlong_directory_entry.html#a6f14c81b7d224dc4431217f92601257a',1,'longDirectoryEntry']]], + ['nextfree',['nextFree',['../structfat32__fsinfo.html#a539b3bb0a2ead9df417df9ac8b6b1606',1,'fat32_fsinfo']]], + ['noboolalpha',['noboolalpha',['../ios_8h.html#aa6a1ec04992fc8090ca775a39678be01',1,'ios.h']]], + ['noshowbase',['noshowbase',['../ios_8h.html#ab861ff5f863de0ae002b65390dde36b0',1,'ios.h']]], + ['noshowpoint',['noshowpoint',['../ios_8h.html#ad85399d1b75151cf9e2436f2a1ccfc13',1,'ios.h']]], + ['noshowpos',['noshowpos',['../ios_8h.html#a985805b22ffb4ce2f5298168662bd2d7',1,'ios.h']]], + ['noskipws',['noskipws',['../ios_8h.html#a773b847300db776fde08a0b562792131',1,'ios.h']]], + ['nouppercase',['nouppercase',['../ios_8h.html#a24b96fb317e056b34aa84c4bb965a79a',1,'ios.h']]], + ['null',['NULL',['../_stdio_stream_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4',1,'StdioStream.h']]] ]; diff --git a/extras/html/search/all_f.html b/extras/html/search/all_f.html index 2213eb20..89fa15a6 100644 --- a/extras/html/search/all_f.html +++ b/extras/html/search/all_f.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/all_f.js b/extras/html/search/all_f.js index 6392abf8..1fb63a9e 100644 --- a/extras/html/search/all_f.js +++ b/extras/html/search/all_f.js @@ -1,33 +1,22 @@ var searchData= [ - ['p',['p',['../structsetprecision.html#a7cb7bb355a303fa39a8035615bde9348',1,'setprecision']]], - ['part',['part',['../structmaster_boot_record.html#aa4e294e50f311635c10c92f4c99227c5',1,'masterBootRecord']]], - ['part_5ft',['part_t',['../_fat_structs_8h.html#a37251e7d5c69a159be727a3fc8c9d0e6',1,'FatStructs.h']]], - ['partitiontable',['partitionTable',['../structpartition_table.html',1,'']]], - ['peek',['peek',['../class_print_file.html#a3a2a66f4a0cb69ab4edc66d39997fda7',1,'PrintFile::peek()'],['../class_file.html#a0e5025f39bd584563bfe4b05fc1db268',1,'File::peek()'],['../class_fat_file.html#ac05b7136b887539426856c623869aa3a',1,'FatFile::peek()'],['../classistream.html#a4022265e0ede3698454f1ff59348c14a',1,'istream::peek()']]], - ['pgm_5fread_5fbyte',['pgm_read_byte',['../_fat_file_8h.html#a48c60b057902adf805797f183286728d',1,'FatFile.h']]], - ['pgm_5fread_5fword',['pgm_read_word',['../_fat_file_8h.html#a910fb5f01313d339d3b835d45e1e5ad0',1,'FatFile.h']]], - ['pos_5ftype',['pos_type',['../classios__base.html#abe85cf1f181b8bce8022f05ab76aae7f',1,'ios_base']]], - ['position',['position',['../struct_fat_pos__t.html#a8e14c6f2705777502b543452743eaa26',1,'FatPos_t::position()'],['../class_file.html#aae991c597c0bc4c5eb44c1f3b06a21ec',1,'File::position()']]], - ['precision',['precision',['../classios__base.html#a9d36cb5a859b74e04f640d2f5e53b41d',1,'ios_base::precision() const '],['../classios__base.html#a5b70cc65fc2c276136fea99bddedb6f0',1,'ios_base::precision(unsigned int n)']]], - ['print',['print',['../class_stdio_stream.html#ad3f6ee8e8ca5dcf6dabfd88199b172e2',1,'StdioStream::print(char c)'],['../class_stdio_stream.html#a1158ea5f9bf041f21b1733b7811c9bb9',1,'StdioStream::print(const char *str)'],['../class_stdio_stream.html#aac4d7b3548d03b8fd70adf12c7ee315c',1,'StdioStream::print(const __FlashStringHelper *str)'],['../class_stdio_stream.html#a26f5b98560b6771225005b073166108b',1,'StdioStream::print(double val, uint8_t prec=2)'],['../class_stdio_stream.html#a06b6eb9f0a7000fdcc73cd6af8d40560',1,'StdioStream::print(float val, uint8_t prec=2)'],['../class_stdio_stream.html#a7129f85c7c5f16867f467731ef84dee9',1,'StdioStream::print(T val)']]], - ['print_5ft',['print_t',['../_fat_volume_8h.html#ac62f6449331cfe1a71f29be30efe7890',1,'FatVolume.h']]], - ['printcreatedatetime',['printCreateDateTime',['../class_fat_file.html#a558530f20314a8d8ee3d1a488fc7f46e',1,'FatFile']]], - ['printdec',['printDec',['../class_stdio_stream.html#ac0a907feb1e4b7e00de99857b4c0a470',1,'StdioStream::printDec(char n)'],['../class_stdio_stream.html#a2707ea97f6113c226781469f4f39ff62',1,'StdioStream::printDec(signed char n)'],['../class_stdio_stream.html#a6e6ac78caa6259a4c4934707bf497a2b',1,'StdioStream::printDec(unsigned char n)'],['../class_stdio_stream.html#a218af88db35f38babf01d6e0a9cdceeb',1,'StdioStream::printDec(int16_t n)'],['../class_stdio_stream.html#a90b2999af94a3578fff7579c2acf8e35',1,'StdioStream::printDec(uint16_t n)'],['../class_stdio_stream.html#ad4591f1234b57f63c1acf0f3392099ac',1,'StdioStream::printDec(int32_t n)'],['../class_stdio_stream.html#a8b6c2c80342abe45e6f564e9bd5bb7ea',1,'StdioStream::printDec(uint32_t n)'],['../class_stdio_stream.html#aaa8921947d4dbbae840d285cb633e8aa',1,'StdioStream::printDec(double value, uint8_t prec)'],['../class_stdio_stream.html#a6a09284b1c6d0769c27916a2e131e749',1,'StdioStream::printDec(float value, uint8_t prec)']]], - ['printfatdate',['printFatDate',['../class_fat_file.html#a8fdb038aafdf3a17ac80b53c063aa73b',1,'FatFile::printFatDate(uint16_t fatDate)'],['../class_fat_file.html#ada5364f66204b1a64afbf9d2e6cd2b0b',1,'FatFile::printFatDate(print_t *pr, uint16_t fatDate)']]], - ['printfattime',['printFatTime',['../class_fat_file.html#a7740731f08ef97de7dfbc9b075c4c7d1',1,'FatFile::printFatTime(uint16_t fatTime)'],['../class_fat_file.html#a4e7e56ba52ca17c602af1b85684b09a9',1,'FatFile::printFatTime(print_t *pr, uint16_t fatTime)']]], - ['printfield',['printField',['../class_fat_file.html#a7478cad0f9e5079311b9e1fa558016ff',1,'FatFile::printField(float value, char term, uint8_t prec=2)'],['../class_fat_file.html#abd3e1747511216462b3ef98167156cbb',1,'FatFile::printField(int16_t value, char term)'],['../class_fat_file.html#a9972c2419c293ef9c382bff666b9ae4d',1,'FatFile::printField(uint16_t value, char term)'],['../class_fat_file.html#a41b3b32dd8482429b74c7af3432d6cf8',1,'FatFile::printField(int32_t value, char term)'],['../class_fat_file.html#a097240f08baadeb1c64b63eab9afb088',1,'FatFile::printField(uint32_t value, char term)'],['../class_stdio_stream.html#a4988592ada39c4b4c603b061f84d183f',1,'StdioStream::printField(double value, char term, uint8_t prec=2)'],['../class_stdio_stream.html#a3b90b2317cc391f94784a847f5313c08',1,'StdioStream::printField(float value, char term, uint8_t prec=2)'],['../class_stdio_stream.html#a02c2ad1a2e71e82d238b8386cf3e6c41',1,'StdioStream::printField(T value, char term)']]], - ['printfile',['PrintFile',['../class_print_file.html',1,'PrintFile'],['../class_print_file.html#adc3bcb2a5c4207de7ff7e9be3ac54233',1,'PrintFile::PrintFile()']]], - ['printfilesize',['printFileSize',['../class_fat_file.html#a12a5d2de2737c201aa39ca1bd2ab9c47',1,'FatFile']]], - ['printhex',['printHex',['../class_stdio_stream.html#add39b2b4ec3daa7c8922e96ce5d368bc',1,'StdioStream']]], - ['printhexln',['printHexln',['../class_stdio_stream.html#aec6ebea511489b0ef6b61d9132d93af9',1,'StdioStream']]], - ['println',['println',['../class_stdio_stream.html#ad0cd3acc05a91456f505752377bd405a',1,'StdioStream::println()'],['../class_stdio_stream.html#a3793dd66cf347a1ca0b7b167e948cce9',1,'StdioStream::println(double val, uint8_t prec=2)'],['../class_stdio_stream.html#aac250d041a7844c8db1cbd2d97ecfdaa',1,'StdioStream::println(float val, uint8_t prec=2)'],['../class_stdio_stream.html#a3b14532768d07e6ed89c762d04792c12',1,'StdioStream::println(T val)']]], - ['printmodifydatetime',['printModifyDateTime',['../class_fat_file.html#a05cee5df46a370bf916d3ba597c82e39',1,'FatFile']]], - ['printname',['printName',['../class_fat_file.html#ad1cbc3aeb0f5193b7a26595966da9621',1,'FatFile::printName()'],['../class_fat_file.html#afe18a787fb8640e2d2483370c770f82f',1,'FatFile::printName(print_t *pr)']]], - ['printsfn',['printSFN',['../class_fat_file.html#a791cd7aade71f609aab62ec018aea3c0',1,'FatFile']]], - ['progmem',['PROGMEM',['../_fat_file_8h.html#a75acaba9e781937468d0911423bc0c35',1,'FatFile.h']]], - ['pstr',['PSTR',['../_fat_file_8h.html#a9c00057fd19e916cc1aa0a5949336beb',1,'FatFile.h']]], - ['put',['put',['../classostream.html#a11aad8a1efd284ccfa91cbfb78d089bd',1,'ostream']]], - ['putc',['putc',['../class_stdio_stream.html#adf9e552212aad6fc2284da0ee62d04dc',1,'StdioStream']]], - ['putcrlf',['putCRLF',['../class_stdio_stream.html#a09ccc4b6cabc3502c1052e85d94e84ef',1,'StdioStream']]] + ['obufstream',['obufstream',['../classobufstream.html',1,'obufstream'],['../classobufstream.html#a74f7dbcf1131b77d3665aa85d6629722',1,'obufstream::obufstream()'],['../classobufstream.html#a7af0555c5c08ebf9cbc70fc5e2f67db7',1,'obufstream::obufstream(char *buf, size_t size)']]], + ['oct',['oct',['../classios__base.html#a4155540f8d3ffdb8d25a2f50ee4df08f',1,'ios_base::oct()'],['../ios_8h.html#ae661b435df22f8e8e643817f4f915123',1,'oct(): ios.h']]], + ['oemid',['oemId',['../structfat__boot.html#adc034212201e879fea1eb44db43e55a5',1,'fat_boot::oemId()'],['../structfat32__boot.html#af623a473a960ea20904dce0edfb6bb9d',1,'fat32_boot::oemId()']]], + ['off_5ftype',['off_type',['../classios__base.html#a45de7cca0d01da781f4b886179c65c22',1,'ios_base']]], + ['ofstream',['ofstream',['../classofstream.html',1,'ofstream'],['../classofstream.html#ae8a8145adf2cfe1f948ad482ed504b75',1,'ofstream::ofstream()']]], + ['open',['open',['../class_fat_file.html#a3567b0760afe1250334b6c85c2ad5869',1,'FatFile::open(FatFileSystem *fs, const char *path, oflag_t oflag)'],['../class_fat_file.html#ab44920bb9cd5414b8e69c9dc4343394a',1,'FatFile::open(FatFile *dirFile, uint16_t index, oflag_t oflag)'],['../class_fat_file.html#a58d6ea245f1bc3ae7a6df311cd25052f',1,'FatFile::open(FatFile *dirFile, const char *path, oflag_t oflag)'],['../class_fat_file.html#a2da94d4556eebd807669e0514433fffa',1,'FatFile::open(const char *path, oflag_t oflag=O_RDONLY)'],['../class_fat_file_system.html#a1590dbde58cf1622a18d1350058a6e18',1,'FatFileSystem::open(const char *path, oflag_t oflag=FILE_READ)'],['../class_fat_file_system.html#a7c44842544967e0083bec1a6089e5061',1,'FatFileSystem::open(const String &path, oflag_t oflag=FILE_READ)'],['../classfstream.html#a85b24d94552991f33caf4c3a83420879',1,'fstream::open()'],['../classifstream.html#a169694d6535fd551fd6db48a2867590e',1,'ifstream::open()'],['../classofstream.html#a4b9d30c742fbe01baa336406c7afdcb2',1,'ofstream::open()']]], + ['openmode',['openmode',['../classios__base.html#aaa192ec0dccc43050715553a34644523',1,'ios_base']]], + ['opennext',['openNext',['../class_fat_file.html#acda9b1bf547d43e183e657bee053a48d',1,'FatFile']]], + ['opennextfile',['openNextFile',['../class_file.html#a49946976035a0811200dc92d5843b8dc',1,'File']]], + ['openroot',['openRoot',['../class_fat_file.html#a7e0c0548fed3a69e7284b91b694439d4',1,'FatFile']]], + ['operator_20bool',['operator bool',['../class_minimum_serial.html#a73a1a2a92604ecb8507afde0022aedd8',1,'MinimumSerial::operator bool()'],['../class_file.html#af171fbf441c899cf71d88b8b0b83d38b',1,'File::operator bool()']]], + ['operator_20const_20void_20_2a',['operator const void *',['../classios.html#aa919219fd2fa41d49c8573b36bb04418',1,'ios']]], + ['operator_21',['operator!',['../classios.html#aea64e05b9aa58bd75ca636692f881fb6',1,'ios']]], + ['operator_3c_3c',['operator<<',['../classostream.html#a4dfc0cdb38bced959ba7cf963db38c30',1,'ostream::operator<<(ostream &(*pf)(ostream &str))'],['../classostream.html#af52c607ea168aff1025222c62cad392f',1,'ostream::operator<<(ios_base &(*pf)(ios_base &str))'],['../classostream.html#a63e3999be154253cf92a45c22e548f51',1,'ostream::operator<<(bool arg)'],['../classostream.html#a618b5d6861dde2347847102b89e0ccfa',1,'ostream::operator<<(const char *arg)'],['../classostream.html#aebe24ff723b806cbee19deb2165d0a5b',1,'ostream::operator<<(const signed char *arg)'],['../classostream.html#ac0cf68ffa4706994f47acb1fa37c601a',1,'ostream::operator<<(const unsigned char *arg)'],['../classostream.html#a1d1e11d2fadaf4c9e34194a1f28572e4',1,'ostream::operator<<(char arg)'],['../classostream.html#ad06f8c6c47667e9c7b14620882c09434',1,'ostream::operator<<(signed char arg)'],['../classostream.html#a69912ec4a8536f289b716e95953d09d7',1,'ostream::operator<<(unsigned char arg)'],['../classostream.html#a8065697d56d5e5d1a0ca50c1916b4955',1,'ostream::operator<<(double arg)'],['../classostream.html#a6c68e418e19d9dcdfe6b1790b2621666',1,'ostream::operator<<(float arg)'],['../classostream.html#a227c47e2b631f29d8873b00290bb4872',1,'ostream::operator<<(short arg)'],['../classostream.html#ace10a3a767dc55faff2cec71cd0a89b1',1,'ostream::operator<<(unsigned short arg)'],['../classostream.html#a62488f7ce7822c777ea27d15223b8e5f',1,'ostream::operator<<(int arg)'],['../classostream.html#ad31df6cd88c7248c01808e40889a7907',1,'ostream::operator<<(unsigned int arg)'],['../classostream.html#a15db9977ed82e503bd3cd1f585acf9e6',1,'ostream::operator<<(long arg)'],['../classostream.html#aaedd44fefa48cf3f0967fcd699a2909d',1,'ostream::operator<<(unsigned long arg)'],['../classostream.html#a2a8febd7c07f078120dd69bb71f25a94',1,'ostream::operator<<(const void *arg)'],['../classostream.html#a99ee8d9265d9354f197d02a3d17116be',1,'ostream::operator<<(const __FlashStringHelper *arg)'],['../iostream_8h.html#aa125ac928f3377cbc6e3cf288b9378fd',1,'operator<<(ostream &os, const setfill &arg): iostream.h'],['../iostream_8h.html#a23d4c29ef8ae37ec7d972d0b66187652',1,'operator<<(ostream &os, const setprecision &arg): iostream.h'],['../iostream_8h.html#a331649f2fdb01ed069dc18a5fad781b1',1,'operator<<(ostream &os, const setw &arg): iostream.h']]], + ['operator_3e_3e',['operator>>',['../classistream.html#aa67d3b8ac67e2097d876a66657ec6067',1,'istream::operator>>(istream &(*pf)(istream &str))'],['../classistream.html#ac6e2f17c80edd19deecdc20f804c424e',1,'istream::operator>>(ios_base &(*pf)(ios_base &str))'],['../classistream.html#a5a0a2c0e06abadb79951ebe34f36d62a',1,'istream::operator>>(ios &(*pf)(ios &str))'],['../classistream.html#a99db66d2e192f02deff0171ad098271f',1,'istream::operator>>(char *str)'],['../classistream.html#addaf5e0f39a15cc213117165dfef0d77',1,'istream::operator>>(char &ch)'],['../classistream.html#a390af4d28adbdc537e436f2121d1c862',1,'istream::operator>>(signed char *str)'],['../classistream.html#a49ab1a573fbf69809d19a52855a30072',1,'istream::operator>>(signed char &ch)'],['../classistream.html#a52e85d01198968330f20026a52cb9f72',1,'istream::operator>>(unsigned char *str)'],['../classistream.html#a74875fcf9ccdc0dca4b46a0b66821798',1,'istream::operator>>(unsigned char &ch)'],['../classistream.html#a3708636d095d360695e9c23335639317',1,'istream::operator>>(bool &arg)'],['../classistream.html#a662060e885a0551c390b7042b3b9e4a5',1,'istream::operator>>(short &arg)'],['../classistream.html#a31a706a374c5a594e400734b8992e2a0',1,'istream::operator>>(unsigned short &arg)'],['../classistream.html#ae8451bc86d83828892d9d67c67b7f02b',1,'istream::operator>>(int &arg)'],['../classistream.html#a35c9847ebf7b822c5ec9742e9de19345',1,'istream::operator>>(unsigned int &arg)'],['../classistream.html#aa26e7f35e74d96803bb0dfb3fb0dc154',1,'istream::operator>>(long &arg)'],['../classistream.html#a5aafa4c7f6615a7f1441962b61b8ef59',1,'istream::operator>>(unsigned long &arg)'],['../classistream.html#af9bf453725ce1d9ef62142a7ee38936e',1,'istream::operator>>(double &arg)'],['../classistream.html#aa8efce6fecab80cf7a17d5dfa31f5aa8',1,'istream::operator>>(float &arg)'],['../classistream.html#a62ef4762feacc64a8acdcbf8f1296936',1,'istream::operator>>(void *&arg)'],['../iostream_8h.html#a4a4079de901e0f3f10c743115bd345b2',1,'operator>>(istream &obj, const setfill &arg): iostream.h'],['../iostream_8h.html#a2f819cd0ccda31a8b648f20534469308',1,'operator>>(istream &is, const setprecision &arg): iostream.h'],['../iostream_8h.html#a8d1b3da6f1074322a6e9e11ff4ce8c33',1,'operator>>(istream &is, const setw &arg): iostream.h']]], + ['ord',['ord',['../structlong_directory_entry.html#a1b65e85dd63d0708cd1b875ce4e5e338',1,'longDirectoryEntry']]], + ['ostream',['ostream',['../classostream.html',1,'']]], + ['ostream_2eh',['ostream.h',['../ostream_8h.html',1,'']]], + ['out',['out',['../classios__base.html#a4c1d517774c0d11af3424e90395f26ae',1,'ios_base']]] ]; diff --git a/extras/html/search/classes_0.html b/extras/html/search/classes_0.html index 523591f0..e935fdf7 100644 --- a/extras/html/search/classes_0.html +++ b/extras/html/search/classes_0.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/classes_1.html b/extras/html/search/classes_1.html index f5a65ad4..3df6e80a 100644 --- a/extras/html/search/classes_1.html +++ b/extras/html/search/classes_1.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/classes_2.html b/extras/html/search/classes_2.html index 5b89b277..028694ff 100644 --- a/extras/html/search/classes_2.html +++ b/extras/html/search/classes_2.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/classes_3.html b/extras/html/search/classes_3.html index 63ffc5db..2b1abe38 100644 --- a/extras/html/search/classes_3.html +++ b/extras/html/search/classes_3.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/classes_4.html b/extras/html/search/classes_4.html index 4acce5bc..87352149 100644 --- a/extras/html/search/classes_4.html +++ b/extras/html/search/classes_4.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/classes_5.html b/extras/html/search/classes_5.html index 67b3b9f8..ba8b1c69 100644 --- a/extras/html/search/classes_5.html +++ b/extras/html/search/classes_5.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/classes_6.html b/extras/html/search/classes_6.html index ab174b54..f5850938 100644 --- a/extras/html/search/classes_6.html +++ b/extras/html/search/classes_6.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/classes_7.html b/extras/html/search/classes_7.html index 737ed8ba..6418529c 100644 --- a/extras/html/search/classes_7.html +++ b/extras/html/search/classes_7.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/classes_8.html b/extras/html/search/classes_8.html index b58c4b4b..87af6f60 100644 --- a/extras/html/search/classes_8.html +++ b/extras/html/search/classes_8.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/classes_9.html b/extras/html/search/classes_9.html index 83984ab2..f830ae04 100644 --- a/extras/html/search/classes_9.html +++ b/extras/html/search/classes_9.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/classes_a.html b/extras/html/search/classes_a.html index 8a0a6565..0fd3b7ac 100644 --- a/extras/html/search/classes_a.html +++ b/extras/html/search/classes_a.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/classes_a.js b/extras/html/search/classes_a.js index 2ff10e57..5a74c247 100644 --- a/extras/html/search/classes_a.js +++ b/extras/html/search/classes_a.js @@ -5,14 +5,17 @@ var searchData= ['sdfat',['SdFat',['../class_sd_fat.html',1,'']]], ['sdfatex',['SdFatEX',['../class_sd_fat_e_x.html',1,'']]], ['sdfatsdio',['SdFatSdio',['../class_sd_fat_sdio.html',1,'']]], + ['sdfatsdioex',['SdFatSdioEX',['../class_sd_fat_sdio_e_x.html',1,'']]], ['sdfatsoftspi',['SdFatSoftSpi',['../class_sd_fat_soft_spi.html',1,'']]], ['sdfatsoftspiex',['SdFatSoftSpiEX',['../class_sd_fat_soft_spi_e_x.html',1,'']]], ['sdfile',['SdFile',['../class_sd_file.html',1,'']]], ['sdfilesystem',['SdFileSystem',['../class_sd_file_system.html',1,'']]], ['sdfilesystem_3c_20sdiocard_20_3e',['SdFileSystem< SdioCard >',['../class_sd_file_system.html',1,'']]], + ['sdfilesystem_3c_20sdiocardex_20_3e',['SdFileSystem< SdioCardEX >',['../class_sd_file_system.html',1,'']]], ['sdfilesystem_3c_20sdspicard_20_3e',['SdFileSystem< SdSpiCard >',['../class_sd_file_system.html',1,'']]], ['sdfilesystem_3c_20sdspicardex_20_3e',['SdFileSystem< SdSpiCardEX >',['../class_sd_file_system.html',1,'']]], ['sdiocard',['SdioCard',['../class_sdio_card.html',1,'']]], + ['sdiocardex',['SdioCardEX',['../class_sdio_card_e_x.html',1,'']]], ['sdspicard',['SdSpiCard',['../class_sd_spi_card.html',1,'']]], ['sdspicardex',['SdSpiCardEX',['../class_sd_spi_card_e_x.html',1,'']]], ['setfill',['setfill',['../structsetfill.html',1,'']]], diff --git a/extras/html/search/defines_0.html b/extras/html/search/defines_0.html index c3b36198..3bffafa9 100644 --- a/extras/html/search/defines_0.html +++ b/extras/html/search/defines_0.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/defines_0.js b/extras/html/search/defines_0.js index 567d919e..73b9bad7 100644 --- a/extras/html/search/defines_0.js +++ b/extras/html/search/defines_0.js @@ -1,4 +1,4 @@ var searchData= [ - ['destructor_5fcloses_5ffile',['DESTRUCTOR_CLOSES_FILE',['../_sd_fat_config_8h.html#a9a2b1ca4d91cff876f48deeaacbc33da',1,'DESTRUCTOR_CLOSES_FILE(): SdFatConfig.h'],['../_fat_lib_config_8h.html#a9a2b1ca4d91cff876f48deeaacbc33da',1,'DESTRUCTOR_CLOSES_FILE(): FatLibConfig.h']]] + ['check_5fflash_5fprogramming',['CHECK_FLASH_PROGRAMMING',['../_sd_fat_config_8h.html#a63747c9ac4e3d78579690cf9eb38c4df',1,'SdFatConfig.h']]] ]; diff --git a/extras/html/search/defines_1.html b/extras/html/search/defines_1.html index 09fcf9e5..ca5bb94e 100644 --- a/extras/html/search/defines_1.html +++ b/extras/html/search/defines_1.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/defines_1.js b/extras/html/search/defines_1.js index 0ac9ddd8..567d919e 100644 --- a/extras/html/search/defines_1.js +++ b/extras/html/search/defines_1.js @@ -1,9 +1,4 @@ var searchData= [ - ['enable_5farduino_5ffeatures',['ENABLE_ARDUINO_FEATURES',['../_fat_lib_config_8h.html#a9a8c1ea8596f35f7f33a24b642567206',1,'FatLibConfig.h']]], - ['enable_5fextended_5ftransfer_5fclass',['ENABLE_EXTENDED_TRANSFER_CLASS',['../_sd_fat_config_8h.html#aad4f0ecbc65cdc3a7be544225b44f86a',1,'SdFatConfig.h']]], - ['enable_5fsdio_5fclass',['ENABLE_SDIO_CLASS',['../_sd_fat_config_8h.html#a1d106f3a0ba8577abdcc9ce3961ef90b',1,'SdFatConfig.h']]], - ['enable_5fsoftware_5fspi_5fclass',['ENABLE_SOFTWARE_SPI_CLASS',['../_sd_fat_config_8h.html#acc3d779d87b785bb7236b9b3acf7e619',1,'SdFatConfig.h']]], - ['endl_5fcalls_5fflush',['ENDL_CALLS_FLUSH',['../_sd_fat_config_8h.html#a270eefdaec4778f2a491658f34f61b17',1,'ENDL_CALLS_FLUSH(): SdFatConfig.h'],['../_fat_lib_config_8h.html#a270eefdaec4778f2a491658f34f61b17',1,'ENDL_CALLS_FLUSH(): FatLibConfig.h']]], - ['eof',['EOF',['../_stdio_stream_8h.html#a59adc4c82490d23754cd39c2fb99b0da',1,'StdioStream.h']]] + ['destructor_5fcloses_5ffile',['DESTRUCTOR_CLOSES_FILE',['../_sd_fat_config_8h.html#a9a2b1ca4d91cff876f48deeaacbc33da',1,'DESTRUCTOR_CLOSES_FILE(): SdFatConfig.h'],['../_fat_lib_config_8h.html#a9a2b1ca4d91cff876f48deeaacbc33da',1,'DESTRUCTOR_CLOSES_FILE(): FatLibConfig.h']]] ]; diff --git a/extras/html/search/defines_2.html b/extras/html/search/defines_2.html index 6d6dc75e..7cc1a74c 100644 --- a/extras/html/search/defines_2.html +++ b/extras/html/search/defines_2.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/defines_2.js b/extras/html/search/defines_2.js index a89012ff..0ac9ddd8 100644 --- a/extras/html/search/defines_2.js +++ b/extras/html/search/defines_2.js @@ -1,7 +1,9 @@ var searchData= [ - ['f',['F',['../_sys_call_8h.html#a0e3009529aac180ed5f48296d6670d6b',1,'SysCall.h']]], - ['fat12_5fsupport',['FAT12_SUPPORT',['../_sd_fat_config_8h.html#a28998c5daf4bd038f4f93172698320b1',1,'FAT12_SUPPORT(): SdFatConfig.h'],['../_fat_lib_config_8h.html#a28998c5daf4bd038f4f93172698320b1',1,'FAT12_SUPPORT(): FatLibConfig.h']]], - ['file_5fread',['FILE_READ',['../_arduino_files_8h.html#ad52d51659a75e25d96fb04d22ff718cb',1,'ArduinoFiles.h']]], - ['file_5fwrite',['FILE_WRITE',['../_arduino_files_8h.html#ace34e503254fa9004599ddf122264c8f',1,'ArduinoFiles.h']]] + ['enable_5farduino_5ffeatures',['ENABLE_ARDUINO_FEATURES',['../_fat_lib_config_8h.html#a9a8c1ea8596f35f7f33a24b642567206',1,'FatLibConfig.h']]], + ['enable_5fextended_5ftransfer_5fclass',['ENABLE_EXTENDED_TRANSFER_CLASS',['../_sd_fat_config_8h.html#aad4f0ecbc65cdc3a7be544225b44f86a',1,'SdFatConfig.h']]], + ['enable_5fsdio_5fclass',['ENABLE_SDIO_CLASS',['../_sd_fat_config_8h.html#a1d106f3a0ba8577abdcc9ce3961ef90b',1,'SdFatConfig.h']]], + ['enable_5fsoftware_5fspi_5fclass',['ENABLE_SOFTWARE_SPI_CLASS',['../_sd_fat_config_8h.html#acc3d779d87b785bb7236b9b3acf7e619',1,'SdFatConfig.h']]], + ['endl_5fcalls_5fflush',['ENDL_CALLS_FLUSH',['../_sd_fat_config_8h.html#a270eefdaec4778f2a491658f34f61b17',1,'ENDL_CALLS_FLUSH(): SdFatConfig.h'],['../_fat_lib_config_8h.html#a270eefdaec4778f2a491658f34f61b17',1,'ENDL_CALLS_FLUSH(): FatLibConfig.h']]], + ['eof',['EOF',['../_stdio_stream_8h.html#a59adc4c82490d23754cd39c2fb99b0da',1,'StdioStream.h']]] ]; diff --git a/extras/html/search/defines_3.html b/extras/html/search/defines_3.html index 5aba72ef..3d0ac123 100644 --- a/extras/html/search/defines_3.html +++ b/extras/html/search/defines_3.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/defines_3.js b/extras/html/search/defines_3.js index 49f56af7..a89012ff 100644 --- a/extras/html/search/defines_3.js +++ b/extras/html/search/defines_3.js @@ -1,5 +1,7 @@ var searchData= [ - ['implement_5fspi_5fport_5fselection',['IMPLEMENT_SPI_PORT_SELECTION',['../_sd_fat_config_8h.html#aa13678c06fd801cb8f00b497a517d91e',1,'SdFatConfig.h']]], - ['isdirseparator',['isDirSeparator',['../_fat_file_8h.html#a9f85580ad6f1dfc86fff09a58ff0a1c0',1,'FatFile.h']]] + ['f',['F',['../_sys_call_8h.html#a0e3009529aac180ed5f48296d6670d6b',1,'SysCall.h']]], + ['fat12_5fsupport',['FAT12_SUPPORT',['../_sd_fat_config_8h.html#a28998c5daf4bd038f4f93172698320b1',1,'FAT12_SUPPORT(): SdFatConfig.h'],['../_fat_lib_config_8h.html#a28998c5daf4bd038f4f93172698320b1',1,'FAT12_SUPPORT(): FatLibConfig.h']]], + ['file_5fread',['FILE_READ',['../_arduino_files_8h.html#ad52d51659a75e25d96fb04d22ff718cb',1,'ArduinoFiles.h']]], + ['file_5fwrite',['FILE_WRITE',['../_arduino_files_8h.html#ace34e503254fa9004599ddf122264c8f',1,'ArduinoFiles.h']]] ]; diff --git a/extras/html/search/defines_4.html b/extras/html/search/defines_4.html index 7486f564..201f927f 100644 --- a/extras/html/search/defines_4.html +++ b/extras/html/search/defines_4.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/defines_4.js b/extras/html/search/defines_4.js index df3950f5..93543167 100644 --- a/extras/html/search/defines_4.js +++ b/extras/html/search/defines_4.js @@ -1,4 +1,6 @@ var searchData= [ - ['maintain_5ffree_5fcluster_5fcount',['MAINTAIN_FREE_CLUSTER_COUNT',['../_sd_fat_config_8h.html#ac2865dac8fdbb4fff47105db32ddf05b',1,'MAINTAIN_FREE_CLUSTER_COUNT(): SdFatConfig.h'],['../_fat_lib_config_8h.html#ac2865dac8fdbb4fff47105db32ddf05b',1,'MAINTAIN_FREE_CLUSTER_COUNT(): FatLibConfig.h']]] + ['implement_5fspi_5fport_5fselection',['IMPLEMENT_SPI_PORT_SELECTION',['../_sd_fat_config_8h.html#aa13678c06fd801cb8f00b497a517d91e',1,'SdFatConfig.h']]], + ['include_5fsdios',['INCLUDE_SDIOS',['../_sd_fat_config_8h.html#a7cc6c9647297d65f8e823de70740630b',1,'SdFatConfig.h']]], + ['isdirseparator',['isDirSeparator',['../_fat_file_8h.html#a9f85580ad6f1dfc86fff09a58ff0a1c0',1,'FatFile.h']]] ]; diff --git a/extras/html/search/defines_5.html b/extras/html/search/defines_5.html index 3137e0ac..92d51a58 100644 --- a/extras/html/search/defines_5.html +++ b/extras/html/search/defines_5.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/defines_5.js b/extras/html/search/defines_5.js index b45fe3da..df3950f5 100644 --- a/extras/html/search/defines_5.js +++ b/extras/html/search/defines_5.js @@ -1,4 +1,4 @@ var searchData= [ - ['null',['NULL',['../_stdio_stream_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4',1,'StdioStream.h']]] + ['maintain_5ffree_5fcluster_5fcount',['MAINTAIN_FREE_CLUSTER_COUNT',['../_sd_fat_config_8h.html#ac2865dac8fdbb4fff47105db32ddf05b',1,'MAINTAIN_FREE_CLUSTER_COUNT(): SdFatConfig.h'],['../_fat_lib_config_8h.html#ac2865dac8fdbb4fff47105db32ddf05b',1,'MAINTAIN_FREE_CLUSTER_COUNT(): FatLibConfig.h']]] ]; diff --git a/extras/html/search/defines_6.html b/extras/html/search/defines_6.html index ae03e5c0..fa5d74ce 100644 --- a/extras/html/search/defines_6.html +++ b/extras/html/search/defines_6.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/defines_6.js b/extras/html/search/defines_6.js index 9894a74e..b45fe3da 100644 --- a/extras/html/search/defines_6.js +++ b/extras/html/search/defines_6.js @@ -1,7 +1,4 @@ var searchData= [ - ['pgm_5fread_5fbyte',['pgm_read_byte',['../_fat_file_8h.html#a48c60b057902adf805797f183286728d',1,'FatFile.h']]], - ['pgm_5fread_5fword',['pgm_read_word',['../_fat_file_8h.html#a910fb5f01313d339d3b835d45e1e5ad0',1,'FatFile.h']]], - ['progmem',['PROGMEM',['../_fat_file_8h.html#a75acaba9e781937468d0911423bc0c35',1,'FatFile.h']]], - ['pstr',['PSTR',['../_fat_file_8h.html#a9c00057fd19e916cc1aa0a5949336beb',1,'FatFile.h']]] + ['null',['NULL',['../_stdio_stream_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4',1,'StdioStream.h']]] ]; diff --git a/extras/html/search/defines_7.html b/extras/html/search/defines_7.html index cff9f024..99054085 100644 --- a/extras/html/search/defines_7.html +++ b/extras/html/search/defines_7.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/defines_7.js b/extras/html/search/defines_7.js index 7c309170..9894a74e 100644 --- a/extras/html/search/defines_7.js +++ b/extras/html/search/defines_7.js @@ -1,8 +1,7 @@ var searchData= [ - ['sd_5ffat_5fversion',['SD_FAT_VERSION',['../_sd_fat_8h.html#aca25ecce379f446043bdee2c55304210',1,'SdFat.h']]], - ['sd_5fhas_5fcustom_5fspi',['SD_HAS_CUSTOM_SPI',['../_sd_fat_config_8h.html#a838861a01379e94361148d22e62b1977',1,'SdFatConfig.h']]], - ['seek_5fcur',['SEEK_CUR',['../_stdio_stream_8h.html#a4c8d0b76b470ba65a43ca46a88320f39',1,'StdioStream.h']]], - ['seek_5fend',['SEEK_END',['../_stdio_stream_8h.html#ad2a2e6c114780c3071efd24f16c7f7d8',1,'StdioStream.h']]], - ['seek_5fset',['SEEK_SET',['../_stdio_stream_8h.html#a0d112bae8fd35be772185b6ec6bcbe64',1,'StdioStream.h']]] + ['pgm_5fread_5fbyte',['pgm_read_byte',['../_fat_file_8h.html#a48c60b057902adf805797f183286728d',1,'FatFile.h']]], + ['pgm_5fread_5fword',['pgm_read_word',['../_fat_file_8h.html#a910fb5f01313d339d3b835d45e1e5ad0',1,'FatFile.h']]], + ['progmem',['PROGMEM',['../_fat_file_8h.html#a75acaba9e781937468d0911423bc0c35',1,'FatFile.h']]], + ['pstr',['PSTR',['../_fat_file_8h.html#a9c00057fd19e916cc1aa0a5949336beb',1,'FatFile.h']]] ]; diff --git a/extras/html/search/defines_8.html b/extras/html/search/defines_8.html index ed546ae1..9098e183 100644 --- a/extras/html/search/defines_8.html +++ b/extras/html/search/defines_8.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/defines_8.js b/extras/html/search/defines_8.js index 41661be2..7c309170 100644 --- a/extras/html/search/defines_8.js +++ b/extras/html/search/defines_8.js @@ -1,8 +1,8 @@ var searchData= [ - ['use_5flong_5ffile_5fnames',['USE_LONG_FILE_NAMES',['../_sd_fat_config_8h.html#a2536b194b3b007604a39e8526e108b52',1,'USE_LONG_FILE_NAMES(): SdFatConfig.h'],['../_fat_lib_config_8h.html#a2536b194b3b007604a39e8526e108b52',1,'USE_LONG_FILE_NAMES(): FatLibConfig.h']]], - ['use_5fmulti_5fblock_5fio',['USE_MULTI_BLOCK_IO',['../_sd_fat_config_8h.html#afc3ef382d3ab8d7e6f8fc134ef21d487',1,'USE_MULTI_BLOCK_IO(): SdFatConfig.h'],['../_fat_lib_config_8h.html#afc3ef382d3ab8d7e6f8fc134ef21d487',1,'USE_MULTI_BLOCK_IO(): FatLibConfig.h']]], - ['use_5fsd_5fcrc',['USE_SD_CRC',['../_sd_fat_config_8h.html#af2e76ffb2fdb830175abf513dd640fdd',1,'SdFatConfig.h']]], - ['use_5fseparate_5ffat_5fcache',['USE_SEPARATE_FAT_CACHE',['../_sd_fat_config_8h.html#a23f662882413dcb017ebd8107473b8c3',1,'USE_SEPARATE_FAT_CACHE(): SdFatConfig.h'],['../_fat_lib_config_8h.html#a23f662882413dcb017ebd8107473b8c3',1,'USE_SEPARATE_FAT_CACHE(): FatLibConfig.h']]], - ['use_5fstandard_5fspi_5flibrary',['USE_STANDARD_SPI_LIBRARY',['../_sd_fat_config_8h.html#a3dc42547ca4567cb789bec55759afeb2',1,'SdFatConfig.h']]] + ['sd_5ffat_5fversion',['SD_FAT_VERSION',['../_sd_fat_8h.html#aca25ecce379f446043bdee2c55304210',1,'SdFat.h']]], + ['sd_5fhas_5fcustom_5fspi',['SD_HAS_CUSTOM_SPI',['../_sd_fat_config_8h.html#a838861a01379e94361148d22e62b1977',1,'SdFatConfig.h']]], + ['seek_5fcur',['SEEK_CUR',['../_stdio_stream_8h.html#a4c8d0b76b470ba65a43ca46a88320f39',1,'StdioStream.h']]], + ['seek_5fend',['SEEK_END',['../_stdio_stream_8h.html#ad2a2e6c114780c3071efd24f16c7f7d8',1,'StdioStream.h']]], + ['seek_5fset',['SEEK_SET',['../_stdio_stream_8h.html#a0d112bae8fd35be772185b6ec6bcbe64',1,'StdioStream.h']]] ]; diff --git a/extras/html/search/defines_9.html b/extras/html/search/defines_9.html index a16c0354..bdebe602 100644 --- a/extras/html/search/defines_9.html +++ b/extras/html/search/defines_9.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/defines_9.js b/extras/html/search/defines_9.js index beb44631..a93232be 100644 --- a/extras/html/search/defines_9.js +++ b/extras/html/search/defines_9.js @@ -1,4 +1,9 @@ var searchData= [ - ['wdt_5fyield_5ftime_5fmicros',['WDT_YIELD_TIME_MICROS',['../_sd_fat_config_8h.html#a4e8a928d86c50c91c0bfc9a442373e14',1,'SdFatConfig.h']]] + ['use_5ffcntl_5fh',['USE_FCNTL_H',['../_sd_fat_config_8h.html#ab4b7255422e65730612f1f6af1a26752',1,'SdFatConfig.h']]], + ['use_5flong_5ffile_5fnames',['USE_LONG_FILE_NAMES',['../_sd_fat_config_8h.html#a2536b194b3b007604a39e8526e108b52',1,'USE_LONG_FILE_NAMES(): SdFatConfig.h'],['../_fat_lib_config_8h.html#a2536b194b3b007604a39e8526e108b52',1,'USE_LONG_FILE_NAMES(): FatLibConfig.h']]], + ['use_5fmulti_5fblock_5fio',['USE_MULTI_BLOCK_IO',['../_sd_fat_config_8h.html#afc3ef382d3ab8d7e6f8fc134ef21d487',1,'USE_MULTI_BLOCK_IO(): SdFatConfig.h'],['../_fat_lib_config_8h.html#afc3ef382d3ab8d7e6f8fc134ef21d487',1,'USE_MULTI_BLOCK_IO(): FatLibConfig.h']]], + ['use_5fsd_5fcrc',['USE_SD_CRC',['../_sd_fat_config_8h.html#af2e76ffb2fdb830175abf513dd640fdd',1,'SdFatConfig.h']]], + ['use_5fseparate_5ffat_5fcache',['USE_SEPARATE_FAT_CACHE',['../_sd_fat_config_8h.html#a23f662882413dcb017ebd8107473b8c3',1,'USE_SEPARATE_FAT_CACHE(): SdFatConfig.h'],['../_fat_lib_config_8h.html#a23f662882413dcb017ebd8107473b8c3',1,'USE_SEPARATE_FAT_CACHE(): FatLibConfig.h']]], + ['use_5fstandard_5fspi_5flibrary',['USE_STANDARD_SPI_LIBRARY',['../_sd_fat_config_8h.html#a3dc42547ca4567cb789bec55759afeb2',1,'SdFatConfig.h']]] ]; diff --git a/extras/html/search/defines_a.html b/extras/html/search/defines_a.html new file mode 100644 index 00000000..d6b491aa --- /dev/null +++ b/extras/html/search/defines_a.html @@ -0,0 +1,30 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/extras/html/search/defines_a.js b/extras/html/search/defines_a.js new file mode 100644 index 00000000..beb44631 --- /dev/null +++ b/extras/html/search/defines_a.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['wdt_5fyield_5ftime_5fmicros',['WDT_YIELD_TIME_MICROS',['../_sd_fat_config_8h.html#a4e8a928d86c50c91c0bfc9a442373e14',1,'SdFatConfig.h']]] +]; diff --git a/extras/html/search/enums_0.html b/extras/html/search/enums_0.html index d8d79a39..9efcd1b7 100644 --- a/extras/html/search/enums_0.html +++ b/extras/html/search/enums_0.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/enumvalues_0.html b/extras/html/search/enumvalues_0.html index 450f1acd..03fdfad9 100644 --- a/extras/html/search/enumvalues_0.html +++ b/extras/html/search/enumvalues_0.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/enumvalues_1.html b/extras/html/search/enumvalues_1.html index ac8ff572..abeea564 100644 --- a/extras/html/search/enumvalues_1.html +++ b/extras/html/search/enumvalues_1.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/enumvalues_2.html b/extras/html/search/enumvalues_2.html index 71e42ad0..90289986 100644 --- a/extras/html/search/enumvalues_2.html +++ b/extras/html/search/enumvalues_2.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/files_0.html b/extras/html/search/files_0.html index a2ec540b..49606c82 100644 --- a/extras/html/search/files_0.html +++ b/extras/html/search/files_0.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/files_1.html b/extras/html/search/files_1.html index 9e974daa..c8871748 100644 --- a/extras/html/search/files_1.html +++ b/extras/html/search/files_1.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/files_2.html b/extras/html/search/files_2.html index 04348f90..99bdf21c 100644 --- a/extras/html/search/files_2.html +++ b/extras/html/search/files_2.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/files_3.html b/extras/html/search/files_3.html index 77942003..f8e543a8 100644 --- a/extras/html/search/files_3.html +++ b/extras/html/search/files_3.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/files_4.html b/extras/html/search/files_4.html index e6bc2852..2ebb46c7 100644 --- a/extras/html/search/files_4.html +++ b/extras/html/search/files_4.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/files_5.html b/extras/html/search/files_5.html index 5ab2ed6a..268b7eb5 100644 --- a/extras/html/search/files_5.html +++ b/extras/html/search/files_5.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/files_6.html b/extras/html/search/files_6.html index 9453495a..98fc6666 100644 --- a/extras/html/search/files_6.html +++ b/extras/html/search/files_6.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/files_6.js b/extras/html/search/files_6.js index 7a8b7127..74d0dc93 100644 --- a/extras/html/search/files_6.js +++ b/extras/html/search/files_6.js @@ -2,6 +2,7 @@ var searchData= [ ['sdfat_2eh',['SdFat.h',['../_sd_fat_8h.html',1,'']]], ['sdfatconfig_2eh',['SdFatConfig.h',['../_sd_fat_config_8h.html',1,'']]], + ['sdios_2eh',['sdios.h',['../sdios_8h.html',1,'']]], ['sdspicard_2eh',['SdSpiCard.h',['../_sd_spi_card_8h.html',1,'']]], ['stdiostream_2eh',['StdioStream.h',['../_stdio_stream_8h.html',1,'']]], ['syscall_2eh',['SysCall.h',['../_sys_call_8h.html',1,'']]] diff --git a/extras/html/search/functions_0.html b/extras/html/search/functions_0.html index 246d1672..0539c8ce 100644 --- a/extras/html/search/functions_0.html +++ b/extras/html/search/functions_0.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/functions_1.html b/extras/html/search/functions_1.html index 5f14d674..4878b3d1 100644 --- a/extras/html/search/functions_1.html +++ b/extras/html/search/functions_1.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/functions_1.js b/extras/html/search/functions_1.js index 3b9b8546..732d024d 100644 --- a/extras/html/search/functions_1.js +++ b/extras/html/search/functions_1.js @@ -1,10 +1,10 @@ var searchData= [ - ['bad',['bad',['../classios.html#a7daa417c60277a4a4a452df4ad0af8e6',1,'ios']]], - ['begin',['begin',['../class_minimum_serial.html#a5c56beb3472bb97f949defeecacda52c',1,'MinimumSerial::begin()'],['../class_sd_file_system.html#ad94237ef45c52698e97b04e8c131f21e',1,'SdFileSystem::begin()'],['../class_sd_fat.html#abfafe10a64b28e6c1698ed82d340f624',1,'SdFat::begin()'],['../class_sd_fat_sdio.html#ac742b37bd8f2f4eb4df44b37c98398e0',1,'SdFatSdio::begin()'],['../class_sd_fat_soft_spi.html#a061019e4b5e17fad3cf8b0e3a08532e4',1,'SdFatSoftSpi::begin()'],['../class_sd_fat_e_x.html#a25acc97272c6004a6a4118bacef07467',1,'SdFatEX::begin()'],['../class_sd_fat_soft_spi_e_x.html#af84b3a6a61dd4c7f3c2c4bb17a8a6609',1,'SdFatSoftSpiEX::begin()'],['../class_sd2_card.html#a8506e1a2d7c4d8ec3f26e8b62ea81cd7',1,'Sd2Card::begin()'],['../class_fat_file_system.html#a5dda20d3dcbfc8c641babbb2c9aac382',1,'FatFileSystem::begin()'],['../class_sdio_card.html#ac749bdad92a4465d062f5d21a7f4faf5',1,'SdioCard::begin()'],['../class_sd_spi_card.html#a824cd60ef8ac2b06262597d6f30a4ea7',1,'SdSpiCard::begin()'],['../class_sd_spi_card_e_x.html#a4fd0b23d230c6ad7dc406e798bbd5470',1,'SdSpiCardEX::begin()']]], + ['bad',['bad',['../classios.html#a78be4e3069a644ff36d83a70b080c321',1,'ios']]], + ['begin',['begin',['../class_minimum_serial.html#a5c56beb3472bb97f949defeecacda52c',1,'MinimumSerial::begin()'],['../class_sd_file_system.html#ad94237ef45c52698e97b04e8c131f21e',1,'SdFileSystem::begin()'],['../class_sd_fat.html#abfafe10a64b28e6c1698ed82d340f624',1,'SdFat::begin()'],['../class_sd_fat_sdio.html#ac742b37bd8f2f4eb4df44b37c98398e0',1,'SdFatSdio::begin()'],['../class_sd_fat_sdio_e_x.html#a5af596a3788fa3c321a6cce2fc4e2824',1,'SdFatSdioEX::begin()'],['../class_sd_fat_soft_spi.html#a061019e4b5e17fad3cf8b0e3a08532e4',1,'SdFatSoftSpi::begin()'],['../class_sd_fat_e_x.html#a25acc97272c6004a6a4118bacef07467',1,'SdFatEX::begin()'],['../class_sd_fat_soft_spi_e_x.html#af84b3a6a61dd4c7f3c2c4bb17a8a6609',1,'SdFatSoftSpiEX::begin()'],['../class_sd2_card.html#a8506e1a2d7c4d8ec3f26e8b62ea81cd7',1,'Sd2Card::begin()'],['../class_fat_file_system.html#a5dda20d3dcbfc8c641babbb2c9aac382',1,'FatFileSystem::begin()'],['../class_sdio_card.html#ac749bdad92a4465d062f5d21a7f4faf5',1,'SdioCard::begin()'],['../class_sdio_card_e_x.html#adf877d2c8641cdbd52657004c34ec18a',1,'SdioCardEX::begin()'],['../class_sd_spi_card.html#a824cd60ef8ac2b06262597d6f30a4ea7',1,'SdSpiCard::begin()'],['../class_sd_spi_card_e_x.html#a4fd0b23d230c6ad7dc406e798bbd5470',1,'SdSpiCardEX::begin()']]], ['block',['block',['../class_fat_cache.html#ab3d9c4f94af61065b6d6d0892827fd8a',1,'FatCache']]], - ['blockspercluster',['blocksPerCluster',['../class_fat_volume.html#a06beed4cea5e38116b58254a57125442',1,'FatVolume']]], - ['blocksperfat',['blocksPerFat',['../class_fat_volume.html#abc66d856d05198d9ebe7104c8c4155d7',1,'FatVolume']]], + ['blockspercluster',['blocksPerCluster',['../class_fat_volume.html#af6ab43bc0853febb38298406c4067a43',1,'FatVolume']]], + ['blocksperfat',['blocksPerFat',['../class_fat_volume.html#adb87da3b10344f28a92dfade492b8398',1,'FatVolume']]], ['boolalpha',['boolalpha',['../ios_8h.html#a0016daaaf730481e2ad36972fa7abb17',1,'ios.h']]], ['buf',['buf',['../classobufstream.html#a4f699181bd3727f4288f4f95a5ce207f',1,'obufstream']]] ]; diff --git a/extras/html/search/functions_10.html b/extras/html/search/functions_10.html index c322f408..6f6fbae2 100644 --- a/extras/html/search/functions_10.html +++ b/extras/html/search/functions_10.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/functions_10.js b/extras/html/search/functions_10.js index 5223bda8..20d588bb 100644 --- a/extras/html/search/functions_10.js +++ b/extras/html/search/functions_10.js @@ -1,8 +1,32 @@ var searchData= [ - ['tellg',['tellg',['../classistream.html#a18332bdcb7fbe33ca06045c786cac4c3',1,'istream']]], - ['tellp',['tellp',['../classostream.html#a92dec0e2bc8352df1419d1cdc434e619',1,'ostream']]], - ['timestamp',['timestamp',['../class_fat_file.html#aa53a8d1d2467ad9af7d61cbf8ee85243',1,'FatFile::timestamp(FatFile *file)'],['../class_fat_file.html#a56dabdf73833b7e961c4530eb8e16d23',1,'FatFile::timestamp(uint8_t flags, uint16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second)']]], - ['truncate',['truncate',['../class_fat_file.html#aa6e663098a578635d37d92e82d18d616',1,'FatFile::truncate()'],['../class_fat_file_system.html#ad60cb13557f35578f868e03e9ccb8be1',1,'FatFileSystem::truncate()']]], - ['type',['type',['../class_sdio_card.html#a2151106a93280ae41bab654428214661',1,'SdioCard::type()'],['../class_sd_spi_card.html#a061d92bf154a1863a6321385b7505f6e',1,'SdSpiCard::type()']]] + ['sdbasefile',['SdBaseFile',['../class_sd_base_file.html#af23fd43105b4eb629f4b66fa695a5cf3',1,'SdBaseFile']]], + ['sdfat',['SdFat',['../class_sd_fat.html#a68d0e890435e3e71e5e44db1736add1e',1,'SdFat']]], + ['sdfatex',['SdFatEX',['../class_sd_fat_e_x.html#aef4d79f9a36785543f48ddc18ac2af78',1,'SdFatEX']]], + ['sdfile',['SdFile',['../class_sd_file.html#ad05be3a1fb635448d15a154424b6c33f',1,'SdFile']]], + ['sdspicard',['SdSpiCard',['../class_sd_spi_card.html#a0441c5da53bd3bd72fb833fc940f25e8',1,'SdSpiCard']]], + ['seek',['seek',['../class_file.html#a2d41ea52356b769e05e1242685758c08',1,'File']]], + ['seekcur',['seekCur',['../class_fat_file.html#a5812037ea30777cc350698ad26f2c73f',1,'FatFile']]], + ['seekend',['seekEnd',['../class_fat_file.html#a84f677f4e75ef6fa2eb632f4cdf6b486',1,'FatFile']]], + ['seekg',['seekg',['../classistream.html#a52d637b1aeca9946085a4a72e0208aec',1,'istream::seekg(pos_type pos)'],['../classistream.html#a60dd48a3b374fb9cbdc59e1f930dea95',1,'istream::seekg(off_type off, seekdir way)']]], + ['seekp',['seekp',['../classostream.html#a18b453d2770a8852c312cbda919c4687',1,'ostream::seekp(pos_type pos)'],['../classostream.html#af6265a5be29237517b30673667ba4213',1,'ostream::seekp(off_type off, seekdir way)']]], + ['seekset',['seekSet',['../class_fat_file.html#ab067190d25733ed7e697d9890f61fd7a',1,'FatFile']]], + ['setcwd',['setCwd',['../class_fat_file.html#a360ef9c05e677271bed6c0a4d663634c',1,'FatFile']]], + ['setf',['setf',['../classios__base.html#ab5db835cb45bba7684ebf72d9a3cccb4',1,'ios_base::setf(fmtflags fl)'],['../classios__base.html#a74dbc93607ab7d68a87ec326b92b6c81',1,'ios_base::setf(fmtflags fl, fmtflags mask)']]], + ['setfill',['setfill',['../structsetfill.html#abcd87f0632678d277df55406d25c8325',1,'setfill']]], + ['setpos',['setpos',['../class_fat_file.html#acf264de4e3ca36c5e8a39e56173c9044',1,'FatFile']]], + ['setprecision',['setprecision',['../structsetprecision.html#a73fce143591989f56ef887a2ea86ac45',1,'setprecision']]], + ['setstate',['setstate',['../classios.html#aee5d194656bdfb0c8621b23ea2f51afb',1,'ios']]], + ['setw',['setw',['../structsetw.html#afd8bfd075474f63df3c8b44ad47517d2',1,'setw']]], + ['showbase',['showbase',['../ios_8h.html#a73159e1398939807aeae6015dd86f2f4',1,'ios.h']]], + ['showpoint',['showpoint',['../ios_8h.html#a322f5897ace09768cd782f0c8f222770',1,'ios.h']]], + ['showpos',['showpos',['../ios_8h.html#a80798554dbfece679adb0e05eb855943',1,'ios.h']]], + ['size',['size',['../class_file.html#a603d3cd3319142d00a7ebd434970b017',1,'File']]], + ['skipwhite',['skipWhite',['../classistream.html#a0f7468be86d93de5d33fa99095898279',1,'istream']]], + ['skipws',['skipws',['../ios_8h.html#a972282e5d9d894f61c8a54423858c0a4',1,'ios.h']]], + ['spistart',['spiStart',['../class_sd_spi_card.html#aa39feb6ebb269071ac6843a424ac311c',1,'SdSpiCard']]], + ['spistop',['spiStop',['../class_sd_spi_card.html#a1033a4a68d38f52dddf6a1764fcca3e1',1,'SdSpiCard']]], + ['stdiostream',['StdioStream',['../class_stdio_stream.html#a96b2c027e76bfca6d6835c9ae1be2ad2',1,'StdioStream']]], + ['sync',['sync',['../class_fat_file.html#a67f3dc4896c542d695e11aac927f585e',1,'FatFile::sync()'],['../class_fat_cache.html#a4d76d4f46ce5994f6fc4678a7b4f8cf1',1,'FatCache::sync()']]], + ['syncblocks',['syncBlocks',['../class_base_block_driver.html#a5361ff2658d7654bf00b97c54c6aa2aa',1,'BaseBlockDriver::syncBlocks()'],['../class_sdio_card.html#affcd36a5c3a42042fe24716671f06632',1,'SdioCard::syncBlocks()'],['../class_sdio_card_e_x.html#a02699a39ef940441ef0f1049742c5aa7',1,'SdioCardEX::syncBlocks()'],['../class_sd_spi_card.html#a1b6d5f412c4ad75c2f575ca75c56c095',1,'SdSpiCard::syncBlocks()'],['../class_sd_spi_card_e_x.html#af4a7c15bae6add50d66d066c0927a021',1,'SdSpiCardEX::syncBlocks()']]] ]; diff --git a/extras/html/search/functions_11.html b/extras/html/search/functions_11.html index c49fcd4c..dd88d8b7 100644 --- a/extras/html/search/functions_11.html +++ b/extras/html/search/functions_11.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/functions_11.js b/extras/html/search/functions_11.js index e5df2462..0c4a4d7a 100644 --- a/extras/html/search/functions_11.js +++ b/extras/html/search/functions_11.js @@ -1,6 +1,8 @@ var searchData= [ - ['ungetc',['ungetc',['../class_stdio_stream.html#ac00e0dd906c2e857ece53794c6c92786',1,'StdioStream']]], - ['unsetf',['unsetf',['../classios__base.html#a3bf7d054a433ed15e8b984e16f630fa4',1,'ios_base']]], - ['uppercase',['uppercase',['../ios_8h.html#af5d5e1a0effa1b500bb882feed5a2061',1,'ios.h']]] + ['tellg',['tellg',['../classistream.html#a18332bdcb7fbe33ca06045c786cac4c3',1,'istream']]], + ['tellp',['tellp',['../classostream.html#a92dec0e2bc8352df1419d1cdc434e619',1,'ostream']]], + ['timestamp',['timestamp',['../class_fat_file.html#aa53a8d1d2467ad9af7d61cbf8ee85243',1,'FatFile::timestamp(FatFile *file)'],['../class_fat_file.html#a56dabdf73833b7e961c4530eb8e16d23',1,'FatFile::timestamp(uint8_t flags, uint16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second)']]], + ['truncate',['truncate',['../class_fat_file.html#aa6e663098a578635d37d92e82d18d616',1,'FatFile::truncate()'],['../class_fat_file_system.html#ad60cb13557f35578f868e03e9ccb8be1',1,'FatFileSystem::truncate()']]], + ['type',['type',['../class_sdio_card.html#a2151106a93280ae41bab654428214661',1,'SdioCard::type()'],['../class_sd_spi_card.html#a48f1e3f107d7242518bdfed78acb46bc',1,'SdSpiCard::type()']]] ]; diff --git a/extras/html/search/functions_12.html b/extras/html/search/functions_12.html index 6a027720..7093d19f 100644 --- a/extras/html/search/functions_12.html +++ b/extras/html/search/functions_12.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/functions_12.js b/extras/html/search/functions_12.js index d3159c04..e5df2462 100644 --- a/extras/html/search/functions_12.js +++ b/extras/html/search/functions_12.js @@ -1,7 +1,6 @@ var searchData= [ - ['vol',['vol',['../class_fat_file_system.html#a4ca68fe47bb675df0a80df1ed7a53698',1,'FatFileSystem']]], - ['volume',['volume',['../class_fat_file.html#a3c64bd8a9abb9a6461d4addb405614df',1,'FatFile']]], - ['volumeblockcount',['volumeBlockCount',['../class_fat_volume.html#a07bc98088ce4a9c725700899c184f7fc',1,'FatVolume']]], - ['vwd',['vwd',['../class_fat_file_system.html#acf257d02b7166683bda2abc5058004bf',1,'FatFileSystem']]] + ['ungetc',['ungetc',['../class_stdio_stream.html#ac00e0dd906c2e857ece53794c6c92786',1,'StdioStream']]], + ['unsetf',['unsetf',['../classios__base.html#a3bf7d054a433ed15e8b984e16f630fa4',1,'ios_base']]], + ['uppercase',['uppercase',['../ios_8h.html#af5d5e1a0effa1b500bb882feed5a2061',1,'ios.h']]] ]; diff --git a/extras/html/search/functions_13.html b/extras/html/search/functions_13.html index 23ac5dac..051a1eb8 100644 --- a/extras/html/search/functions_13.html +++ b/extras/html/search/functions_13.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/functions_13.js b/extras/html/search/functions_13.js index 696afe69..04c50c2e 100644 --- a/extras/html/search/functions_13.js +++ b/extras/html/search/functions_13.js @@ -1,12 +1,7 @@ var searchData= [ - ['width',['width',['../classios__base.html#afa30e7644b4eae5928ad9c487ad387de',1,'ios_base::width()'],['../classios__base.html#ab2ba0f005bbf3d8ebed93b64068492e0',1,'ios_base::width(unsigned n)']]], - ['wipe',['wipe',['../class_fat_file_system.html#a36d7831f92acfbfef1c4a24dd7103dc4',1,'FatFileSystem::wipe()'],['../class_fat_volume.html#a8088aa74cf601996905dadd2eea6966c',1,'FatVolume::wipe()']]], - ['write',['write',['../class_minimum_serial.html#a0ca1d9631fe5f2f00878bd481dbbd3aa',1,'MinimumSerial::write()'],['../class_print_file.html#a460b033ff85e85f684f8d9b615645db1',1,'PrintFile::write(uint8_t b)'],['../class_print_file.html#a29c1d534d21c3a82ad04232d37119a57',1,'PrintFile::write(const uint8_t *buf, size_t size)'],['../class_file.html#a618a6b2b7e81bfb93e0d3c158f614f90',1,'File::write(uint8_t b)'],['../class_file.html#aa531c1641a2363e1f6b9d103f37433da',1,'File::write(const uint8_t *buf, size_t size)'],['../class_fat_file.html#aa4a5b81161994cea07938702cdfce49f',1,'FatFile::write(const char *str)'],['../class_fat_file.html#a5524bd9f3b8f54ee163e391cba618186',1,'FatFile::write(uint8_t b)'],['../class_fat_file.html#a0ab9df44a9ee4b6eb0a78f15f1e30004',1,'FatFile::write(const void *buf, size_t nbyte)']]], - ['writeblock',['writeBlock',['../class_base_block_driver.html#a87df3db1b400286883661525441d39fa',1,'BaseBlockDriver::writeBlock()'],['../class_sdio_card.html#ae53e5f72ddf9ace3f47774d968e064ed',1,'SdioCard::writeBlock()'],['../class_sd_spi_card.html#a03a0bdb0f37a88076f24a2133cf5b4ed',1,'SdSpiCard::writeBlock()'],['../class_sd_spi_card_e_x.html#a6bd5e6bcfc2ab9574daa11bdd342be7b',1,'SdSpiCardEX::writeBlock()']]], - ['writeblocks',['writeBlocks',['../class_base_block_driver.html#a3d6520b21252ebfb17b0cac0b87689b1',1,'BaseBlockDriver::writeBlocks()'],['../class_sdio_card.html#a8b811f875497e90e75fbe6c2d41d89cb',1,'SdioCard::writeBlocks()'],['../class_sd_spi_card.html#a181d96fe44891b7caabcd47dd29ac913',1,'SdSpiCard::writeBlocks()'],['../class_sd_spi_card_e_x.html#a9a7a5815b56c2cc77590a72635593762',1,'SdSpiCardEX::writeBlocks()']]], - ['writedata',['writeData',['../class_sd_spi_card.html#a9495c0b148eb380358bb4a9721c0dffa',1,'SdSpiCard']]], - ['writestart',['writeStart',['../class_sd_spi_card.html#a56d4750a5d2f693943eec985cb61ffe2',1,'SdSpiCard::writeStart(uint32_t blockNumber)'],['../class_sd_spi_card.html#a8bf0dc991308dcd2a7427bad89a9e2ba',1,'SdSpiCard::writeStart(uint32_t blockNumber, uint32_t eraseCount)']]], - ['writestop',['writeStop',['../class_sd_spi_card.html#aef9154785a4de5560fb807e4f9316fb0',1,'SdSpiCard']]], - ['ws',['ws',['../iostream_8h.html#a8adf4c714b8c8f201dedc83ee04556b1',1,'iostream.h']]] + ['vol',['vol',['../class_fat_file_system.html#a4ca68fe47bb675df0a80df1ed7a53698',1,'FatFileSystem']]], + ['volume',['volume',['../class_fat_file.html#ae813920a21860b25f25d95c934dada0f',1,'FatFile']]], + ['volumeblockcount',['volumeBlockCount',['../class_fat_volume.html#ada9f893c796559c132ef9da061f04a39',1,'FatVolume']]], + ['vwd',['vwd',['../class_fat_file_system.html#acf257d02b7166683bda2abc5058004bf',1,'FatFileSystem']]] ]; diff --git a/extras/html/search/functions_14.html b/extras/html/search/functions_14.html index 16e2625a..d5fdbda4 100644 --- a/extras/html/search/functions_14.html +++ b/extras/html/search/functions_14.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/functions_14.js b/extras/html/search/functions_14.js index 685c4a73..ef3473f3 100644 --- a/extras/html/search/functions_14.js +++ b/extras/html/search/functions_14.js @@ -1,4 +1,12 @@ var searchData= [ - ['yield',['yield',['../class_sys_call.html#a2219ba5ea8e411b022a3a00df5f380e0',1,'SysCall']]] + ['width',['width',['../classios__base.html#afa30e7644b4eae5928ad9c487ad387de',1,'ios_base::width()'],['../classios__base.html#ab2ba0f005bbf3d8ebed93b64068492e0',1,'ios_base::width(unsigned n)']]], + ['wipe',['wipe',['../class_fat_file_system.html#a36d7831f92acfbfef1c4a24dd7103dc4',1,'FatFileSystem::wipe()'],['../class_fat_volume.html#a8088aa74cf601996905dadd2eea6966c',1,'FatVolume::wipe()']]], + ['write',['write',['../class_minimum_serial.html#a0ca1d9631fe5f2f00878bd481dbbd3aa',1,'MinimumSerial::write()'],['../class_print_file.html#a460b033ff85e85f684f8d9b615645db1',1,'PrintFile::write(uint8_t b)'],['../class_print_file.html#a29c1d534d21c3a82ad04232d37119a57',1,'PrintFile::write(const uint8_t *buf, size_t size)'],['../class_file.html#a618a6b2b7e81bfb93e0d3c158f614f90',1,'File::write(uint8_t b)'],['../class_file.html#aa531c1641a2363e1f6b9d103f37433da',1,'File::write(const uint8_t *buf, size_t size)'],['../class_fat_file.html#aa4a5b81161994cea07938702cdfce49f',1,'FatFile::write(const char *str)'],['../class_fat_file.html#a5524bd9f3b8f54ee163e391cba618186',1,'FatFile::write(uint8_t b)'],['../class_fat_file.html#a0ab9df44a9ee4b6eb0a78f15f1e30004',1,'FatFile::write(const void *buf, size_t nbyte)']]], + ['writeblock',['writeBlock',['../class_base_block_driver.html#a87df3db1b400286883661525441d39fa',1,'BaseBlockDriver::writeBlock()'],['../class_sdio_card.html#ae53e5f72ddf9ace3f47774d968e064ed',1,'SdioCard::writeBlock()'],['../class_sdio_card_e_x.html#ab34379d6663461dd0000180e640b73be',1,'SdioCardEX::writeBlock()'],['../class_sd_spi_card.html#a03a0bdb0f37a88076f24a2133cf5b4ed',1,'SdSpiCard::writeBlock()'],['../class_sd_spi_card_e_x.html#a6bd5e6bcfc2ab9574daa11bdd342be7b',1,'SdSpiCardEX::writeBlock()']]], + ['writeblocks',['writeBlocks',['../class_base_block_driver.html#a3d6520b21252ebfb17b0cac0b87689b1',1,'BaseBlockDriver::writeBlocks()'],['../class_sdio_card.html#a8b811f875497e90e75fbe6c2d41d89cb',1,'SdioCard::writeBlocks()'],['../class_sdio_card_e_x.html#a0e504921296a473da074d4a60d573f29',1,'SdioCardEX::writeBlocks()'],['../class_sd_spi_card.html#a181d96fe44891b7caabcd47dd29ac913',1,'SdSpiCard::writeBlocks()'],['../class_sd_spi_card_e_x.html#a9a7a5815b56c2cc77590a72635593762',1,'SdSpiCardEX::writeBlocks()']]], + ['writedata',['writeData',['../class_sdio_card.html#a8467e7ffafa45ff930b38a6f18e9547a',1,'SdioCard::writeData()'],['../class_sd_spi_card.html#a9495c0b148eb380358bb4a9721c0dffa',1,'SdSpiCard::writeData()']]], + ['writestart',['writeStart',['../class_sdio_card.html#a6216b2b1c42bd585669955f774292f78',1,'SdioCard::writeStart(uint32_t lba)'],['../class_sdio_card.html#a55b31eb21c986c8476bf42e975801e05',1,'SdioCard::writeStart(uint32_t lba, uint32_t count)'],['../class_sd_spi_card.html#a56d4750a5d2f693943eec985cb61ffe2',1,'SdSpiCard::writeStart(uint32_t blockNumber)'],['../class_sd_spi_card.html#a8bf0dc991308dcd2a7427bad89a9e2ba',1,'SdSpiCard::writeStart(uint32_t blockNumber, uint32_t eraseCount)']]], + ['writestop',['writeStop',['../class_sdio_card.html#acb560c2ea1f30c646b96f02e728b0fe1',1,'SdioCard::writeStop()'],['../class_sd_spi_card.html#aef9154785a4de5560fb807e4f9316fb0',1,'SdSpiCard::writeStop()']]], + ['ws',['ws',['../iostream_8h.html#a8adf4c714b8c8f201dedc83ee04556b1',1,'iostream.h']]] ]; diff --git a/extras/html/search/functions_15.html b/extras/html/search/functions_15.html new file mode 100644 index 00000000..546d13e6 --- /dev/null +++ b/extras/html/search/functions_15.html @@ -0,0 +1,30 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/extras/html/search/functions_15.js b/extras/html/search/functions_15.js new file mode 100644 index 00000000..685c4a73 --- /dev/null +++ b/extras/html/search/functions_15.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['yield',['yield',['../class_sys_call.html#a2219ba5ea8e411b022a3a00df5f380e0',1,'SysCall']]] +]; diff --git a/extras/html/search/functions_2.html b/extras/html/search/functions_2.html index 3995cf8c..67d2a392 100644 --- a/extras/html/search/functions_2.html +++ b/extras/html/search/functions_2.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/functions_2.js b/extras/html/search/functions_2.js index cd0abd89..d370df0f 100644 --- a/extras/html/search/functions_2.js +++ b/extras/html/search/functions_2.js @@ -1,8 +1,8 @@ var searchData= [ ['cacheclear',['cacheClear',['../class_fat_volume.html#aa1e3b1d0c21d202deb82668068ab00e8',1,'FatVolume']]], - ['card',['card',['../class_sd_file_system.html#ab5dcfbeeb7caa38a38db86003341eb07',1,'SdFileSystem']]], - ['cardbegin',['cardBegin',['../class_sd_fat.html#ae380e4572776db851b2f80a3ed143fca',1,'SdFat::cardBegin()'],['../class_sd_fat_sdio.html#ac49062cc8fb2a42564d0ff05b4c0be8b',1,'SdFatSdio::cardBegin()']]], + ['card',['card',['../class_sd_file_system.html#ab5dcfbeeb7caa38a38db86003341eb07',1,'SdFileSystem::card()'],['../class_sd_fat_sdio_e_x.html#ac3fe2fd93b491918ec77308ec7c0290c',1,'SdFatSdioEX::card()']]], + ['cardbegin',['cardBegin',['../class_sd_fat.html#ae380e4572776db851b2f80a3ed143fca',1,'SdFat::cardBegin()'],['../class_sd_fat_sdio.html#ac49062cc8fb2a42564d0ff05b4c0be8b',1,'SdFatSdio::cardBegin()'],['../class_sd_fat_sdio_e_x.html#a18f3cf979d7e72105c4642b0ebb56324',1,'SdFatSdioEX::cardBegin()']]], ['carderrorcode',['cardErrorCode',['../class_sd_file_system.html#aedfd5a0830c955bc5514e52f2f2dd066',1,'SdFileSystem']]], ['carderrordata',['cardErrorData',['../class_sd_file_system.html#a0602ab3c04ea33293649f0a15fc81e05',1,'SdFileSystem']]], ['cardsize',['cardSize',['../class_sdio_card.html#a3d8f9a92f7faec77094ec65e6c41dd45',1,'SdioCard::cardSize()'],['../class_sd_spi_card.html#afca8bd6b7e465bf9c475ba375c4deec8',1,'SdSpiCard::cardSize()']]], @@ -13,12 +13,12 @@ var searchData= ['clearerror',['clearError',['../class_fat_file.html#a052e2c15a39b322a5307b693b8835b22',1,'FatFile']]], ['clearwriteerror',['clearWriteError',['../class_fat_file.html#aeca2a2eff91e6aa55fe1b0e3860c9a05',1,'FatFile']]], ['close',['close',['../class_fat_file.html#afd16af325e0642e4bff6430b7d8bb18b',1,'FatFile::close()'],['../classfstream.html#ac5720ee620c09d63dd186823e688ea9a',1,'fstream::close()'],['../classifstream.html#ac5892f472afdef6160f5fe2401b16dce',1,'ifstream::close()'],['../classofstream.html#a240f3752c7ff7a78d10c143d2083715f',1,'ofstream::close()']]], - ['clustercount',['clusterCount',['../class_fat_volume.html#a18446a9c5924304fa7a87d5f03ccaf21',1,'FatVolume']]], - ['clustersizeshift',['clusterSizeShift',['../class_fat_volume.html#ac0e63f33d71d5dc95a602834274def6a',1,'FatVolume']]], + ['clustercount',['clusterCount',['../class_fat_volume.html#ae724879a554174e31a737f73da418009',1,'FatVolume']]], + ['clustersizeshift',['clusterSizeShift',['../class_fat_volume.html#ab36468240ef6846578ad7f58d1bc41ac',1,'FatVolume']]], ['contiguousrange',['contiguousRange',['../class_fat_file.html#aa367708bcc8bc0e0c45c0c2a812c65da',1,'FatFile']]], ['createcontiguous',['createContiguous',['../class_fat_file.html#a0afc2a1cffa238d1cb2049bfa2d8d199',1,'FatFile::createContiguous(FatFile *dirFile, const char *path, uint32_t size)'],['../class_fat_file.html#a0853fbd44aee2798d14d8e3aed78f8bf',1,'FatFile::createContiguous(const char *path, uint32_t size)']]], - ['curcluster',['curCluster',['../class_fat_file.html#a4c03e2f6729526786e6ab4a623e0339b',1,'FatFile']]], - ['curposition',['curPosition',['../class_fat_file.html#a20c55b134bfd1d287a00bf64eba9332e',1,'FatFile']]], + ['curcluster',['curCluster',['../class_fat_file.html#a526f3dd56ce205690e45ffc86ef6f891',1,'FatFile']]], + ['curposition',['curPosition',['../class_fat_file.html#a97e0620949f97e9b9c91ed1094d728aa',1,'FatFile']]], ['curtimems',['curTimeMS',['../_sys_call_8h.html#a7a1c5babdcf00c78d4d2e6a012bd9e68',1,'SysCall.h']]], ['cwd',['cwd',['../class_fat_file.html#a3b68e603ad8e47bad915f0547e580adb',1,'FatFile']]] ]; diff --git a/extras/html/search/functions_3.html b/extras/html/search/functions_3.html index 4e302d69..1f0eedb3 100644 --- a/extras/html/search/functions_3.html +++ b/extras/html/search/functions_3.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/functions_3.js b/extras/html/search/functions_3.js index e4cdd504..dae4ac05 100644 --- a/extras/html/search/functions_3.js +++ b/extras/html/search/functions_3.js @@ -1,6 +1,6 @@ var searchData= [ - ['datastartblock',['dataStartBlock',['../class_fat_volume.html#a443364af257c219f8e908d5b073d8fa3',1,'FatVolume']]], + ['datastartblock',['dataStartBlock',['../class_fat_volume.html#a55906112e0d151db3b144d29630f5066',1,'FatVolume']]], ['datetimecallback',['dateTimeCallback',['../class_fat_file.html#a29a623f50df057e8b49045ba6611ec2b',1,'FatFile']]], ['datetimecallbackcancel',['dateTimeCallbackCancel',['../class_fat_file.html#a5df02f1d037e6091375488af25244ebc',1,'FatFile']]], ['dbgfat',['dbgFat',['../class_fat_volume.html#a25c6311b70fa274b3be94ff25fdebba7',1,'FatVolume']]], @@ -16,6 +16,5 @@ var searchData= ['dirname',['dirName',['../class_fat_file.html#a648461081fe07578780f4cd3f246cb66',1,'FatFile']]], ['dirsize',['dirSize',['../class_fat_file.html#ae2ed15f05c9ccbce355e7a8d3ce8382d',1,'FatFile']]], ['dirty',['dirty',['../class_fat_cache.html#ab4d3b0c16bb6a116c7d01afff2dcb307',1,'FatCache']]], - ['dmabusy',['dmaBusy',['../class_sdio_card.html#a9781b9b4f91366a69dd077ad8fb364c5',1,'SdioCard']]], ['dmpfile',['dmpFile',['../class_fat_file.html#a4f01d27954ae49aeb6888ac7302f55d9',1,'FatFile']]] ]; diff --git a/extras/html/search/functions_4.html b/extras/html/search/functions_4.html index 58ca83a6..c5bf87a4 100644 --- a/extras/html/search/functions_4.html +++ b/extras/html/search/functions_4.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/functions_4.js b/extras/html/search/functions_4.js index fd5e3ef1..d7256582 100644 --- a/extras/html/search/functions_4.js +++ b/extras/html/search/functions_4.js @@ -1,12 +1,12 @@ var searchData= [ ['endl',['endl',['../iostream_8h.html#ab9868f8e151efc1705646437dbb59bb2',1,'iostream.h']]], - ['eof',['eof',['../classios.html#ad2f091f3ed1a2e13f62557854c0885a7',1,'ios']]], - ['erase',['erase',['../class_sdio_card.html#a1ce82b035257790ed8e4a9be3d966b80',1,'SdioCard::erase()'],['../class_sd_spi_card.html#a1caa13d19df6596b2c0dd62365c75362',1,'SdSpiCard::erase()']]], + ['eof',['eof',['../classios.html#a7aa5ea2f670d64eb3dcb3b62eddd576c',1,'ios']]], + ['erase',['erase',['../class_sdio_card.html#a1ce82b035257790ed8e4a9be3d966b80',1,'SdioCard::erase()'],['../class_sdio_card_e_x.html#a58362f3ddf4bc5ce632cce6768b2d780',1,'SdioCardEX::erase()'],['../class_sd_spi_card.html#a1caa13d19df6596b2c0dd62365c75362',1,'SdSpiCard::erase()']]], ['erasesingleblockenable',['eraseSingleBlockEnable',['../class_sd_spi_card.html#aed4591884254c9f58daa8738d7c1ccdd',1,'SdSpiCard']]], ['error',['error',['../class_sd_spi_card.html#aa12ad53111abcb187d3c6119a3a77592',1,'SdSpiCard']]], - ['errorcode',['errorCode',['../class_sdio_card.html#a4ff272009a24fc4078ac87c2d87ccd16',1,'SdioCard::errorCode()'],['../class_sd_spi_card.html#a50bf5f92223222beacec2b203a6b7a95',1,'SdSpiCard::errorCode()']]], - ['errordata',['errorData',['../class_sdio_card.html#a8251b9aa0d623487e80cf908fc1625b5',1,'SdioCard::errorData()'],['../class_sd_spi_card.html#a7b1abdb8dd5254cd4af0df19ba59ce4a',1,'SdSpiCard::errorData()']]], + ['errorcode',['errorCode',['../class_sdio_card.html#a4ff272009a24fc4078ac87c2d87ccd16',1,'SdioCard::errorCode()'],['../class_sd_spi_card.html#a4c736fb8d6d9d734d5e262875c74f054',1,'SdSpiCard::errorCode()']]], + ['errordata',['errorData',['../class_sdio_card.html#a8251b9aa0d623487e80cf908fc1625b5',1,'SdioCard::errorData()'],['../class_sd_spi_card.html#a10bb2f65b1ca85ad14de19e61a283262',1,'SdSpiCard::errorData()']]], ['errorhalt',['errorHalt',['../class_sd_file_system.html#a855267374306bfee2df67642c99d4d18',1,'SdFileSystem::errorHalt()'],['../class_sd_file_system.html#ae1f79a2974ebe134e70f898c32d97e98',1,'SdFileSystem::errorHalt(Print *pr)'],['../class_sd_file_system.html#a32c20dfa6a8cb8af95f25847b19bdbca',1,'SdFileSystem::errorHalt(char const *msg)'],['../class_sd_file_system.html#a27fb329d6aee79a63c20386218ce7e9e',1,'SdFileSystem::errorHalt(Print *pr, char const *msg)'],['../class_sd_file_system.html#af856494745a9842d9728dfeabf19c51e',1,'SdFileSystem::errorHalt(const __FlashStringHelper *msg)'],['../class_sd_file_system.html#a746c80d048c30baf0b281e16932670a2',1,'SdFileSystem::errorHalt(Print *pr, const __FlashStringHelper *msg)']]], ['errorline',['errorLine',['../class_sdio_card.html#aafa9feb1b5a90f3cf96456b6b286bfdf',1,'SdioCard']]], ['errorprint',['errorPrint',['../class_sd_file_system.html#ab0b78154d6874c29279ba81f36ccb09c',1,'SdFileSystem::errorPrint()'],['../class_sd_file_system.html#a03736274debea71fef5e2ff34d7ec3dc',1,'SdFileSystem::errorPrint(Print *pr)'],['../class_sd_file_system.html#a2e2436b7b2666737cbaf4b22218bc69f',1,'SdFileSystem::errorPrint(const char *msg)'],['../class_sd_file_system.html#a0eb6b92a0700ba932f6127962981d153',1,'SdFileSystem::errorPrint(Print *pr, char const *msg)'],['../class_sd_file_system.html#a1ccb1f937f42e9c1331c942bc357f6da',1,'SdFileSystem::errorPrint(const __FlashStringHelper *msg)'],['../class_sd_file_system.html#a43344a079d9af92ea4b550914d0512f6',1,'SdFileSystem::errorPrint(Print *pr, const __FlashStringHelper *msg)']]], diff --git a/extras/html/search/functions_5.html b/extras/html/search/functions_5.html index 5f9f05ae..a34446ce 100644 --- a/extras/html/search/functions_5.html +++ b/extras/html/search/functions_5.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/functions_5.js b/extras/html/search/functions_5.js index 32b5e431..c88a4612 100644 --- a/extras/html/search/functions_5.js +++ b/extras/html/search/functions_5.js @@ -1,6 +1,6 @@ var searchData= [ - ['fail',['fail',['../classios.html#a1c7b563046a50c5a0430405964998034',1,'ios']]], + ['fail',['fail',['../classios.html#a15269e67d05d4fe83a6cf344d542f8ae',1,'ios']]], ['fat_5fdate',['FAT_DATE',['../_fat_structs_8h.html#a44899ad42ddf32ff1c1a73b5251b304a',1,'FatStructs.h']]], ['fat_5fday',['FAT_DAY',['../_fat_structs_8h.html#a4cc8bc105529bf9e9c11e8ef099d68b0',1,'FatStructs.h']]], ['fat_5fhour',['FAT_HOUR',['../_fat_structs_8h.html#ae7c733d49a5570054f6db3bd53332ba1',1,'FatStructs.h']]], @@ -10,9 +10,9 @@ var searchData= ['fat_5ftime',['FAT_TIME',['../_fat_structs_8h.html#a375720927be5a39475d48b2d75dae29a',1,'FatStructs.h']]], ['fat_5fyear',['FAT_YEAR',['../_fat_structs_8h.html#a279a75f907dd2603543c7bdad00ff603',1,'FatStructs.h']]], ['fatcount',['fatCount',['../class_fat_volume.html#acdedc6a200b01e401c9cd9b511eae6ec',1,'FatVolume']]], - ['fatfile',['FatFile',['../class_fat_file.html#a7b591c9b92165fa8e4eae8c30c30e533',1,'FatFile::FatFile()'],['../class_fat_file.html#a29d31067d0aa3a9a74b1a660c38775cc',1,'FatFile::FatFile(const char *path, uint8_t oflag)']]], - ['fatstartblock',['fatStartBlock',['../class_fat_volume.html#a0dd0cc689b63ef0702aed1cf36b1722d',1,'FatVolume']]], - ['fattype',['fatType',['../class_fat_volume.html#a1364f11fe9bb4717ce0685e2b7b86027',1,'FatVolume']]], + ['fatfile',['FatFile',['../class_fat_file.html#a7b591c9b92165fa8e4eae8c30c30e533',1,'FatFile::FatFile()'],['../class_fat_file.html#a38f9a296138648d6135cbbbf41ef6b92',1,'FatFile::FatFile(const char *path, oflag_t oflag)']]], + ['fatstartblock',['fatStartBlock',['../class_fat_volume.html#a260bc030ab188a481dd34d6062f7b9d2',1,'FatVolume']]], + ['fattype',['fatType',['../class_fat_volume.html#a0d736f0e8f03476b896307fbe5427376',1,'FatVolume']]], ['fatvolume',['FatVolume',['../class_fat_volume.html#a026de2bb58026e4edea130db2949b84c',1,'FatVolume']]], ['fclose',['fclose',['../class_stdio_stream.html#a4ddd4658d49182013d2fa2a181e96c5a',1,'StdioStream']]], ['feof',['feof',['../class_stdio_stream.html#acb38c3211feedbf2206eb1d9a3a9d24f',1,'StdioStream']]], @@ -20,13 +20,13 @@ var searchData= ['fflush',['fflush',['../class_stdio_stream.html#a7ce32ec7ea3f2fd8ea42b9633890f1c0',1,'StdioStream']]], ['fgetc',['fgetc',['../class_stdio_stream.html#a160bd2828cb7e7370cffe1046eff8899',1,'StdioStream']]], ['fgets',['fgets',['../class_fat_file.html#a31ef26b3ee37cf5f5f4c6024c0ddab69',1,'FatFile::fgets()'],['../class_stdio_stream.html#aa240c1021a1aad1cc57f63a483541dc7',1,'StdioStream::fgets()']]], - ['file',['File',['../class_file.html#a9ecb14efb960d1369926182479f56213',1,'File']]], - ['fileattr',['fileAttr',['../class_fat_file.html#a7e043dfb89d268bfd620bbbadacf1002',1,'FatFile']]], - ['filesize',['fileSize',['../class_fat_file.html#a02fc3b3ca36b4745f695f3de8c8ec36d',1,'FatFile']]], + ['file',['File',['../class_file.html#af72feff53281f269ac592cba92397cd4',1,'File']]], + ['fileattr',['fileAttr',['../class_fat_file.html#a28ebaf42f0173adeb9faa1884337c8f8',1,'FatFile']]], + ['filesize',['fileSize',['../class_fat_file.html#a874940574b9c99e763526465adf8dc28',1,'FatFile']]], ['fill',['fill',['../classios__base.html#ade5bd46462e075999c3a5c2cff2015f1',1,'ios_base::fill()'],['../classios__base.html#aa5683f9bdf295311bd5a6d3cdc2fedd5',1,'ios_base::fill(char c)']]], ['firstblock',['firstBlock',['../class_fat_file.html#ac87b753811e540c7b799da56fa89724b',1,'FatFile']]], - ['firstcluster',['firstCluster',['../class_fat_file.html#a1057bc23b92a074539f661e896e79a09',1,'FatFile']]], - ['flags',['flags',['../classios__base.html#ab5e9c7dbcbc33b7de9dcb70525ec7384',1,'ios_base::flags() const '],['../classios__base.html#ae67e900dc12e4c7cbc0741ad1c70d6c2',1,'ios_base::flags(fmtflags fl)']]], + ['firstcluster',['firstCluster',['../class_fat_file.html#ad6233a5122080219b6d8148b1bec4b6a',1,'FatFile']]], + ['flags',['flags',['../classios__base.html#a2a73a30a8b157cc1cc92bb55b0a62e4a',1,'ios_base::flags() const'],['../classios__base.html#ae67e900dc12e4c7cbc0741ad1c70d6c2',1,'ios_base::flags(fmtflags fl)']]], ['flush',['flush',['../class_minimum_serial.html#a872f0ff70f0e256352004f83d13fff28',1,'MinimumSerial::flush()'],['../class_print_file.html#a53c4cb94af030fdf83a9160ec9a96949',1,'PrintFile::flush()'],['../class_file.html#af87fa862de707575b8badd044a5af80e',1,'File::flush()'],['../classostream.html#af6be1f30d824f5a65d27d5b5d20b8c6c',1,'ostream::flush()'],['../iostream_8h.html#a2f6f5344fca38fd4fe7b6231fd992a0d',1,'flush(): iostream.h']]], ['fopen',['fopen',['../class_stdio_stream.html#a4ffc37225fb6deed98905aa71d1f9c4b',1,'StdioStream']]], ['fputc',['fputc',['../class_stdio_stream.html#a9f23cfa6b112a5da6ae08340af23c57b',1,'StdioStream']]], @@ -34,7 +34,7 @@ var searchData= ['fread',['fread',['../class_stdio_stream.html#a2d363b02abcef82b25ff025d50375bce',1,'StdioStream']]], ['freeclustercount',['freeClusterCount',['../class_fat_volume.html#a1683b063fc6202ab85470b9610f16f93',1,'FatVolume']]], ['freestack',['FreeStack',['../_free_stack_8h.html#a2c0121d5649d35329a8d0a71e4ffb89b',1,'FreeStack.h']]], - ['fsbegin',['fsBegin',['../class_sd_fat.html#add6a9a3ad07585f6e0e5c35e35cacb9a',1,'SdFat::fsBegin()'],['../class_sd_fat_sdio.html#aac0e8d86182a0e0566c4671c15f3df61',1,'SdFatSdio::fsBegin()']]], + ['fsbegin',['fsBegin',['../class_sd_fat.html#add6a9a3ad07585f6e0e5c35e35cacb9a',1,'SdFat::fsBegin()'],['../class_sd_fat_sdio.html#aac0e8d86182a0e0566c4671c15f3df61',1,'SdFatSdio::fsBegin()'],['../class_sd_fat_sdio_e_x.html#ae7c3cc13d2ec18ab14b4ff88348cc7a0',1,'SdFatSdioEX::fsBegin()']]], ['fseek',['fseek',['../class_stdio_stream.html#a71584fd5c5cda3c31ce6cdbcc56f104d',1,'StdioStream']]], ['fstream',['fstream',['../classfstream.html#aed23877c52f828cab8de7a23603b3b6c',1,'fstream']]], ['ftell',['ftell',['../class_stdio_stream.html#a809639fc5fb4fa5b6789dc121659f386',1,'StdioStream']]], diff --git a/extras/html/search/functions_6.html b/extras/html/search/functions_6.html index c980da25..6fd4b1f3 100644 --- a/extras/html/search/functions_6.html +++ b/extras/html/search/functions_6.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/functions_6.js b/extras/html/search/functions_6.js index 95565211..6e73c6e5 100644 --- a/extras/html/search/functions_6.js +++ b/extras/html/search/functions_6.js @@ -1,13 +1,13 @@ var searchData= [ - ['gcount',['gcount',['../classistream.html#ad2b705d2f363ed59db6ac4046f78b4bb',1,'istream']]], - ['get',['get',['../classistream.html#a36573c9b7fc522e6c85a73221019fd11',1,'istream::get()'],['../classistream.html#a9c7313d6f21f1f7ac9b0e759e74b4db2',1,'istream::get(char &ch)'],['../classistream.html#a4247f47e388598c69ef3bd39ea4c056f',1,'istream::get(char *str, streamsize n, char delim= '\n')']]], + ['gcount',['gcount',['../classistream.html#ad0a3db5199ca44b191a9675f2dd3a098',1,'istream']]], + ['get',['get',['../classistream.html#a36573c9b7fc522e6c85a73221019fd11',1,'istream::get()'],['../classistream.html#a9c7313d6f21f1f7ac9b0e759e74b4db2',1,'istream::get(char &ch)'],['../classistream.html#a2c963fd04375e5faa1b7a4362986269a',1,'istream::get(char *str, streamsize n, char delim='\n')']]], ['getc',['getc',['../class_stdio_stream.html#a28ba31e7b526607744bfa41844ffce31',1,'StdioStream']]], ['geterror',['getError',['../class_fat_file.html#ad0dbbd083180f44c7a3ce7124d4ce19c',1,'FatFile']]], - ['getline',['getline',['../classistream.html#a7d86035d178e526283e5c7555ab7b243',1,'istream']]], + ['getline',['getline',['../classistream.html#a7ea6a5edd6b44a6e1ed297fb278b5d52',1,'istream']]], ['getname',['getName',['../class_fat_file.html#aafa565e286440aab612cdb430fc01da5',1,'FatFile']]], ['getpos',['getpos',['../class_fat_file.html#aaa4f9886887947815a61eaf015996932',1,'FatFile']]], ['getsfn',['getSFN',['../class_fat_file.html#aba30e92a66f8e0d2f815c85662772a58',1,'FatFile']]], ['getwriteerror',['getWriteError',['../class_fat_file.html#a8062c0d3a118e8d77d0310418703d5f5',1,'FatFile']]], - ['good',['good',['../classios.html#a5fdf9247f642a7a5c5a21323ffd45366',1,'ios']]] + ['good',['good',['../classios.html#a0192d754476f243d7f13dc16e851c7cc',1,'ios']]] ]; diff --git a/extras/html/search/functions_7.html b/extras/html/search/functions_7.html index 38573293..6e09abf1 100644 --- a/extras/html/search/functions_7.html +++ b/extras/html/search/functions_7.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/functions_8.html b/extras/html/search/functions_8.html index 088e437f..d59ea971 100644 --- a/extras/html/search/functions_8.html +++ b/extras/html/search/functions_8.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/functions_8.js b/extras/html/search/functions_8.js index 9c9541dc..579e16e1 100644 --- a/extras/html/search/functions_8.js +++ b/extras/html/search/functions_8.js @@ -10,17 +10,18 @@ var searchData= ['invalidate',['invalidate',['../class_fat_cache.html#a70071a128d647b49b523dbb2f5f944a5',1,'FatCache']]], ['ios',['ios',['../classios.html#adc5dbd7b69da79493ebc84aa1e681aaa',1,'ios']]], ['is_5fopen',['is_open',['../classfstream.html#ae4a71c6f3da2f168ec222739d796fc8b',1,'fstream::is_open()'],['../classifstream.html#aaa16c6422ea371995d02159f2e6707b2',1,'ifstream::is_open()'],['../classofstream.html#a9c97eb2eb6e35ae87cf7f7453a67e70a',1,'ofstream::is_open()']]], - ['isbusy',['isBusy',['../class_sd_spi_card.html#aa3cb9139dbc1e6596c6717da2b486328',1,'SdSpiCard']]], - ['isdir',['isDir',['../class_fat_file.html#aef41d65e0f1ce753d18cc9ed691f7de4',1,'FatFile']]], + ['isbusy',['isBusy',['../class_sdio_card.html#a560bdfc96932d073c2b0610600560f78',1,'SdioCard::isBusy()'],['../class_sd_spi_card.html#aa3cb9139dbc1e6596c6717da2b486328',1,'SdSpiCard::isBusy()']]], + ['isdir',['isDir',['../class_fat_file.html#a933360b20b496421b2bd9ee7a95563a6',1,'FatFile']]], ['isdirectory',['isDirectory',['../class_file.html#a6ba5bdb943363cda56649238ccb18c27',1,'File']]], - ['isfile',['isFile',['../class_fat_file.html#afcf6270ea8d4a3a5f8e89523bc684e22',1,'FatFile']]], - ['ishidden',['isHidden',['../class_fat_file.html#a7eefe7408f34b6326f0c6e78af7eb05f',1,'FatFile']]], - ['islfn',['isLFN',['../class_fat_file.html#aed36d17f8fde597b6ed9446faec1f7e3',1,'FatFile']]], - ['isopen',['isOpen',['../class_fat_file.html#a4c8a07b081f04aa25839c6f56c739bdc',1,'FatFile']]], - ['isreadonly',['isReadOnly',['../class_fat_file.html#a6872d3acb1e70f81c9c2be2495977583',1,'FatFile']]], - ['isroot',['isRoot',['../class_fat_file.html#aa4a206803a4bf8243be20244c1aef4d2',1,'FatFile']]], - ['isroot32',['isRoot32',['../class_fat_file.html#a1449b294e3a838396c62e47674ca8cf0',1,'FatFile']]], - ['isrootfixed',['isRootFixed',['../class_fat_file.html#a8215bd4b21e11ec83fa88ef226ceb06f',1,'FatFile']]], - ['issubdir',['isSubDir',['../class_fat_file.html#a95b503b17442c2b364a2f53de1b2aeba',1,'FatFile']]], - ['issystem',['isSystem',['../class_fat_file.html#add932e13e5bf32ad467af6ec34824e3c',1,'FatFile']]] + ['isdirty',['isDirty',['../class_fat_cache.html#ae50287d95bd78558db1e4aa97d7b2c06',1,'FatCache']]], + ['isfile',['isFile',['../class_fat_file.html#acc5a87da1a5c8cb9758bfeaa7ae47b57',1,'FatFile']]], + ['ishidden',['isHidden',['../class_fat_file.html#ae216b4a2bc44a9cfb88478fa051a1fd8',1,'FatFile']]], + ['islfn',['isLFN',['../class_fat_file.html#af8f456ab790e818bfdd225cf6ffd40f3',1,'FatFile']]], + ['isopen',['isOpen',['../class_fat_file.html#a8b8a2850c086d3ce79bee64a23fbf7a6',1,'FatFile']]], + ['isreadonly',['isReadOnly',['../class_fat_file.html#abaf639ec8f86f34aeb7e6b3615526f0b',1,'FatFile']]], + ['isroot',['isRoot',['../class_fat_file.html#a03421a0c28649332f55e6ca06d3aeedb',1,'FatFile']]], + ['isroot32',['isRoot32',['../class_fat_file.html#a8fda8004720ec4cc55710869dbb52e35',1,'FatFile']]], + ['isrootfixed',['isRootFixed',['../class_fat_file.html#a0cc65089f7ce6c1ff92edbf0bff59dee',1,'FatFile']]], + ['issubdir',['isSubDir',['../class_fat_file.html#abfd02c5d26f7d4f8739a8610116a6660',1,'FatFile']]], + ['issystem',['isSystem',['../class_fat_file.html#a48087bdeb6b94fc27e0f74c3d90af5a9',1,'FatFile']]] ]; diff --git a/extras/html/search/functions_9.html b/extras/html/search/functions_9.html index 61de44ad..5ccec429 100644 --- a/extras/html/search/functions_9.html +++ b/extras/html/search/functions_9.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/functions_9.js b/extras/html/search/functions_9.js index 0f3e7bdb..a37596e4 100644 --- a/extras/html/search/functions_9.js +++ b/extras/html/search/functions_9.js @@ -1,8 +1,4 @@ var searchData= [ - ['lbn',['lbn',['../class_fat_cache.html#a9f981b53e212f79937e5f6381b169374',1,'FatCache']]], - ['left',['left',['../ios_8h.html#a24a80a73f0a0d2d72d1cb74f49ff4759',1,'ios.h']]], - ['legal83char',['legal83Char',['../class_fat_file.html#a94df8090f16e9666cdc53ca20f6aff90',1,'FatFile']]], - ['length',['length',['../classobufstream.html#ac650708e968b0c0545a3badeb809cf15',1,'obufstream']]], - ['ls',['ls',['../class_fat_file.html#ad49f688a494b351ccbb0102dcfafb925',1,'FatFile::ls(uint8_t flags=0)'],['../class_fat_file.html#acabf31ff85e696fbf384c49428012fea',1,'FatFile::ls(print_t *pr, uint8_t flags=0, uint8_t indent=0)'],['../class_fat_file_system.html#a2398fb37a7a9d5e0dc0ffde6a44a993d',1,'FatFileSystem::ls(uint8_t flags=0)'],['../class_fat_file_system.html#a122b61dbec5051304bcc81bc08b1b99d',1,'FatFileSystem::ls(const char *path, uint8_t flags=0)'],['../class_fat_file_system.html#ae12fb8bfad5c4a8e052dda70a5a0ed93',1,'FatFileSystem::ls(print_t *pr, uint8_t flags=0)'],['../class_fat_file_system.html#aa79695db8e910300507210b3067d39fd',1,'FatFileSystem::ls(print_t *pr, const char *path, uint8_t flags)']]] + ['khzsdclk',['kHzSdClk',['../class_sdio_card.html#a3532a1a4b8a43a51ed9b5853186203cb',1,'SdioCard']]] ]; diff --git a/extras/html/search/functions_a.html b/extras/html/search/functions_a.html index a46b662e..3958eb7b 100644 --- a/extras/html/search/functions_a.html +++ b/extras/html/search/functions_a.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/functions_a.js b/extras/html/search/functions_a.js index b9e2c887..0f3e7bdb 100644 --- a/extras/html/search/functions_a.js +++ b/extras/html/search/functions_a.js @@ -1,4 +1,8 @@ var searchData= [ - ['mkdir',['mkdir',['../class_fat_file.html#abab5b9f72cc796388dd4eed01d13d90d',1,'FatFile::mkdir()'],['../class_fat_file_system.html#a231c62c98ba8ac3c2624dc5ad2053ebf',1,'FatFileSystem::mkdir()']]] + ['lbn',['lbn',['../class_fat_cache.html#a9f981b53e212f79937e5f6381b169374',1,'FatCache']]], + ['left',['left',['../ios_8h.html#a24a80a73f0a0d2d72d1cb74f49ff4759',1,'ios.h']]], + ['legal83char',['legal83Char',['../class_fat_file.html#a94df8090f16e9666cdc53ca20f6aff90',1,'FatFile']]], + ['length',['length',['../classobufstream.html#ac650708e968b0c0545a3badeb809cf15',1,'obufstream']]], + ['ls',['ls',['../class_fat_file.html#ad49f688a494b351ccbb0102dcfafb925',1,'FatFile::ls(uint8_t flags=0)'],['../class_fat_file.html#acabf31ff85e696fbf384c49428012fea',1,'FatFile::ls(print_t *pr, uint8_t flags=0, uint8_t indent=0)'],['../class_fat_file_system.html#a2398fb37a7a9d5e0dc0ffde6a44a993d',1,'FatFileSystem::ls(uint8_t flags=0)'],['../class_fat_file_system.html#a122b61dbec5051304bcc81bc08b1b99d',1,'FatFileSystem::ls(const char *path, uint8_t flags=0)'],['../class_fat_file_system.html#ae12fb8bfad5c4a8e052dda70a5a0ed93',1,'FatFileSystem::ls(print_t *pr, uint8_t flags=0)'],['../class_fat_file_system.html#aa79695db8e910300507210b3067d39fd',1,'FatFileSystem::ls(print_t *pr, const char *path, uint8_t flags)']]] ]; diff --git a/extras/html/search/functions_b.html b/extras/html/search/functions_b.html index 3b49416d..b99b702d 100644 --- a/extras/html/search/functions_b.html +++ b/extras/html/search/functions_b.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/functions_b.js b/extras/html/search/functions_b.js index acaa5a8b..b9e2c887 100644 --- a/extras/html/search/functions_b.js +++ b/extras/html/search/functions_b.js @@ -1,10 +1,4 @@ var searchData= [ - ['name',['name',['../class_file.html#a7ca23d8d3997c10c221977c64736f575',1,'File']]], - ['noboolalpha',['noboolalpha',['../ios_8h.html#aa6a1ec04992fc8090ca775a39678be01',1,'ios.h']]], - ['noshowbase',['noshowbase',['../ios_8h.html#ab861ff5f863de0ae002b65390dde36b0',1,'ios.h']]], - ['noshowpoint',['noshowpoint',['../ios_8h.html#ad85399d1b75151cf9e2436f2a1ccfc13',1,'ios.h']]], - ['noshowpos',['noshowpos',['../ios_8h.html#a985805b22ffb4ce2f5298168662bd2d7',1,'ios.h']]], - ['noskipws',['noskipws',['../ios_8h.html#a773b847300db776fde08a0b562792131',1,'ios.h']]], - ['nouppercase',['nouppercase',['../ios_8h.html#a24b96fb317e056b34aa84c4bb965a79a',1,'ios.h']]] + ['mkdir',['mkdir',['../class_fat_file.html#abab5b9f72cc796388dd4eed01d13d90d',1,'FatFile::mkdir()'],['../class_fat_file_system.html#a231c62c98ba8ac3c2624dc5ad2053ebf',1,'FatFileSystem::mkdir()']]] ]; diff --git a/extras/html/search/functions_c.html b/extras/html/search/functions_c.html index 57c64555..3a33d874 100644 --- a/extras/html/search/functions_c.html +++ b/extras/html/search/functions_c.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/functions_c.js b/extras/html/search/functions_c.js index 616374f6..3652b234 100644 --- a/extras/html/search/functions_c.js +++ b/extras/html/search/functions_c.js @@ -1,15 +1,10 @@ var searchData= [ - ['obufstream',['obufstream',['../classobufstream.html#a74f7dbcf1131b77d3665aa85d6629722',1,'obufstream::obufstream()'],['../classobufstream.html#a7af0555c5c08ebf9cbc70fc5e2f67db7',1,'obufstream::obufstream(char *buf, size_t size)']]], - ['oct',['oct',['../ios_8h.html#ae661b435df22f8e8e643817f4f915123',1,'ios.h']]], - ['ofstream',['ofstream',['../classofstream.html#ae8a8145adf2cfe1f948ad482ed504b75',1,'ofstream']]], - ['open',['open',['../class_fat_file.html#a5f64576d3d19177ab3cf3812b69abdfa',1,'FatFile::open(FatFileSystem *fs, const char *path, uint8_t oflag)'],['../class_fat_file.html#ad3fa9daaccb4e4179fb88a8ca037aa80',1,'FatFile::open(FatFile *dirFile, uint16_t index, uint8_t oflag)'],['../class_fat_file.html#a211be757679b18708f6b6a36464e4f61',1,'FatFile::open(FatFile *dirFile, const char *path, uint8_t oflag)'],['../class_fat_file.html#ab0e7075062c89f356441f80fc64d03e6',1,'FatFile::open(const char *path, uint8_t oflag=O_READ)'],['../class_fat_file_system.html#a947e4586077a922892b632edac33b67a',1,'FatFileSystem::open(const char *path, uint8_t mode=FILE_READ)'],['../class_fat_file_system.html#a0abfb1f754a8fb559cfa884ee040f56f',1,'FatFileSystem::open(const String &path, uint8_t mode=FILE_READ)'],['../classfstream.html#a85b24d94552991f33caf4c3a83420879',1,'fstream::open()'],['../classifstream.html#a169694d6535fd551fd6db48a2867590e',1,'ifstream::open()'],['../classofstream.html#a4b9d30c742fbe01baa336406c7afdcb2',1,'ofstream::open()']]], - ['opennext',['openNext',['../class_fat_file.html#a8034c4649eb0d26715b1a8a69e73d9d0',1,'FatFile']]], - ['opennextfile',['openNextFile',['../class_file.html#acd72000ab1f6a1ce73ac8fbdc854ae0c',1,'File']]], - ['openroot',['openRoot',['../class_fat_file.html#a7e0c0548fed3a69e7284b91b694439d4',1,'FatFile']]], - ['operator_20bool',['operator bool',['../class_minimum_serial.html#a73a1a2a92604ecb8507afde0022aedd8',1,'MinimumSerial::operator bool()'],['../class_file.html#af171fbf441c899cf71d88b8b0b83d38b',1,'File::operator bool()']]], - ['operator_20const_20void_20_2a',['operator const void *',['../classios.html#a8c2e7e42e31d3d7898a51c0bc837b2a3',1,'ios']]], - ['operator_21',['operator!',['../classios.html#a1ae2d4f1ccdfcaaef6a3a8ac9e28c267',1,'ios']]], - ['operator_3c_3c',['operator<<',['../classostream.html#a4dfc0cdb38bced959ba7cf963db38c30',1,'ostream::operator<<(ostream &(*pf)(ostream &str))'],['../classostream.html#af52c607ea168aff1025222c62cad392f',1,'ostream::operator<<(ios_base &(*pf)(ios_base &str))'],['../classostream.html#a63e3999be154253cf92a45c22e548f51',1,'ostream::operator<<(bool arg)'],['../classostream.html#a618b5d6861dde2347847102b89e0ccfa',1,'ostream::operator<<(const char *arg)'],['../classostream.html#aebe24ff723b806cbee19deb2165d0a5b',1,'ostream::operator<<(const signed char *arg)'],['../classostream.html#ac0cf68ffa4706994f47acb1fa37c601a',1,'ostream::operator<<(const unsigned char *arg)'],['../classostream.html#a1d1e11d2fadaf4c9e34194a1f28572e4',1,'ostream::operator<<(char arg)'],['../classostream.html#ad06f8c6c47667e9c7b14620882c09434',1,'ostream::operator<<(signed char arg)'],['../classostream.html#a69912ec4a8536f289b716e95953d09d7',1,'ostream::operator<<(unsigned char arg)'],['../classostream.html#a8065697d56d5e5d1a0ca50c1916b4955',1,'ostream::operator<<(double arg)'],['../classostream.html#a6c68e418e19d9dcdfe6b1790b2621666',1,'ostream::operator<<(float arg)'],['../classostream.html#a227c47e2b631f29d8873b00290bb4872',1,'ostream::operator<<(short arg)'],['../classostream.html#ace10a3a767dc55faff2cec71cd0a89b1',1,'ostream::operator<<(unsigned short arg)'],['../classostream.html#a62488f7ce7822c777ea27d15223b8e5f',1,'ostream::operator<<(int arg)'],['../classostream.html#ad31df6cd88c7248c01808e40889a7907',1,'ostream::operator<<(unsigned int arg)'],['../classostream.html#a15db9977ed82e503bd3cd1f585acf9e6',1,'ostream::operator<<(long arg)'],['../classostream.html#aaedd44fefa48cf3f0967fcd699a2909d',1,'ostream::operator<<(unsigned long arg)'],['../classostream.html#a2a8febd7c07f078120dd69bb71f25a94',1,'ostream::operator<<(const void *arg)'],['../classostream.html#a99ee8d9265d9354f197d02a3d17116be',1,'ostream::operator<<(const __FlashStringHelper *arg)'],['../iostream_8h.html#aa125ac928f3377cbc6e3cf288b9378fd',1,'operator<<(ostream &os, const setfill &arg): iostream.h'],['../iostream_8h.html#a23d4c29ef8ae37ec7d972d0b66187652',1,'operator<<(ostream &os, const setprecision &arg): iostream.h'],['../iostream_8h.html#a331649f2fdb01ed069dc18a5fad781b1',1,'operator<<(ostream &os, const setw &arg): iostream.h']]], - ['operator_3e_3e',['operator>>',['../classistream.html#aa67d3b8ac67e2097d876a66657ec6067',1,'istream::operator>>(istream &(*pf)(istream &str))'],['../classistream.html#ac6e2f17c80edd19deecdc20f804c424e',1,'istream::operator>>(ios_base &(*pf)(ios_base &str))'],['../classistream.html#a5a0a2c0e06abadb79951ebe34f36d62a',1,'istream::operator>>(ios &(*pf)(ios &str))'],['../classistream.html#a99db66d2e192f02deff0171ad098271f',1,'istream::operator>>(char *str)'],['../classistream.html#addaf5e0f39a15cc213117165dfef0d77',1,'istream::operator>>(char &ch)'],['../classistream.html#a390af4d28adbdc537e436f2121d1c862',1,'istream::operator>>(signed char *str)'],['../classistream.html#a49ab1a573fbf69809d19a52855a30072',1,'istream::operator>>(signed char &ch)'],['../classistream.html#a52e85d01198968330f20026a52cb9f72',1,'istream::operator>>(unsigned char *str)'],['../classistream.html#a74875fcf9ccdc0dca4b46a0b66821798',1,'istream::operator>>(unsigned char &ch)'],['../classistream.html#a3708636d095d360695e9c23335639317',1,'istream::operator>>(bool &arg)'],['../classistream.html#a662060e885a0551c390b7042b3b9e4a5',1,'istream::operator>>(short &arg)'],['../classistream.html#a31a706a374c5a594e400734b8992e2a0',1,'istream::operator>>(unsigned short &arg)'],['../classistream.html#ae8451bc86d83828892d9d67c67b7f02b',1,'istream::operator>>(int &arg)'],['../classistream.html#a35c9847ebf7b822c5ec9742e9de19345',1,'istream::operator>>(unsigned int &arg)'],['../classistream.html#aa26e7f35e74d96803bb0dfb3fb0dc154',1,'istream::operator>>(long &arg)'],['../classistream.html#a5aafa4c7f6615a7f1441962b61b8ef59',1,'istream::operator>>(unsigned long &arg)'],['../classistream.html#af9bf453725ce1d9ef62142a7ee38936e',1,'istream::operator>>(double &arg)'],['../classistream.html#aa8efce6fecab80cf7a17d5dfa31f5aa8',1,'istream::operator>>(float &arg)'],['../classistream.html#a62ef4762feacc64a8acdcbf8f1296936',1,'istream::operator>>(void *&arg)'],['../iostream_8h.html#a4a4079de901e0f3f10c743115bd345b2',1,'operator>>(istream &obj, const setfill &arg): iostream.h'],['../iostream_8h.html#a2f819cd0ccda31a8b648f20534469308',1,'operator>>(istream &is, const setprecision &arg): iostream.h'],['../iostream_8h.html#a8d1b3da6f1074322a6e9e11ff4ce8c33',1,'operator>>(istream &is, const setw &arg): iostream.h']]] + ['name',['name',['../class_file.html#a3d7c8f86311b9aad2bcc43e677d927ed',1,'File']]], + ['noboolalpha',['noboolalpha',['../ios_8h.html#aa6a1ec04992fc8090ca775a39678be01',1,'ios.h']]], + ['noshowbase',['noshowbase',['../ios_8h.html#ab861ff5f863de0ae002b65390dde36b0',1,'ios.h']]], + ['noshowpoint',['noshowpoint',['../ios_8h.html#ad85399d1b75151cf9e2436f2a1ccfc13',1,'ios.h']]], + ['noshowpos',['noshowpos',['../ios_8h.html#a985805b22ffb4ce2f5298168662bd2d7',1,'ios.h']]], + ['noskipws',['noskipws',['../ios_8h.html#a773b847300db776fde08a0b562792131',1,'ios.h']]], + ['nouppercase',['nouppercase',['../ios_8h.html#a24b96fb317e056b34aa84c4bb965a79a',1,'ios.h']]] ]; diff --git a/extras/html/search/functions_d.html b/extras/html/search/functions_d.html index 58b3d31f..31b75b88 100644 --- a/extras/html/search/functions_d.html +++ b/extras/html/search/functions_d.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/functions_d.js b/extras/html/search/functions_d.js index 0ab9be29..211ffe05 100644 --- a/extras/html/search/functions_d.js +++ b/extras/html/search/functions_d.js @@ -1,23 +1,15 @@ var searchData= [ - ['peek',['peek',['../class_print_file.html#a3a2a66f4a0cb69ab4edc66d39997fda7',1,'PrintFile::peek()'],['../class_file.html#a0e5025f39bd584563bfe4b05fc1db268',1,'File::peek()'],['../class_fat_file.html#ac05b7136b887539426856c623869aa3a',1,'FatFile::peek()'],['../classistream.html#a4022265e0ede3698454f1ff59348c14a',1,'istream::peek()']]], - ['position',['position',['../class_file.html#aae991c597c0bc4c5eb44c1f3b06a21ec',1,'File']]], - ['precision',['precision',['../classios__base.html#a9d36cb5a859b74e04f640d2f5e53b41d',1,'ios_base::precision() const '],['../classios__base.html#a5b70cc65fc2c276136fea99bddedb6f0',1,'ios_base::precision(unsigned int n)']]], - ['print',['print',['../class_stdio_stream.html#ad3f6ee8e8ca5dcf6dabfd88199b172e2',1,'StdioStream::print(char c)'],['../class_stdio_stream.html#a1158ea5f9bf041f21b1733b7811c9bb9',1,'StdioStream::print(const char *str)'],['../class_stdio_stream.html#aac4d7b3548d03b8fd70adf12c7ee315c',1,'StdioStream::print(const __FlashStringHelper *str)'],['../class_stdio_stream.html#a26f5b98560b6771225005b073166108b',1,'StdioStream::print(double val, uint8_t prec=2)'],['../class_stdio_stream.html#a06b6eb9f0a7000fdcc73cd6af8d40560',1,'StdioStream::print(float val, uint8_t prec=2)'],['../class_stdio_stream.html#a7129f85c7c5f16867f467731ef84dee9',1,'StdioStream::print(T val)']]], - ['printcreatedatetime',['printCreateDateTime',['../class_fat_file.html#a558530f20314a8d8ee3d1a488fc7f46e',1,'FatFile']]], - ['printdec',['printDec',['../class_stdio_stream.html#ac0a907feb1e4b7e00de99857b4c0a470',1,'StdioStream::printDec(char n)'],['../class_stdio_stream.html#a2707ea97f6113c226781469f4f39ff62',1,'StdioStream::printDec(signed char n)'],['../class_stdio_stream.html#a6e6ac78caa6259a4c4934707bf497a2b',1,'StdioStream::printDec(unsigned char n)'],['../class_stdio_stream.html#a218af88db35f38babf01d6e0a9cdceeb',1,'StdioStream::printDec(int16_t n)'],['../class_stdio_stream.html#a90b2999af94a3578fff7579c2acf8e35',1,'StdioStream::printDec(uint16_t n)'],['../class_stdio_stream.html#ad4591f1234b57f63c1acf0f3392099ac',1,'StdioStream::printDec(int32_t n)'],['../class_stdio_stream.html#a8b6c2c80342abe45e6f564e9bd5bb7ea',1,'StdioStream::printDec(uint32_t n)'],['../class_stdio_stream.html#aaa8921947d4dbbae840d285cb633e8aa',1,'StdioStream::printDec(double value, uint8_t prec)'],['../class_stdio_stream.html#a6a09284b1c6d0769c27916a2e131e749',1,'StdioStream::printDec(float value, uint8_t prec)']]], - ['printfatdate',['printFatDate',['../class_fat_file.html#a8fdb038aafdf3a17ac80b53c063aa73b',1,'FatFile::printFatDate(uint16_t fatDate)'],['../class_fat_file.html#ada5364f66204b1a64afbf9d2e6cd2b0b',1,'FatFile::printFatDate(print_t *pr, uint16_t fatDate)']]], - ['printfattime',['printFatTime',['../class_fat_file.html#a7740731f08ef97de7dfbc9b075c4c7d1',1,'FatFile::printFatTime(uint16_t fatTime)'],['../class_fat_file.html#a4e7e56ba52ca17c602af1b85684b09a9',1,'FatFile::printFatTime(print_t *pr, uint16_t fatTime)']]], - ['printfield',['printField',['../class_fat_file.html#a7478cad0f9e5079311b9e1fa558016ff',1,'FatFile::printField(float value, char term, uint8_t prec=2)'],['../class_fat_file.html#abd3e1747511216462b3ef98167156cbb',1,'FatFile::printField(int16_t value, char term)'],['../class_fat_file.html#a9972c2419c293ef9c382bff666b9ae4d',1,'FatFile::printField(uint16_t value, char term)'],['../class_fat_file.html#a41b3b32dd8482429b74c7af3432d6cf8',1,'FatFile::printField(int32_t value, char term)'],['../class_fat_file.html#a097240f08baadeb1c64b63eab9afb088',1,'FatFile::printField(uint32_t value, char term)'],['../class_stdio_stream.html#a4988592ada39c4b4c603b061f84d183f',1,'StdioStream::printField(double value, char term, uint8_t prec=2)'],['../class_stdio_stream.html#a3b90b2317cc391f94784a847f5313c08',1,'StdioStream::printField(float value, char term, uint8_t prec=2)'],['../class_stdio_stream.html#a02c2ad1a2e71e82d238b8386cf3e6c41',1,'StdioStream::printField(T value, char term)']]], - ['printfile',['PrintFile',['../class_print_file.html#adc3bcb2a5c4207de7ff7e9be3ac54233',1,'PrintFile']]], - ['printfilesize',['printFileSize',['../class_fat_file.html#a12a5d2de2737c201aa39ca1bd2ab9c47',1,'FatFile']]], - ['printhex',['printHex',['../class_stdio_stream.html#add39b2b4ec3daa7c8922e96ce5d368bc',1,'StdioStream']]], - ['printhexln',['printHexln',['../class_stdio_stream.html#aec6ebea511489b0ef6b61d9132d93af9',1,'StdioStream']]], - ['println',['println',['../class_stdio_stream.html#ad0cd3acc05a91456f505752377bd405a',1,'StdioStream::println()'],['../class_stdio_stream.html#a3793dd66cf347a1ca0b7b167e948cce9',1,'StdioStream::println(double val, uint8_t prec=2)'],['../class_stdio_stream.html#aac250d041a7844c8db1cbd2d97ecfdaa',1,'StdioStream::println(float val, uint8_t prec=2)'],['../class_stdio_stream.html#a3b14532768d07e6ed89c762d04792c12',1,'StdioStream::println(T val)']]], - ['printmodifydatetime',['printModifyDateTime',['../class_fat_file.html#a05cee5df46a370bf916d3ba597c82e39',1,'FatFile']]], - ['printname',['printName',['../class_fat_file.html#ad1cbc3aeb0f5193b7a26595966da9621',1,'FatFile::printName()'],['../class_fat_file.html#afe18a787fb8640e2d2483370c770f82f',1,'FatFile::printName(print_t *pr)']]], - ['printsfn',['printSFN',['../class_fat_file.html#a791cd7aade71f609aab62ec018aea3c0',1,'FatFile']]], - ['put',['put',['../classostream.html#a11aad8a1efd284ccfa91cbfb78d089bd',1,'ostream']]], - ['putc',['putc',['../class_stdio_stream.html#adf9e552212aad6fc2284da0ee62d04dc',1,'StdioStream']]], - ['putcrlf',['putCRLF',['../class_stdio_stream.html#a09ccc4b6cabc3502c1052e85d94e84ef',1,'StdioStream']]] + ['obufstream',['obufstream',['../classobufstream.html#a74f7dbcf1131b77d3665aa85d6629722',1,'obufstream::obufstream()'],['../classobufstream.html#a7af0555c5c08ebf9cbc70fc5e2f67db7',1,'obufstream::obufstream(char *buf, size_t size)']]], + ['oct',['oct',['../ios_8h.html#ae661b435df22f8e8e643817f4f915123',1,'ios.h']]], + ['ofstream',['ofstream',['../classofstream.html#ae8a8145adf2cfe1f948ad482ed504b75',1,'ofstream']]], + ['open',['open',['../class_fat_file.html#a3567b0760afe1250334b6c85c2ad5869',1,'FatFile::open(FatFileSystem *fs, const char *path, oflag_t oflag)'],['../class_fat_file.html#ab44920bb9cd5414b8e69c9dc4343394a',1,'FatFile::open(FatFile *dirFile, uint16_t index, oflag_t oflag)'],['../class_fat_file.html#a58d6ea245f1bc3ae7a6df311cd25052f',1,'FatFile::open(FatFile *dirFile, const char *path, oflag_t oflag)'],['../class_fat_file.html#a2da94d4556eebd807669e0514433fffa',1,'FatFile::open(const char *path, oflag_t oflag=O_RDONLY)'],['../class_fat_file_system.html#a1590dbde58cf1622a18d1350058a6e18',1,'FatFileSystem::open(const char *path, oflag_t oflag=FILE_READ)'],['../class_fat_file_system.html#a7c44842544967e0083bec1a6089e5061',1,'FatFileSystem::open(const String &path, oflag_t oflag=FILE_READ)'],['../classfstream.html#a85b24d94552991f33caf4c3a83420879',1,'fstream::open()'],['../classifstream.html#a169694d6535fd551fd6db48a2867590e',1,'ifstream::open()'],['../classofstream.html#a4b9d30c742fbe01baa336406c7afdcb2',1,'ofstream::open()']]], + ['opennext',['openNext',['../class_fat_file.html#acda9b1bf547d43e183e657bee053a48d',1,'FatFile']]], + ['opennextfile',['openNextFile',['../class_file.html#a49946976035a0811200dc92d5843b8dc',1,'File']]], + ['openroot',['openRoot',['../class_fat_file.html#a7e0c0548fed3a69e7284b91b694439d4',1,'FatFile']]], + ['operator_20bool',['operator bool',['../class_minimum_serial.html#a73a1a2a92604ecb8507afde0022aedd8',1,'MinimumSerial::operator bool()'],['../class_file.html#af171fbf441c899cf71d88b8b0b83d38b',1,'File::operator bool()']]], + ['operator_20const_20void_20_2a',['operator const void *',['../classios.html#aa919219fd2fa41d49c8573b36bb04418',1,'ios']]], + ['operator_21',['operator!',['../classios.html#aea64e05b9aa58bd75ca636692f881fb6',1,'ios']]], + ['operator_3c_3c',['operator<<',['../classostream.html#a4dfc0cdb38bced959ba7cf963db38c30',1,'ostream::operator<<(ostream &(*pf)(ostream &str))'],['../classostream.html#af52c607ea168aff1025222c62cad392f',1,'ostream::operator<<(ios_base &(*pf)(ios_base &str))'],['../classostream.html#a63e3999be154253cf92a45c22e548f51',1,'ostream::operator<<(bool arg)'],['../classostream.html#a618b5d6861dde2347847102b89e0ccfa',1,'ostream::operator<<(const char *arg)'],['../classostream.html#aebe24ff723b806cbee19deb2165d0a5b',1,'ostream::operator<<(const signed char *arg)'],['../classostream.html#ac0cf68ffa4706994f47acb1fa37c601a',1,'ostream::operator<<(const unsigned char *arg)'],['../classostream.html#a1d1e11d2fadaf4c9e34194a1f28572e4',1,'ostream::operator<<(char arg)'],['../classostream.html#ad06f8c6c47667e9c7b14620882c09434',1,'ostream::operator<<(signed char arg)'],['../classostream.html#a69912ec4a8536f289b716e95953d09d7',1,'ostream::operator<<(unsigned char arg)'],['../classostream.html#a8065697d56d5e5d1a0ca50c1916b4955',1,'ostream::operator<<(double arg)'],['../classostream.html#a6c68e418e19d9dcdfe6b1790b2621666',1,'ostream::operator<<(float arg)'],['../classostream.html#a227c47e2b631f29d8873b00290bb4872',1,'ostream::operator<<(short arg)'],['../classostream.html#ace10a3a767dc55faff2cec71cd0a89b1',1,'ostream::operator<<(unsigned short arg)'],['../classostream.html#a62488f7ce7822c777ea27d15223b8e5f',1,'ostream::operator<<(int arg)'],['../classostream.html#ad31df6cd88c7248c01808e40889a7907',1,'ostream::operator<<(unsigned int arg)'],['../classostream.html#a15db9977ed82e503bd3cd1f585acf9e6',1,'ostream::operator<<(long arg)'],['../classostream.html#aaedd44fefa48cf3f0967fcd699a2909d',1,'ostream::operator<<(unsigned long arg)'],['../classostream.html#a2a8febd7c07f078120dd69bb71f25a94',1,'ostream::operator<<(const void *arg)'],['../classostream.html#a99ee8d9265d9354f197d02a3d17116be',1,'ostream::operator<<(const __FlashStringHelper *arg)'],['../iostream_8h.html#aa125ac928f3377cbc6e3cf288b9378fd',1,'operator<<(ostream &os, const setfill &arg): iostream.h'],['../iostream_8h.html#a23d4c29ef8ae37ec7d972d0b66187652',1,'operator<<(ostream &os, const setprecision &arg): iostream.h'],['../iostream_8h.html#a331649f2fdb01ed069dc18a5fad781b1',1,'operator<<(ostream &os, const setw &arg): iostream.h']]], + ['operator_3e_3e',['operator>>',['../classistream.html#aa67d3b8ac67e2097d876a66657ec6067',1,'istream::operator>>(istream &(*pf)(istream &str))'],['../classistream.html#ac6e2f17c80edd19deecdc20f804c424e',1,'istream::operator>>(ios_base &(*pf)(ios_base &str))'],['../classistream.html#a5a0a2c0e06abadb79951ebe34f36d62a',1,'istream::operator>>(ios &(*pf)(ios &str))'],['../classistream.html#a99db66d2e192f02deff0171ad098271f',1,'istream::operator>>(char *str)'],['../classistream.html#addaf5e0f39a15cc213117165dfef0d77',1,'istream::operator>>(char &ch)'],['../classistream.html#a390af4d28adbdc537e436f2121d1c862',1,'istream::operator>>(signed char *str)'],['../classistream.html#a49ab1a573fbf69809d19a52855a30072',1,'istream::operator>>(signed char &ch)'],['../classistream.html#a52e85d01198968330f20026a52cb9f72',1,'istream::operator>>(unsigned char *str)'],['../classistream.html#a74875fcf9ccdc0dca4b46a0b66821798',1,'istream::operator>>(unsigned char &ch)'],['../classistream.html#a3708636d095d360695e9c23335639317',1,'istream::operator>>(bool &arg)'],['../classistream.html#a662060e885a0551c390b7042b3b9e4a5',1,'istream::operator>>(short &arg)'],['../classistream.html#a31a706a374c5a594e400734b8992e2a0',1,'istream::operator>>(unsigned short &arg)'],['../classistream.html#ae8451bc86d83828892d9d67c67b7f02b',1,'istream::operator>>(int &arg)'],['../classistream.html#a35c9847ebf7b822c5ec9742e9de19345',1,'istream::operator>>(unsigned int &arg)'],['../classistream.html#aa26e7f35e74d96803bb0dfb3fb0dc154',1,'istream::operator>>(long &arg)'],['../classistream.html#a5aafa4c7f6615a7f1441962b61b8ef59',1,'istream::operator>>(unsigned long &arg)'],['../classistream.html#af9bf453725ce1d9ef62142a7ee38936e',1,'istream::operator>>(double &arg)'],['../classistream.html#aa8efce6fecab80cf7a17d5dfa31f5aa8',1,'istream::operator>>(float &arg)'],['../classistream.html#a62ef4762feacc64a8acdcbf8f1296936',1,'istream::operator>>(void *&arg)'],['../iostream_8h.html#a4a4079de901e0f3f10c743115bd345b2',1,'operator>>(istream &obj, const setfill &arg): iostream.h'],['../iostream_8h.html#a2f819cd0ccda31a8b648f20534469308',1,'operator>>(istream &is, const setprecision &arg): iostream.h'],['../iostream_8h.html#a8d1b3da6f1074322a6e9e11ff4ce8c33',1,'operator>>(istream &is, const setw &arg): iostream.h']]] ]; diff --git a/extras/html/search/functions_e.html b/extras/html/search/functions_e.html index b44e5c5f..cddb9bb5 100644 --- a/extras/html/search/functions_e.html +++ b/extras/html/search/functions_e.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/functions_e.js b/extras/html/search/functions_e.js index cf628ae6..759641db 100644 --- a/extras/html/search/functions_e.js +++ b/extras/html/search/functions_e.js @@ -1,25 +1,23 @@ var searchData= [ - ['rdstate',['rdstate',['../classios.html#aacc57e1e46e23f2f54898ff6a89129a2',1,'ios']]], - ['read',['read',['../class_minimum_serial.html#a4890dd60f2ffb61eba0821cc80d411ad',1,'MinimumSerial::read()'],['../class_file.html#a4c46a1975e66c37977bf07c58ec10b4e',1,'File::read()'],['../class_fat_file.html#a60ae55ff6fe158c2340071d702a363c5',1,'FatFile::read()'],['../class_fat_file.html#a200e6e0553d5b709520c9dfac9ef77dd',1,'FatFile::read(void *buf, size_t nbyte)'],['../class_fat_cache.html#ac2bb0b8f2ce3ab5cd86cf30b4a663cea',1,'FatCache::read()']]], - ['readblock',['readBlock',['../class_base_block_driver.html#a16bb3305f3130253dd7ab6e19aa1b524',1,'BaseBlockDriver::readBlock()'],['../class_sdio_card.html#ac94605c428fa9258106835cceec470d8',1,'SdioCard::readBlock()'],['../class_sd_spi_card.html#a4393634a82c6683ee94d1fefe0be332a',1,'SdSpiCard::readBlock()'],['../class_sd_spi_card_e_x.html#abb69c8bd538dafed1e7f33382ee48d61',1,'SdSpiCardEX::readBlock()']]], - ['readblocks',['readBlocks',['../class_base_block_driver.html#a3a029a2d02fc7cbdd7c15c8d622565c4',1,'BaseBlockDriver::readBlocks()'],['../class_sdio_card.html#a7de36d26a01dc39b7dc122c54ee03b12',1,'SdioCard::readBlocks()'],['../class_sd_spi_card.html#ac630f77c3137923b47c1bd12a9bbfadf',1,'SdSpiCard::readBlocks()'],['../class_sd_spi_card_e_x.html#a9e158cda94fadd12267fe7e63d06622a',1,'SdSpiCardEX::readBlocks()']]], - ['readcid',['readCID',['../class_sdio_card.html#add77777fbcf91cc41e8ec62fda169e79',1,'SdioCard::readCID()'],['../class_sd_spi_card.html#aa073dc42828164883db1b9faeff909ea',1,'SdSpiCard::readCID()']]], - ['readcsd',['readCSD',['../class_sdio_card.html#a1da0ca418c153e24b4e13b4c1e20d450',1,'SdioCard::readCSD()'],['../class_sd_spi_card.html#a9fbea9525e70f6e3602fe5153a5a1290',1,'SdSpiCard::readCSD()']]], - ['readdata',['readData',['../class_sd_spi_card.html#a3a1d1b4b4ceb42fcd41aaf6649482770',1,'SdSpiCard']]], - ['readdir',['readDir',['../class_fat_file.html#a1325afe074c3efecff666678cd9f116a',1,'FatFile']]], - ['readline',['readline',['../class_arduino_in_stream.html#ad4c60f813b8df6dd1d6696a3458de09c',1,'ArduinoInStream']]], - ['readocr',['readOCR',['../class_sdio_card.html#adc583f7a27f57ce55ce474b1379b9303',1,'SdioCard::readOCR()'],['../class_sd_spi_card.html#ab446e49338b3ce834a750ac6dae35f61',1,'SdSpiCard::readOCR()']]], - ['readstart',['readStart',['../class_sd_spi_card.html#a3b1710d11496c32ba4323831e00ac6d1',1,'SdSpiCard']]], - ['readstatus',['readStatus',['../class_sd_spi_card.html#a91d0413599efe0d63c8c2dfe4a12d9ae',1,'SdSpiCard']]], - ['readstop',['readStop',['../class_sd_spi_card.html#afdac7c399fa1ba3f904cf503526e007e',1,'SdSpiCard']]], - ['remove',['remove',['../class_fat_file.html#ac837a537fbcca14c7aa390c5fc9f4e7c',1,'FatFile::remove()'],['../class_fat_file.html#afe820bbb056863e91ec482961c8dc695',1,'FatFile::remove(FatFile *dirFile, const char *path)'],['../class_fat_file_system.html#abf7d7d0dab43083d5be10d70ff4669e4',1,'FatFileSystem::remove()']]], - ['rename',['rename',['../class_fat_file.html#a4b42f2454ff462555c07ea094a92a1e0',1,'FatFile::rename()'],['../class_fat_file_system.html#a0187891a24017b41bd7c5ba63e659e65',1,'FatFileSystem::rename()']]], - ['rewind',['rewind',['../class_fat_file.html#a5aac6e0b3cb08fc8b8668e916a8b0ca5',1,'FatFile::rewind()'],['../class_stdio_stream.html#ad985866675193d2ee1dde9e27b0d08da',1,'StdioStream::rewind()']]], - ['rewinddirectory',['rewindDirectory',['../class_file.html#ae1419603dea25a6c8480b941d7ac63a3',1,'File']]], - ['right',['right',['../ios_8h.html#aee80fd600c5c58a2bebbd48afdcf8280',1,'ios.h']]], - ['rmdir',['rmdir',['../class_fat_file.html#a9515bac181d33e7f0125e88fa2ccd283',1,'FatFile::rmdir()'],['../class_fat_file_system.html#aaed2edc7ff7fedb163458c870bb41b33',1,'FatFileSystem::rmdir()']]], - ['rmrfstar',['rmRfStar',['../class_fat_file.html#ac780a80526f86d3def701ecdc99d8bfe',1,'FatFile']]], - ['rootdirentrycount',['rootDirEntryCount',['../class_fat_volume.html#ab2d483670a0a6a6a4754b23614fe11bc',1,'FatVolume']]], - ['rootdirstart',['rootDirStart',['../class_fat_volume.html#ae9363ebbbae90e895ea56e8fa3f60c13',1,'FatVolume']]] + ['peek',['peek',['../class_print_file.html#a3a2a66f4a0cb69ab4edc66d39997fda7',1,'PrintFile::peek()'],['../class_file.html#a0e5025f39bd584563bfe4b05fc1db268',1,'File::peek()'],['../class_fat_file.html#ac05b7136b887539426856c623869aa3a',1,'FatFile::peek()'],['../classistream.html#a4022265e0ede3698454f1ff59348c14a',1,'istream::peek()']]], + ['position',['position',['../class_file.html#aae991c597c0bc4c5eb44c1f3b06a21ec',1,'File']]], + ['precision',['precision',['../classios__base.html#aba92f0687644fc14f202958635ce276f',1,'ios_base::precision() const'],['../classios__base.html#a5b70cc65fc2c276136fea99bddedb6f0',1,'ios_base::precision(unsigned int n)']]], + ['print',['print',['../class_stdio_stream.html#ad3f6ee8e8ca5dcf6dabfd88199b172e2',1,'StdioStream::print(char c)'],['../class_stdio_stream.html#a1158ea5f9bf041f21b1733b7811c9bb9',1,'StdioStream::print(const char *str)'],['../class_stdio_stream.html#aac4d7b3548d03b8fd70adf12c7ee315c',1,'StdioStream::print(const __FlashStringHelper *str)'],['../class_stdio_stream.html#a26f5b98560b6771225005b073166108b',1,'StdioStream::print(double val, uint8_t prec=2)'],['../class_stdio_stream.html#a06b6eb9f0a7000fdcc73cd6af8d40560',1,'StdioStream::print(float val, uint8_t prec=2)'],['../class_stdio_stream.html#a7129f85c7c5f16867f467731ef84dee9',1,'StdioStream::print(T val)']]], + ['printcreatedatetime',['printCreateDateTime',['../class_fat_file.html#a558530f20314a8d8ee3d1a488fc7f46e',1,'FatFile']]], + ['printdec',['printDec',['../class_stdio_stream.html#ac0a907feb1e4b7e00de99857b4c0a470',1,'StdioStream::printDec(char n)'],['../class_stdio_stream.html#a2707ea97f6113c226781469f4f39ff62',1,'StdioStream::printDec(signed char n)'],['../class_stdio_stream.html#a6e6ac78caa6259a4c4934707bf497a2b',1,'StdioStream::printDec(unsigned char n)'],['../class_stdio_stream.html#a218af88db35f38babf01d6e0a9cdceeb',1,'StdioStream::printDec(int16_t n)'],['../class_stdio_stream.html#a90b2999af94a3578fff7579c2acf8e35',1,'StdioStream::printDec(uint16_t n)'],['../class_stdio_stream.html#ad4591f1234b57f63c1acf0f3392099ac',1,'StdioStream::printDec(int32_t n)'],['../class_stdio_stream.html#a8b6c2c80342abe45e6f564e9bd5bb7ea',1,'StdioStream::printDec(uint32_t n)'],['../class_stdio_stream.html#aaa8921947d4dbbae840d285cb633e8aa',1,'StdioStream::printDec(double value, uint8_t prec)'],['../class_stdio_stream.html#a6a09284b1c6d0769c27916a2e131e749',1,'StdioStream::printDec(float value, uint8_t prec)']]], + ['printfatdate',['printFatDate',['../class_fat_file.html#a8fdb038aafdf3a17ac80b53c063aa73b',1,'FatFile::printFatDate(uint16_t fatDate)'],['../class_fat_file.html#ada5364f66204b1a64afbf9d2e6cd2b0b',1,'FatFile::printFatDate(print_t *pr, uint16_t fatDate)']]], + ['printfattime',['printFatTime',['../class_fat_file.html#a7740731f08ef97de7dfbc9b075c4c7d1',1,'FatFile::printFatTime(uint16_t fatTime)'],['../class_fat_file.html#a4e7e56ba52ca17c602af1b85684b09a9',1,'FatFile::printFatTime(print_t *pr, uint16_t fatTime)']]], + ['printfield',['printField',['../class_fat_file.html#a7478cad0f9e5079311b9e1fa558016ff',1,'FatFile::printField(float value, char term, uint8_t prec=2)'],['../class_fat_file.html#abd3e1747511216462b3ef98167156cbb',1,'FatFile::printField(int16_t value, char term)'],['../class_fat_file.html#a9972c2419c293ef9c382bff666b9ae4d',1,'FatFile::printField(uint16_t value, char term)'],['../class_fat_file.html#a41b3b32dd8482429b74c7af3432d6cf8',1,'FatFile::printField(int32_t value, char term)'],['../class_fat_file.html#a097240f08baadeb1c64b63eab9afb088',1,'FatFile::printField(uint32_t value, char term)'],['../class_stdio_stream.html#a4988592ada39c4b4c603b061f84d183f',1,'StdioStream::printField(double value, char term, uint8_t prec=2)'],['../class_stdio_stream.html#a3b90b2317cc391f94784a847f5313c08',1,'StdioStream::printField(float value, char term, uint8_t prec=2)'],['../class_stdio_stream.html#a02c2ad1a2e71e82d238b8386cf3e6c41',1,'StdioStream::printField(T value, char term)']]], + ['printfile',['PrintFile',['../class_print_file.html#a537ea4364a7958550acf2c8ddb8791ec',1,'PrintFile']]], + ['printfilesize',['printFileSize',['../class_fat_file.html#a12a5d2de2737c201aa39ca1bd2ab9c47',1,'FatFile']]], + ['printhex',['printHex',['../class_stdio_stream.html#add39b2b4ec3daa7c8922e96ce5d368bc',1,'StdioStream']]], + ['printhexln',['printHexln',['../class_stdio_stream.html#aec6ebea511489b0ef6b61d9132d93af9',1,'StdioStream']]], + ['println',['println',['../class_stdio_stream.html#ad0cd3acc05a91456f505752377bd405a',1,'StdioStream::println()'],['../class_stdio_stream.html#a3793dd66cf347a1ca0b7b167e948cce9',1,'StdioStream::println(double val, uint8_t prec=2)'],['../class_stdio_stream.html#aac250d041a7844c8db1cbd2d97ecfdaa',1,'StdioStream::println(float val, uint8_t prec=2)'],['../class_stdio_stream.html#a3b14532768d07e6ed89c762d04792c12',1,'StdioStream::println(T val)']]], + ['printmodifydatetime',['printModifyDateTime',['../class_fat_file.html#a05cee5df46a370bf916d3ba597c82e39',1,'FatFile']]], + ['printname',['printName',['../class_fat_file.html#ad1cbc3aeb0f5193b7a26595966da9621',1,'FatFile::printName()'],['../class_fat_file.html#afe18a787fb8640e2d2483370c770f82f',1,'FatFile::printName(print_t *pr)']]], + ['printsfn',['printSFN',['../class_fat_file.html#a791cd7aade71f609aab62ec018aea3c0',1,'FatFile']]], + ['put',['put',['../classostream.html#a11aad8a1efd284ccfa91cbfb78d089bd',1,'ostream']]], + ['putc',['putc',['../class_stdio_stream.html#adf9e552212aad6fc2284da0ee62d04dc',1,'StdioStream']]], + ['putcrlf',['putCRLF',['../class_stdio_stream.html#a09ccc4b6cabc3502c1052e85d94e84ef',1,'StdioStream']]] ]; diff --git a/extras/html/search/functions_f.html b/extras/html/search/functions_f.html index db9a07c0..49672926 100644 --- a/extras/html/search/functions_f.html +++ b/extras/html/search/functions_f.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/functions_f.js b/extras/html/search/functions_f.js index 858c87a6..7511368a 100644 --- a/extras/html/search/functions_f.js +++ b/extras/html/search/functions_f.js @@ -1,32 +1,25 @@ var searchData= [ - ['sdbasefile',['SdBaseFile',['../class_sd_base_file.html#a94d44fc448dc8a06867d490100a57781',1,'SdBaseFile']]], - ['sdfat',['SdFat',['../class_sd_fat.html#a232871b6bbd0f40d6a2883b3c7b0425f',1,'SdFat']]], - ['sdfatex',['SdFatEX',['../class_sd_fat_e_x.html#a86b1fdf8b81dff2fced176d39b851474',1,'SdFatEX']]], - ['sdfile',['SdFile',['../class_sd_file.html#aca7da9858a5e53e10f3c2fa9aeca8485',1,'SdFile']]], - ['sdspicard',['SdSpiCard',['../class_sd_spi_card.html#a0441c5da53bd3bd72fb833fc940f25e8',1,'SdSpiCard']]], - ['seek',['seek',['../class_file.html#a2d41ea52356b769e05e1242685758c08',1,'File']]], - ['seekcur',['seekCur',['../class_fat_file.html#a5812037ea30777cc350698ad26f2c73f',1,'FatFile']]], - ['seekend',['seekEnd',['../class_fat_file.html#a84f677f4e75ef6fa2eb632f4cdf6b486',1,'FatFile']]], - ['seekg',['seekg',['../classistream.html#a52d637b1aeca9946085a4a72e0208aec',1,'istream::seekg(pos_type pos)'],['../classistream.html#a60dd48a3b374fb9cbdc59e1f930dea95',1,'istream::seekg(off_type off, seekdir way)']]], - ['seekp',['seekp',['../classostream.html#a18b453d2770a8852c312cbda919c4687',1,'ostream::seekp(pos_type pos)'],['../classostream.html#af6265a5be29237517b30673667ba4213',1,'ostream::seekp(off_type off, seekdir way)']]], - ['seekset',['seekSet',['../class_fat_file.html#ab067190d25733ed7e697d9890f61fd7a',1,'FatFile']]], - ['setcwd',['setCwd',['../class_fat_file.html#a360ef9c05e677271bed6c0a4d663634c',1,'FatFile']]], - ['setf',['setf',['../classios__base.html#ab5db835cb45bba7684ebf72d9a3cccb4',1,'ios_base::setf(fmtflags fl)'],['../classios__base.html#a74dbc93607ab7d68a87ec326b92b6c81',1,'ios_base::setf(fmtflags fl, fmtflags mask)']]], - ['setfill',['setfill',['../structsetfill.html#abcd87f0632678d277df55406d25c8325',1,'setfill']]], - ['setpos',['setpos',['../class_fat_file.html#acf264de4e3ca36c5e8a39e56173c9044',1,'FatFile']]], - ['setprecision',['setprecision',['../structsetprecision.html#a73fce143591989f56ef887a2ea86ac45',1,'setprecision']]], - ['setstate',['setstate',['../classios.html#aee5d194656bdfb0c8621b23ea2f51afb',1,'ios']]], - ['setw',['setw',['../structsetw.html#afd8bfd075474f63df3c8b44ad47517d2',1,'setw']]], - ['showbase',['showbase',['../ios_8h.html#a73159e1398939807aeae6015dd86f2f4',1,'ios.h']]], - ['showpoint',['showpoint',['../ios_8h.html#a322f5897ace09768cd782f0c8f222770',1,'ios.h']]], - ['showpos',['showpos',['../ios_8h.html#a80798554dbfece679adb0e05eb855943',1,'ios.h']]], - ['size',['size',['../class_file.html#a603d3cd3319142d00a7ebd434970b017',1,'File']]], - ['skipwhite',['skipWhite',['../classistream.html#a0f7468be86d93de5d33fa99095898279',1,'istream']]], - ['skipws',['skipws',['../ios_8h.html#a972282e5d9d894f61c8a54423858c0a4',1,'ios.h']]], - ['spistart',['spiStart',['../class_sd_spi_card.html#aa39feb6ebb269071ac6843a424ac311c',1,'SdSpiCard']]], - ['spistop',['spiStop',['../class_sd_spi_card.html#a1033a4a68d38f52dddf6a1764fcca3e1',1,'SdSpiCard']]], - ['stdiostream',['StdioStream',['../class_stdio_stream.html#a96b2c027e76bfca6d6835c9ae1be2ad2',1,'StdioStream']]], - ['sync',['sync',['../class_fat_file.html#a67f3dc4896c542d695e11aac927f585e',1,'FatFile::sync()'],['../class_fat_cache.html#a4d76d4f46ce5994f6fc4678a7b4f8cf1',1,'FatCache::sync()']]], - ['syncblocks',['syncBlocks',['../class_base_block_driver.html#a5361ff2658d7654bf00b97c54c6aa2aa',1,'BaseBlockDriver::syncBlocks()'],['../class_sdio_card.html#affcd36a5c3a42042fe24716671f06632',1,'SdioCard::syncBlocks()'],['../class_sd_spi_card.html#a1b6d5f412c4ad75c2f575ca75c56c095',1,'SdSpiCard::syncBlocks()'],['../class_sd_spi_card_e_x.html#af4a7c15bae6add50d66d066c0927a021',1,'SdSpiCardEX::syncBlocks()']]] + ['rdstate',['rdstate',['../classios.html#afe4d084ba0d2704a27525147d1463c36',1,'ios']]], + ['read',['read',['../class_minimum_serial.html#a4890dd60f2ffb61eba0821cc80d411ad',1,'MinimumSerial::read()'],['../class_file.html#a4c46a1975e66c37977bf07c58ec10b4e',1,'File::read()'],['../class_fat_file.html#a60ae55ff6fe158c2340071d702a363c5',1,'FatFile::read()'],['../class_fat_file.html#a200e6e0553d5b709520c9dfac9ef77dd',1,'FatFile::read(void *buf, size_t nbyte)'],['../class_fat_cache.html#ac2bb0b8f2ce3ab5cd86cf30b4a663cea',1,'FatCache::read()']]], + ['readblock',['readBlock',['../class_base_block_driver.html#a16bb3305f3130253dd7ab6e19aa1b524',1,'BaseBlockDriver::readBlock()'],['../class_sdio_card.html#ac94605c428fa9258106835cceec470d8',1,'SdioCard::readBlock()'],['../class_sdio_card_e_x.html#a49609f0409ef01284bc83b10a8ec5efe',1,'SdioCardEX::readBlock()'],['../class_sd_spi_card.html#a4393634a82c6683ee94d1fefe0be332a',1,'SdSpiCard::readBlock()'],['../class_sd_spi_card_e_x.html#abb69c8bd538dafed1e7f33382ee48d61',1,'SdSpiCardEX::readBlock()']]], + ['readblocks',['readBlocks',['../class_base_block_driver.html#a3a029a2d02fc7cbdd7c15c8d622565c4',1,'BaseBlockDriver::readBlocks()'],['../class_sdio_card.html#a7de36d26a01dc39b7dc122c54ee03b12',1,'SdioCard::readBlocks()'],['../class_sdio_card_e_x.html#a1b50db2f87246f4ff1af4782152c5fee',1,'SdioCardEX::readBlocks()'],['../class_sd_spi_card.html#ac630f77c3137923b47c1bd12a9bbfadf',1,'SdSpiCard::readBlocks()'],['../class_sd_spi_card_e_x.html#a9e158cda94fadd12267fe7e63d06622a',1,'SdSpiCardEX::readBlocks()']]], + ['readcid',['readCID',['../class_sdio_card.html#add77777fbcf91cc41e8ec62fda169e79',1,'SdioCard::readCID()'],['../class_sd_spi_card.html#aa073dc42828164883db1b9faeff909ea',1,'SdSpiCard::readCID()']]], + ['readcsd',['readCSD',['../class_sdio_card.html#a1da0ca418c153e24b4e13b4c1e20d450',1,'SdioCard::readCSD()'],['../class_sd_spi_card.html#a9fbea9525e70f6e3602fe5153a5a1290',1,'SdSpiCard::readCSD()']]], + ['readdata',['readData',['../class_sdio_card.html#a9dc1cd99d0136e514faaecf56a6318d2',1,'SdioCard::readData()'],['../class_sd_spi_card.html#a3a1d1b4b4ceb42fcd41aaf6649482770',1,'SdSpiCard::readData()']]], + ['readdir',['readDir',['../class_fat_file.html#a1325afe074c3efecff666678cd9f116a',1,'FatFile']]], + ['readline',['readline',['../class_arduino_in_stream.html#ad4c60f813b8df6dd1d6696a3458de09c',1,'ArduinoInStream']]], + ['readocr',['readOCR',['../class_sdio_card.html#adc583f7a27f57ce55ce474b1379b9303',1,'SdioCard::readOCR()'],['../class_sd_spi_card.html#ab446e49338b3ce834a750ac6dae35f61',1,'SdSpiCard::readOCR()']]], + ['readstart',['readStart',['../class_sdio_card.html#a73beed782d16173b2e7b0e29c663f6fb',1,'SdioCard::readStart(uint32_t lba)'],['../class_sdio_card.html#a788171db84a1d724808d56ab9608e3a4',1,'SdioCard::readStart(uint32_t lba, uint32_t count)'],['../class_sd_spi_card.html#a3b1710d11496c32ba4323831e00ac6d1',1,'SdSpiCard::readStart()']]], + ['readstatus',['readStatus',['../class_sd_spi_card.html#a91d0413599efe0d63c8c2dfe4a12d9ae',1,'SdSpiCard']]], + ['readstop',['readStop',['../class_sdio_card.html#a5bd3f206d790149340783135d08eb701',1,'SdioCard::readStop()'],['../class_sd_spi_card.html#afdac7c399fa1ba3f904cf503526e007e',1,'SdSpiCard::readStop()']]], + ['remove',['remove',['../class_fat_file.html#ac837a537fbcca14c7aa390c5fc9f4e7c',1,'FatFile::remove()'],['../class_fat_file.html#afe820bbb056863e91ec482961c8dc695',1,'FatFile::remove(FatFile *dirFile, const char *path)'],['../class_fat_file_system.html#abf7d7d0dab43083d5be10d70ff4669e4',1,'FatFileSystem::remove()']]], + ['rename',['rename',['../class_fat_file.html#a4b42f2454ff462555c07ea094a92a1e0',1,'FatFile::rename()'],['../class_fat_file_system.html#a0187891a24017b41bd7c5ba63e659e65',1,'FatFileSystem::rename()']]], + ['rewind',['rewind',['../class_fat_file.html#a5aac6e0b3cb08fc8b8668e916a8b0ca5',1,'FatFile::rewind()'],['../class_stdio_stream.html#ad985866675193d2ee1dde9e27b0d08da',1,'StdioStream::rewind()']]], + ['rewinddirectory',['rewindDirectory',['../class_file.html#ae1419603dea25a6c8480b941d7ac63a3',1,'File']]], + ['right',['right',['../ios_8h.html#aee80fd600c5c58a2bebbd48afdcf8280',1,'ios.h']]], + ['rmdir',['rmdir',['../class_fat_file.html#a9515bac181d33e7f0125e88fa2ccd283',1,'FatFile::rmdir()'],['../class_fat_file_system.html#aaed2edc7ff7fedb163458c870bb41b33',1,'FatFileSystem::rmdir()']]], + ['rmrfstar',['rmRfStar',['../class_fat_file.html#ac780a80526f86d3def701ecdc99d8bfe',1,'FatFile']]], + ['rootdirentrycount',['rootDirEntryCount',['../class_fat_volume.html#a31d0efaf3e47c9342da0dfb3735eecf1',1,'FatVolume']]], + ['rootdirstart',['rootDirStart',['../class_fat_volume.html#a372f1f1fab71f5744eaf538156abe64d',1,'FatVolume']]] ]; diff --git a/extras/html/search/pages_0.html b/extras/html/search/pages_0.html index 75d203dc..d7528582 100644 --- a/extras/html/search/pages_0.html +++ b/extras/html/search/pages_0.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/related_0.html b/extras/html/search/related_0.html new file mode 100644 index 00000000..575b0401 --- /dev/null +++ b/extras/html/search/related_0.html @@ -0,0 +1,30 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/extras/html/search/related_0.js b/extras/html/search/related_0.js new file mode 100644 index 00000000..42581316 --- /dev/null +++ b/extras/html/search/related_0.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['fatcache',['FatCache',['../class_fat_volume.html#a1e97a7aed860b898c403cb29455b3fe7',1,'FatVolume']]], + ['fatfile',['FatFile',['../class_fat_volume.html#a18fb15a715ea85037ab802286853103e',1,'FatVolume']]], + ['fatfilesystem',['FatFileSystem',['../class_fat_volume.html#ac095954ff68b78a07c0cf5fabbb2db6f',1,'FatVolume']]] +]; diff --git a/extras/html/search/search.css b/extras/html/search/search.css index 4d7612ff..3cf9df94 100644 --- a/extras/html/search/search.css +++ b/extras/html/search/search.css @@ -6,14 +6,12 @@ #MSearchBox { white-space : nowrap; - position: absolute; float: none; - display: inline; margin-top: 8px; right: 0px; width: 170px; + height: 24px; z-index: 102; - background-color: white; } #MSearchBox .left @@ -48,12 +46,13 @@ height:19px; background:url('search_m.png') repeat-x; border:none; - width:111px; + width:115px; margin-left:20px; padding-left:4px; color: #909090; outline: none; font: 9pt Arial, Verdana, sans-serif; + -webkit-border-radius: 0px; } #FSearchBox #MSearchField { @@ -64,7 +63,7 @@ display:block; position:absolute; right:10px; - top:0px; + top:8px; width:20px; height:19px; background:url('search_r.png') no-repeat; @@ -102,7 +101,7 @@ left: 0; top: 0; border: 1px solid #90A5CE; background-color: #F9FAFC; - z-index: 1; + z-index: 10001; padding-top: 4px; padding-bottom: 4px; -moz-border-radius: 4px; @@ -165,6 +164,7 @@ iframe#MSearchResults { left: 0; top: 0; border: 1px solid #000; background-color: #EEF1F7; + z-index:10000; } /* ----------------------------------- */ diff --git a/extras/html/search/search.js b/extras/html/search/search.js index dedce3bf..a554ab9c 100644 --- a/extras/html/search/search.js +++ b/extras/html/search/search.js @@ -1,3 +1,26 @@ +/* + @licstart The following is the entire license notice for the + JavaScript code in this file. + + Copyright (C) 1997-2017 by Dimitri van Heesch + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + @licend The above is the entire license notice + for the JavaScript code in this file + */ function convertToId(search) { var result = ''; @@ -788,4 +811,4 @@ function init_search() } searchBox.OnSelectItem(0); } - +/* @license-end */ diff --git a/extras/html/search/searchdata.js b/extras/html/search/searchdata.js index 43feb173..cb8c8fa1 100644 --- a/extras/html/search/searchdata.js +++ b/extras/html/search/searchdata.js @@ -1,15 +1,16 @@ var indexSectionsWithContent = { - 0: "_abcdefghijlmnoprstuvwy", + 0: "_abcdefghijklmnoprstuvwy", 1: "abcdfilmops", 2: "abfimos", - 3: "abcdefghilmnoprstuvwy", + 3: "abcdefghiklmnoprstuvwy", 4: "_abcdefghijlmnoprstuvw", 5: "bdfilmops", 6: "s", 7: "bce", - 8: "defimnpsuw", - 9: "a" + 8: "f", + 9: "cdefimnpsuw", + 10: "a" }; var indexSectionNames = @@ -22,8 +23,9 @@ var indexSectionNames = 5: "typedefs", 6: "enums", 7: "enumvalues", - 8: "defines", - 9: "pages" + 8: "related", + 9: "defines", + 10: "pages" }; var indexSectionLabels = @@ -36,7 +38,8 @@ var indexSectionLabels = 5: "Typedefs", 6: "Enumerations", 7: "Enumerator", - 8: "Macros", - 9: "Pages" + 8: "Friends", + 9: "Macros", + 10: "Pages" }; diff --git a/extras/html/search/typedefs_0.html b/extras/html/search/typedefs_0.html index a6c8e257..2a284a94 100644 --- a/extras/html/search/typedefs_0.html +++ b/extras/html/search/typedefs_0.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/typedefs_1.html b/extras/html/search/typedefs_1.html index c44c36f9..7af807db 100644 --- a/extras/html/search/typedefs_1.html +++ b/extras/html/search/typedefs_1.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/typedefs_2.html b/extras/html/search/typedefs_2.html index d64bac3c..745d076c 100644 --- a/extras/html/search/typedefs_2.html +++ b/extras/html/search/typedefs_2.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/typedefs_3.html b/extras/html/search/typedefs_3.html index 10b9917f..def60a5b 100644 --- a/extras/html/search/typedefs_3.html +++ b/extras/html/search/typedefs_3.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/typedefs_4.html b/extras/html/search/typedefs_4.html index c1ff64d1..ef733ad2 100644 --- a/extras/html/search/typedefs_4.html +++ b/extras/html/search/typedefs_4.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/typedefs_5.html b/extras/html/search/typedefs_5.html index 14adc8ed..94db6d21 100644 --- a/extras/html/search/typedefs_5.html +++ b/extras/html/search/typedefs_5.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/typedefs_6.html b/extras/html/search/typedefs_6.html index 742e92b5..bda8ea1c 100644 --- a/extras/html/search/typedefs_6.html +++ b/extras/html/search/typedefs_6.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/typedefs_7.html b/extras/html/search/typedefs_7.html index ad03564b..565b233f 100644 --- a/extras/html/search/typedefs_7.html +++ b/extras/html/search/typedefs_7.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/typedefs_8.html b/extras/html/search/typedefs_8.html index 4e9ac73d..3063e032 100644 --- a/extras/html/search/typedefs_8.html +++ b/extras/html/search/typedefs_8.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/variables_0.html b/extras/html/search/variables_0.html index c98c0467..51f7bd6b 100644 --- a/extras/html/search/variables_0.html +++ b/extras/html/search/variables_0.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/variables_1.html b/extras/html/search/variables_1.html index 3eab7eaf..f46154d8 100644 --- a/extras/html/search/variables_1.html +++ b/extras/html/search/variables_1.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/variables_10.html b/extras/html/search/variables_10.html index 7e4c8b2f..b62b717e 100644 --- a/extras/html/search/variables_10.html +++ b/extras/html/search/variables_10.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/variables_11.html b/extras/html/search/variables_11.html index 8dd1dba2..2ce8561a 100644 --- a/extras/html/search/variables_11.html +++ b/extras/html/search/variables_11.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/variables_12.html b/extras/html/search/variables_12.html index bc2b2f6d..bba5857f 100644 --- a/extras/html/search/variables_12.html +++ b/extras/html/search/variables_12.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/variables_13.html b/extras/html/search/variables_13.html index 0486c3e8..c92cbcc3 100644 --- a/extras/html/search/variables_13.html +++ b/extras/html/search/variables_13.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/variables_14.html b/extras/html/search/variables_14.html index e613a52e..2c462043 100644 --- a/extras/html/search/variables_14.html +++ b/extras/html/search/variables_14.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/variables_15.html b/extras/html/search/variables_15.html index 5b5841e8..c86a5fd6 100644 --- a/extras/html/search/variables_15.html +++ b/extras/html/search/variables_15.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/variables_2.html b/extras/html/search/variables_2.html index 282f35b3..15275b7a 100644 --- a/extras/html/search/variables_2.html +++ b/extras/html/search/variables_2.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/variables_3.html b/extras/html/search/variables_3.html index 36e31b12..fbc36712 100644 --- a/extras/html/search/variables_3.html +++ b/extras/html/search/variables_3.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/variables_4.html b/extras/html/search/variables_4.html index c7366353..8067e67f 100644 --- a/extras/html/search/variables_4.html +++ b/extras/html/search/variables_4.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/variables_5.html b/extras/html/search/variables_5.html index 4e9e673a..7e95e946 100644 --- a/extras/html/search/variables_5.html +++ b/extras/html/search/variables_5.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/variables_6.html b/extras/html/search/variables_6.html index 3460c618..3d398e62 100644 --- a/extras/html/search/variables_6.html +++ b/extras/html/search/variables_6.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/variables_7.html b/extras/html/search/variables_7.html index 34e7f983..7b791460 100644 --- a/extras/html/search/variables_7.html +++ b/extras/html/search/variables_7.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/variables_8.html b/extras/html/search/variables_8.html index 1c5802c2..8ebc5f6b 100644 --- a/extras/html/search/variables_8.html +++ b/extras/html/search/variables_8.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/variables_9.html b/extras/html/search/variables_9.html index ea8a8561..12136613 100644 --- a/extras/html/search/variables_9.html +++ b/extras/html/search/variables_9.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/variables_a.html b/extras/html/search/variables_a.html index f2e7496d..24819a37 100644 --- a/extras/html/search/variables_a.html +++ b/extras/html/search/variables_a.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/variables_b.html b/extras/html/search/variables_b.html index cd7dfb6f..b306931e 100644 --- a/extras/html/search/variables_b.html +++ b/extras/html/search/variables_b.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/variables_c.html b/extras/html/search/variables_c.html index 4f03f984..75709df8 100644 --- a/extras/html/search/variables_c.html +++ b/extras/html/search/variables_c.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/variables_d.html b/extras/html/search/variables_d.html index ec2ae78a..34c80a48 100644 --- a/extras/html/search/variables_d.html +++ b/extras/html/search/variables_d.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/variables_e.html b/extras/html/search/variables_e.html index 704caba7..4a1c8a61 100644 --- a/extras/html/search/variables_e.html +++ b/extras/html/search/variables_e.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/search/variables_f.html b/extras/html/search/variables_f.html index 3f6c92f9..cc86fb59 100644 --- a/extras/html/search/variables_f.html +++ b/extras/html/search/variables_f.html @@ -1,7 +1,7 @@ - + @@ -11,15 +11,19 @@
Loading...
Searching...
No Matches
diff --git a/extras/html/struct_fat_pos__t-members.html b/extras/html/struct_fat_pos__t-members.html index b4b30530..e41994bc 100644 --- a/extras/html/struct_fat_pos__t-members.html +++ b/extras/html/struct_fat_pos__t-members.html @@ -3,7 +3,8 @@ - + + SdFat: Member List @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@ - + - - + + + +
diff --git a/extras/html/struct_fat_pos__t.html b/extras/html/struct_fat_pos__t.html index c21fd63a..39ef0715 100644 --- a/extras/html/struct_fat_pos__t.html +++ b/extras/html/struct_fat_pos__t.html @@ -3,7 +3,8 @@ - + + SdFat: FatPos_t Struct Reference @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@ - + - - + + + +

Detailed Description

Internal type for file position - do not use in user apps.

Member Data Documentation

- + +

◆ cluster

+
@@ -117,7 +99,9 @@ - + +

◆ position

+
@@ -136,9 +120,9 @@ diff --git a/extras/html/structbios_parm_block-members.html b/extras/html/structbios_parm_block-members.html index 7fc6faef..e3cec4bb 100644 --- a/extras/html/structbios_parm_block-members.html +++ b/extras/html/structbios_parm_block-members.html @@ -3,7 +3,8 @@ - + +SdFat: Member List @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
diff --git a/extras/html/structbios_parm_block.html b/extras/html/structbios_parm_block.html index 4a79561b..935aa8ea 100644 --- a/extras/html/structbios_parm_block.html +++ b/extras/html/structbios_parm_block.html @@ -3,7 +3,8 @@ - + + SdFat: biosParmBlock Struct Reference @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +

BIOS parameter block.

The BIOS parameter block describes the physical layout of a FAT volume.

Member Data Documentation

- + +

◆ bytesPerSector

+
@@ -152,7 +134,9 @@ - + +

◆ fat32BackBootBlock

+
@@ -165,7 +149,9 @@ - + +

◆ fat32Flags

+
@@ -178,7 +164,9 @@ - + +

◆ fat32FSInfo

+
@@ -191,7 +179,9 @@ - + +

◆ fat32Reserved

+
@@ -204,7 +194,9 @@ - + +

◆ fat32RootCluster

+
@@ -217,7 +209,9 @@ - + +

◆ fat32Version

+
@@ -230,7 +224,9 @@ - + +

◆ fatCount

+
@@ -243,7 +239,9 @@ - + +

◆ headCount

+
@@ -256,7 +254,9 @@ - + +

◆ hidddenSectors

+
@@ -269,7 +269,9 @@ - + +

◆ mediaType

+
@@ -282,7 +284,9 @@ - + +

◆ reservedSectorCount

+
@@ -295,7 +299,9 @@ - + +

◆ rootDirEntryCount

+
@@ -308,7 +314,9 @@ - + +

◆ sectorsPerCluster

+
@@ -321,7 +329,9 @@ - + +

◆ sectorsPerFat16

+
@@ -334,7 +344,9 @@ - + +

◆ sectorsPerFat32

+
@@ -347,7 +359,9 @@ - + +

◆ sectorsPerTrtack

+
@@ -360,7 +374,9 @@ - + +

◆ totalSectors16

+
@@ -373,7 +389,9 @@ - + +

◆ totalSectors32

+
@@ -392,9 +410,9 @@ diff --git a/extras/html/structdirectory_entry-members.html b/extras/html/structdirectory_entry-members.html index 9bfada4c..8dd5c063 100644 --- a/extras/html/structdirectory_entry-members.html +++ b/extras/html/structdirectory_entry-members.html @@ -3,7 +3,8 @@ - + +SdFat: Member List @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
diff --git a/extras/html/structdirectory_entry.html b/extras/html/structdirectory_entry.html index 70c64b31..02215818 100644 --- a/extras/html/structdirectory_entry.html +++ b/extras/html/structdirectory_entry.html @@ -3,7 +3,8 @@ - + + SdFat: directoryEntry Struct Reference @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
Bits 0-4: 2-second count, valid value range 0-29 inclusive (0 - 58 seconds).

The valid time range is from Midnight 00:00:00 to 23:59:58.

Member Data Documentation

- + +

◆ attributes

+
@@ -148,7 +130,9 @@ - + +

◆ creationDate

+
@@ -161,7 +145,9 @@ - + +

◆ creationTime

+
@@ -174,7 +160,9 @@ - + +

◆ creationTimeTenths

+
@@ -187,7 +175,9 @@ - + +

◆ fileSize

+
@@ -200,7 +190,9 @@ - + +

◆ firstClusterHigh

+
@@ -213,7 +205,9 @@ - + +

◆ firstClusterLow

+
@@ -226,7 +220,9 @@ - + +

◆ lastAccessDate

+
@@ -239,7 +235,9 @@ - + +

◆ lastWriteDate

+
@@ -252,7 +250,9 @@ - + +

◆ lastWriteTime

+
@@ -265,7 +265,9 @@ - + +

◆ name

+
@@ -279,7 +281,9 @@ - + +

◆ reservedNT

+
@@ -298,9 +302,9 @@ diff --git a/extras/html/structfat32__boot-members.html b/extras/html/structfat32__boot-members.html index e3848997..69a90f4c 100644 --- a/extras/html/structfat32__boot-members.html +++ b/extras/html/structfat32__boot-members.html @@ -3,7 +3,8 @@ - + +SdFat: Member List @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
diff --git a/extras/html/structfat32__boot.html b/extras/html/structfat32__boot.html index e63e3302..74489777 100644 --- a/extras/html/structfat32__boot.html +++ b/extras/html/structfat32__boot.html @@ -3,7 +3,8 @@ - + + SdFat: fat32_boot Struct Reference @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +

Detailed Description

Boot sector for a FAT32 volume.

Member Data Documentation

- + +

◆ bootCode

+
@@ -173,7 +155,9 @@ - + +

◆ bootSectorSig0

+
@@ -186,7 +170,9 @@ - + +

◆ bootSectorSig1

+
@@ -199,7 +185,9 @@ - + +

◆ bootSignature

+
@@ -212,7 +200,9 @@ - + +

◆ bytesPerSector

+
@@ -225,7 +215,9 @@ - + +

◆ driveNumber

+
@@ -238,7 +230,9 @@ - + +

◆ fat32BackBootBlock

+
@@ -251,7 +245,9 @@ - + +

◆ fat32Flags

+
@@ -264,7 +260,9 @@ - + +

◆ fat32FSInfo

+
@@ -277,7 +275,9 @@ - + +

◆ fat32Reserved

+
@@ -290,7 +290,9 @@ - + +

◆ fat32RootCluster

+
@@ -303,7 +305,9 @@ - + +

◆ fat32Version

+
@@ -316,7 +320,9 @@ - + +

◆ fatCount

+
@@ -329,7 +335,9 @@ - + +

◆ fileSystemType

+
@@ -342,7 +350,9 @@ - + +

◆ headCount

+
@@ -355,7 +365,9 @@ - + +

◆ hidddenSectors

+
@@ -368,7 +380,9 @@ - + +

◆ jump

+
@@ -381,7 +395,9 @@ - + +

◆ mediaType

+
@@ -394,7 +410,9 @@ - + +

◆ oemId

+
@@ -407,7 +425,9 @@ - + +

◆ reserved1

+
@@ -420,7 +440,9 @@ - + +

◆ reservedSectorCount

+
@@ -433,7 +455,9 @@ - + +

◆ rootDirEntryCount

+
@@ -446,7 +470,9 @@ - + +

◆ sectorsPerCluster

+
@@ -459,7 +485,9 @@ - + +

◆ sectorsPerFat16

+
@@ -472,7 +500,9 @@ - + +

◆ sectorsPerFat32

+
@@ -485,7 +515,9 @@ - + +

◆ sectorsPerTrack

+
@@ -498,7 +530,9 @@ - + +

◆ totalSectors16

+
@@ -511,7 +545,9 @@ - + +

◆ totalSectors32

+
@@ -524,7 +560,9 @@ - + +

◆ volumeLabel

+
@@ -537,7 +575,9 @@ - + +

◆ volumeSerialNumber

+
@@ -556,9 +596,9 @@ diff --git a/extras/html/structfat32__fsinfo-members.html b/extras/html/structfat32__fsinfo-members.html index 44fe1c61..8f52a553 100644 --- a/extras/html/structfat32__fsinfo-members.html +++ b/extras/html/structfat32__fsinfo-members.html @@ -3,7 +3,8 @@ - + +SdFat: Member List @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
diff --git a/extras/html/structfat32__fsinfo.html b/extras/html/structfat32__fsinfo.html index 3ca8487b..6deb5851 100644 --- a/extras/html/structfat32__fsinfo.html +++ b/extras/html/structfat32__fsinfo.html @@ -3,7 +3,8 @@ - + + SdFat: fat32_fsinfo Struct Reference @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +

Detailed Description

FSINFO sector for a FAT32 volume.

Member Data Documentation

- + +

◆ freeCount

+
@@ -127,7 +109,9 @@ - + +

◆ leadSignature

+
@@ -140,7 +124,9 @@ - + +

◆ nextFree

+
@@ -153,7 +139,9 @@ - + +

◆ reserved1

+
@@ -166,7 +154,9 @@ - + +

◆ reserved2

+
@@ -179,7 +169,9 @@ - + +

◆ structSignature

+
@@ -192,7 +184,9 @@ - + +

◆ tailSignature

+
@@ -211,9 +205,9 @@ diff --git a/extras/html/structfat__boot-members.html b/extras/html/structfat__boot-members.html index edd34f88..b38b67d3 100644 --- a/extras/html/structfat__boot-members.html +++ b/extras/html/structfat__boot-members.html @@ -3,7 +3,8 @@ - + +SdFat: Member List @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
diff --git a/extras/html/structfat__boot.html b/extras/html/structfat__boot.html index b7435ea7..601874e1 100644 --- a/extras/html/structfat__boot.html +++ b/extras/html/structfat__boot.html @@ -3,7 +3,8 @@ - + + SdFat: fat_boot Struct Reference @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +

Detailed Description

Boot sector for a FAT12/FAT16 volume.

Member Data Documentation

- + +

◆ bootCode

+
@@ -159,7 +141,9 @@ - + +

◆ bootSectorSig0

+
@@ -172,7 +156,9 @@ - + +

◆ bootSectorSig1

+
@@ -185,7 +171,9 @@ - + +

◆ bootSignature

+
@@ -198,7 +186,9 @@ - + +

◆ bytesPerSector

+
@@ -211,7 +201,9 @@ - + +

◆ driveNumber

+
@@ -224,7 +216,9 @@ - + +

◆ fatCount

+
@@ -237,7 +231,9 @@ - + +

◆ fileSystemType

+
@@ -250,7 +246,9 @@ - + +

◆ headCount

+
@@ -263,7 +261,9 @@ - + +

◆ hidddenSectors

+
@@ -276,7 +276,9 @@ - + +

◆ jump

+
@@ -289,7 +291,9 @@ - + +

◆ mediaType

+
@@ -302,7 +306,9 @@ - + +

◆ oemId

+
@@ -315,7 +321,9 @@ - + +

◆ reserved1

+
@@ -328,7 +336,9 @@ - + +

◆ reservedSectorCount

+
@@ -341,7 +351,9 @@ - + +

◆ rootDirEntryCount

+
@@ -354,7 +366,9 @@ - + +

◆ sectorsPerCluster

+
@@ -367,7 +381,9 @@ - + +

◆ sectorsPerFat16

+
@@ -380,7 +396,9 @@ - + +

◆ sectorsPerTrack

+
@@ -393,7 +411,9 @@ - + +

◆ totalSectors16

+
@@ -406,7 +426,9 @@ - + +

◆ totalSectors32

+
@@ -419,7 +441,9 @@ - + +

◆ volumeLabel

+
@@ -432,7 +456,9 @@ - + +

◆ volumeSerialNumber

+
@@ -451,9 +477,9 @@ diff --git a/extras/html/structfname__t-members.html b/extras/html/structfname__t-members.html index f4faa772..dd9dda0f 100644 --- a/extras/html/structfname__t-members.html +++ b/extras/html/structfname__t-members.html @@ -3,7 +3,8 @@ - + +SdFat: Member List @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
diff --git a/extras/html/structfname__t.html b/extras/html/structfname__t.html index dc8cd6e9..a96ea8bc 100644 --- a/extras/html/structfname__t.html +++ b/extras/html/structfname__t.html @@ -3,7 +3,8 @@ - + + SdFat: fname_t Struct Reference @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +

Detailed Description

Internal type for Short File Name - do not use in user apps.

Member Data Documentation

- + +

◆ flags

+
@@ -123,7 +105,9 @@ - + +

◆ len

+
@@ -136,7 +120,9 @@ - + +

◆ lfn

+
@@ -149,7 +135,9 @@ - + +

◆ seqPos

+
@@ -162,7 +150,9 @@ - + +

◆ sfn

+
@@ -181,9 +171,9 @@ diff --git a/extras/html/structlong_directory_entry-members.html b/extras/html/structlong_directory_entry-members.html index 5a3ba569..653045e7 100644 --- a/extras/html/structlong_directory_entry-members.html +++ b/extras/html/structlong_directory_entry-members.html @@ -3,7 +3,8 @@ - + +SdFat: Member List @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
diff --git a/extras/html/structlong_directory_entry.html b/extras/html/structlong_directory_entry.html index 912e4977..e3d2b88e 100644 --- a/extras/html/structlong_directory_entry.html +++ b/extras/html/structlong_directory_entry.html @@ -3,7 +3,8 @@ - + + SdFat: longDirectoryEntry Struct Reference @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +

Detailed Description

FAT long directory entry.

Member Data Documentation

- + +

◆ attr

+
@@ -129,7 +111,9 @@ - + +

◆ chksum

+
@@ -142,7 +126,9 @@ - + +

◆ mustBeZero

+
@@ -155,7 +141,9 @@ - + +

◆ name1

+
@@ -168,7 +156,9 @@ - + +

◆ name2

+
@@ -181,7 +171,9 @@ - + +

◆ name3

+
@@ -194,7 +186,9 @@ - + +

◆ ord

+
@@ -208,7 +202,9 @@ - + +

◆ type

+
@@ -228,9 +224,9 @@ diff --git a/extras/html/structmaster_boot_record-members.html b/extras/html/structmaster_boot_record-members.html index d2d01b7b..eabee510 100644 --- a/extras/html/structmaster_boot_record-members.html +++ b/extras/html/structmaster_boot_record-members.html @@ -3,7 +3,8 @@ - + +SdFat: Member List @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
diff --git a/extras/html/structmaster_boot_record.html b/extras/html/structmaster_boot_record.html index 959dfa5c..4d1ce7a8 100644 --- a/extras/html/structmaster_boot_record.html +++ b/extras/html/structmaster_boot_record.html @@ -3,7 +3,8 @@ - + + SdFat: masterBootRecord Struct Reference @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +

Master Boot Record.

The first block of a storage device that is formatted with a MBR.

Member Data Documentation

- + +

◆ codeArea

+
@@ -134,7 +116,9 @@ - + +

◆ diskSignature

+
@@ -147,7 +131,9 @@ - + +

◆ mbrSig0

+
@@ -160,7 +146,9 @@ - + +

◆ mbrSig1

+
@@ -173,7 +161,9 @@ - + +

◆ part

+
@@ -186,7 +176,9 @@ - + +

◆ usuallyZero

+
@@ -205,9 +197,9 @@ diff --git a/extras/html/structpartition_table-members.html b/extras/html/structpartition_table-members.html index 98227a58..38d98b82 100644 --- a/extras/html/structpartition_table-members.html +++ b/extras/html/structpartition_table-members.html @@ -3,7 +3,8 @@ - + +SdFat: Member List @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
diff --git a/extras/html/structpartition_table.html b/extras/html/structpartition_table.html index f058b19f..e20a886b 100644 --- a/extras/html/structpartition_table.html +++ b/extras/html/structpartition_table.html @@ -3,7 +3,8 @@ - + + SdFat: partitionTable Struct Reference @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +

MBR partition table entry.

A partition table entry for a MBR formatted storage device. The MBR partition table has four entries.

Member Data Documentation

- + +

◆ beginCylinderHigh

+
@@ -138,7 +120,9 @@ - + +

◆ beginCylinderLow

+
@@ -151,7 +135,9 @@ - + +

◆ beginHead

+
@@ -164,7 +150,9 @@ - + +

◆ beginSector

+
@@ -177,7 +165,9 @@ - + +

◆ boot

+
@@ -190,7 +180,9 @@ - + +

◆ endCylinderHigh

+
@@ -203,7 +195,9 @@ - + +

◆ endCylinderLow

+
@@ -216,7 +210,9 @@ - + +

◆ endHead

+
@@ -229,7 +225,9 @@ - + +

◆ endSector

+
@@ -242,7 +240,9 @@ - + +

◆ firstSector

+
@@ -255,7 +255,9 @@ - + +

◆ totalSectors

+
@@ -268,7 +270,9 @@ - + +

◆ type

+
@@ -287,9 +291,9 @@ diff --git a/extras/html/structsetfill-members.html b/extras/html/structsetfill-members.html index 741a2fcd..bd3f174c 100644 --- a/extras/html/structsetfill-members.html +++ b/extras/html/structsetfill-members.html @@ -3,7 +3,8 @@ - + +SdFat: Member List @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
diff --git a/extras/html/structsetfill.html b/extras/html/structsetfill.html index 6e66ad33..a3b2db7b 100644 --- a/extras/html/structsetfill.html +++ b/extras/html/structsetfill.html @@ -3,7 +3,8 @@ - + + SdFat: setfill Struct Reference @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +

Detailed Description

type for setfill manipulator

Constructor & Destructor Documentation

- + +

◆ setfill()

+
@@ -140,7 +122,9 @@

Member Data Documentation

- + +

◆ c

+
@@ -159,9 +143,9 @@

Member Data Documentation

diff --git a/extras/html/structsetprecision-members.html b/extras/html/structsetprecision-members.html index 5c61b755..c02648c2 100644 --- a/extras/html/structsetprecision-members.html +++ b/extras/html/structsetprecision-members.html @@ -3,7 +3,8 @@ - + +SdFat: Member List @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
diff --git a/extras/html/structsetprecision.html b/extras/html/structsetprecision.html index 4f8a9836..c4b9d276 100644 --- a/extras/html/structsetprecision.html +++ b/extras/html/structsetprecision.html @@ -3,7 +3,8 @@ - + + SdFat: setprecision Struct Reference @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +

Detailed Description

type for setprecision manipulator

Constructor & Destructor Documentation

- + +

◆ setprecision()

+
@@ -139,7 +121,9 @@

Member Data Documentation

- + +

◆ p

+
@@ -158,9 +142,9 @@

Member Data Documentation

diff --git a/extras/html/structsetw-members.html b/extras/html/structsetw-members.html index a9a782de..71c8a730 100644 --- a/extras/html/structsetw-members.html +++ b/extras/html/structsetw-members.html @@ -3,7 +3,8 @@ - + +SdFat: Member List @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
diff --git a/extras/html/structsetw.html b/extras/html/structsetw.html index 2863e93b..5bed2d2c 100644 --- a/extras/html/structsetw.html +++ b/extras/html/structsetw.html @@ -3,7 +3,8 @@ - + + SdFat: setw Struct Reference @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +

Detailed Description

type for setw manipulator

Constructor & Destructor Documentation

- + +

◆ setw()

+
@@ -139,7 +121,9 @@

Member Data Documentation

- + +

◆ w

+
@@ -158,9 +142,9 @@

Member Data Documentation

diff --git a/extras/html/tabs.css b/extras/html/tabs.css index 9cf578f2..a28614b8 100644 --- a/extras/html/tabs.css +++ b/extras/html/tabs.css @@ -1,60 +1 @@ -.tabs, .tabs2, .tabs3 { - background-image: url('tab_b.png'); - width: 100%; - z-index: 101; - font-size: 13px; - font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; -} - -.tabs2 { - font-size: 10px; -} -.tabs3 { - font-size: 9px; -} - -.tablist { - margin: 0; - padding: 0; - display: table; -} - -.tablist li { - float: left; - display: table-cell; - background-image: url('tab_b.png'); - line-height: 36px; - list-style: none; -} - -.tablist a { - display: block; - padding: 0 20px; - font-weight: bold; - background-image:url('tab_s.png'); - background-repeat:no-repeat; - background-position:right; - color: #283A5D; - text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); - text-decoration: none; - outline: none; -} - -.tabs3 .tablist a { - padding: 0 10px; -} - -.tablist a:hover { - background-image: url('tab_h.png'); - background-repeat:repeat-x; - color: #fff; - text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); - text-decoration: none; -} - -.tablist li.current a { - background-image: url('tab_a.png'); - background-repeat:repeat-x; - color: #fff; - text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); -} +.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}#doc-content{overflow:auto;display:block;padding:0;margin:0;-webkit-overflow-scrolling:touch}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0 1px 1px rgba(255,255,255,0.9);color:#283a5d;outline:0}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace!important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283a5d transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;-moz-border-radius:0!important;-webkit-border-radius:0;border-radius:0!important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a:hover span.sub-arrow{border-color:white transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;-moz-border-radius:5px!important;-webkit-border-radius:5px;border-radius:5px!important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0!important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent white}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px!important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}} \ No newline at end of file diff --git a/extras/html/unioncache__t-members.html b/extras/html/unioncache__t-members.html index 7348ecf7..4778aa5b 100644 --- a/extras/html/unioncache__t-members.html +++ b/extras/html/unioncache__t-members.html @@ -3,7 +3,8 @@ - + +SdFat: Member List @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +
diff --git a/extras/html/unioncache__t.html b/extras/html/unioncache__t.html index 124b0115..72dbb7b7 100644 --- a/extras/html/unioncache__t.html +++ b/extras/html/unioncache__t.html @@ -3,7 +3,8 @@ - + + SdFat: cache_t Union Reference @@ -11,9 +12,6 @@ - @@ -31,40 +29,22 @@
- + - - + + + +

Detailed Description

Cache for an raw data block.

Member Data Documentation

- + +

◆ data

+
@@ -142,7 +124,9 @@ - + +

◆ dir

+
@@ -155,7 +139,9 @@ - + +

◆ fat16

+
@@ -168,7 +154,9 @@ - + +

◆ fat32

+
@@ -181,7 +169,9 @@ - + +

◆ fbs

+
@@ -194,7 +184,9 @@ - + +

◆ fbs32

+
@@ -207,7 +199,9 @@ - + +

◆ fsinfo

+
@@ -220,7 +214,9 @@ - + +

◆ mbr

+
@@ -239,9 +235,9 @@ diff --git a/library.properties b/library.properties index 858ef098..ca487e6f 100644 --- a/library.properties +++ b/library.properties @@ -1,5 +1,5 @@ name=SdFat -version=1.0.8 +version=1.0.11 author=Bill Greiman maintainer=Bill Greiman sentence=FAT16/FAT32 file system for SD cards. diff --git a/src/FatLib/ArduinoFiles.h b/src/FatLib/ArduinoFiles.h index e0155f54..a16b65b2 100644 --- a/src/FatLib/ArduinoFiles.h +++ b/src/FatLib/ArduinoFiles.h @@ -34,7 +34,7 @@ #include //------------------------------------------------------------------------------ /** Arduino SD.h style flag for open for read. */ -#define FILE_READ O_READ +#define FILE_READ O_RDONLY /** Arduino SD.h style flag for open at EOF for read/write with create. */ #define FILE_WRITE (O_RDWR | O_CREAT | O_AT_END) //============================================================================== @@ -51,9 +51,9 @@ class PrintFile : public FatFile, public Print { * * \param[in] oflag Values for \a oflag are constructed by a * bitwise-inclusive OR of open flags. see - * FatFile::open(FatFile*, const char*, uint8_t). + * FatFile::open(FatFile*, const char*, oflag_t). */ - PrintFile(const char* path, uint8_t oflag) : FatFile(path, oflag) {} + PrintFile(const char* path, oflag_t oflag) : FatFile(path, oflag) {} #if DESTRUCTOR_CLOSES_FILE ~PrintFile() {} #endif // DESTRUCTOR_CLOSES_FILE @@ -128,9 +128,9 @@ class File : public FatFile, public Stream { * * \param[in] oflag Values for \a oflag are constructed by a * bitwise-inclusive OR of open flags. see - * FatFile::open(FatFile*, const char*, uint8_t). + * FatFile::open(FatFile*, const char*, oflag_t). */ - File(const char* path, uint8_t oflag) { + File(const char* path, oflag_t oflag) { open(path, oflag); } using FatFile::clearWriteError; @@ -182,12 +182,12 @@ class File : public FatFile, public Stream { } /** Opens the next file or folder in a directory. * - * \param[in] mode open mode flags. + * \param[in] oflag open oflag flags. * \return a File object. */ - File openNextFile(uint8_t mode = O_READ) { + File openNextFile(oflag_t oflag = O_RDONLY) { File tmpFile; - tmpFile.openNext(this, mode); + tmpFile.openNext(this, oflag); return tmpFile; } /** Read the next byte from a file. diff --git a/src/FatLib/FatApiConstants.h b/src/FatLib/FatApiConstants.h index a8dd1104..530e27a6 100644 --- a/src/FatLib/FatApiConstants.h +++ b/src/FatLib/FatApiConstants.h @@ -24,42 +24,47 @@ */ #ifndef FatApiConstants_h #define FatApiConstants_h -// Temp fix for particle mesh. -#ifdef O_RDONLY -#undef O_RDONLY -#endif // O_RDONLY -#ifdef O_RDWR -#undef O_RDWR -#endif // O_RDWR -#ifdef O_WRONLY -#undef O_WRONLY -#endif // O_WRONLY -//------------------------------------------------------------------------------ -// use the gnu style oflag in open() -/** open() oflag for reading */ -const uint8_t O_READ = 0X01; -/** open() oflag - same as O_IN */ -const uint8_t O_RDONLY = O_READ; -/** open() oflag for write */ -const uint8_t O_WRITE = 0X02; -/** open() oflag - same as O_WRITE */ -const uint8_t O_WRONLY = O_WRITE; -/** open() oflag for reading and writing */ -const uint8_t O_RDWR = (O_READ | O_WRITE); -/** open() oflag mask for access modes */ -const uint8_t O_ACCMODE = (O_READ | O_WRITE); -/** The file offset shall be set to the end of the file prior to each write. */ -const uint8_t O_APPEND = 0X04; -/** synchronous writes - call sync() after each write */ -const uint8_t O_SYNC = 0X08; -/** truncate the file to zero length */ -const uint8_t O_TRUNC = 0X10; -/** set the initial position at the end of the file */ -const uint8_t O_AT_END = 0X20; -/** create the file if nonexistent */ -const uint8_t O_CREAT = 0X40; -/** If O_CREAT and O_EXCL are set, open() shall fail if the file exists */ -const uint8_t O_EXCL = 0X80; +#include "SdFatConfig.h" + +#if USE_FCNTL_H +#include +/* values for GNU Arm Embedded Toolchain. + * O_RDONLY: 0x0 + * O_WRONLY: 0x1 + * O_RDWR: 0x2 + * O_ACCMODE: 0x3 + * O_APPEND: 0x8 + * O_CREAT: 0x200 + * O_TRUNC: 0x400 + * O_EXCL: 0x800 + * O_SYNC: 0x2000 + * O_NONBLOCK: 0x4000 + */ +/** Use O_NONBLOCK for open at EOF */ +#define O_AT_END O_NONBLOCK ///< Open at EOF. +typedef int oflag_t; +#else // USE_FCNTL_H +#define O_RDONLY 0X00 ///< Open for reading only. +#define O_WRONLY 0X01 ///< Open for writing only. +#define O_RDWR 0X02 ///< Open for reading and writing. +#define O_AT_END 0X04 ///< Open at EOF. +#define O_APPEND 0X08 ///< Set append mode. +#define O_CREAT 0x10 ///< Create file if it does not exist. +#define O_TRUNC 0x20 ///< Truncate file to zero length. +#define O_EXCL 0x40 ///< Fail if the file exists. +#define O_SYNC 0x80 ///< Synchronized write I/O operations. + +#define O_ACCMODE (O_RDONLY|O_WRONLY|O_RDWR) ///< Mask for access mode. +typedef uint8_t oflag_t; +#endif // USE_FCNTL_H + +#define O_READ O_RDONLY +#define O_WRITE O_WRONLY + +inline bool isWriteMode(oflag_t oflag) { + oflag &= O_ACCMODE; + return oflag == O_WRONLY || oflag == O_RDWR; +} // FatFile class static and const definitions // flags for ls() diff --git a/src/FatLib/FatFile.cpp b/src/FatLib/FatFile.cpp index 667d8be8..9976d7f0 100644 --- a/src/FatLib/FatFile.cpp +++ b/src/FatLib/FatFile.cpp @@ -138,7 +138,7 @@ bool FatFile::createContiguous(FatFile* dirFile, DBG_FAIL_MACRO; goto fail; } - if (!open(dirFile, path, O_CREAT | O_EXCL | O_RDWR)) { + if (!open(dirFile, path, O_RDWR | O_CREAT | O_EXCL)) { DBG_FAIL_MACRO; goto fail; } @@ -284,7 +284,7 @@ bool FatFile::mkdir(FatFile* parent, const char* path, bool pFlag) { if (!*path) { break; } - if (!open(parent, &fname, O_READ)) { + if (!open(parent, &fname, O_RDONLY)) { if (!pFlag || !mkdir(parent, &fname)) { DBG_FAIL_MACRO; goto fail; @@ -311,12 +311,12 @@ bool FatFile::mkdir(FatFile* parent, fname_t* fname) { goto fail; } // create a normal file - if (!open(parent, fname, O_CREAT | O_EXCL | O_RDWR)) { + if (!open(parent, fname, O_RDWR | O_CREAT | O_EXCL)) { DBG_FAIL_MACRO; goto fail; } // convert file to directory - m_flags = O_READ; + m_flags = F_READ; m_attr = FILE_ATTR_SUBDIR; // allocate and zero first cluster @@ -370,11 +370,11 @@ bool FatFile::mkdir(FatFile* parent, fname_t* fname) { return false; } //------------------------------------------------------------------------------ -bool FatFile::open(FatFileSystem* fs, const char* path, uint8_t oflag) { +bool FatFile::open(FatFileSystem* fs, const char* path, oflag_t oflag) { return open(fs->vwd(), path, oflag); } //------------------------------------------------------------------------------ -bool FatFile::open(FatFile* dirFile, const char* path, uint8_t oflag) { +bool FatFile::open(FatFile* dirFile, const char* path, oflag_t oflag) { FatFile tmpDir; fname_t fname; @@ -404,7 +404,7 @@ bool FatFile::open(FatFile* dirFile, const char* path, uint8_t oflag) { if (*path == 0) { break; } - if (!open(dirFile, &fname, O_READ)) { + if (!open(dirFile, &fname, O_RDONLY)) { DBG_FAIL_MACRO; goto fail; } @@ -418,7 +418,7 @@ bool FatFile::open(FatFile* dirFile, const char* path, uint8_t oflag) { return false; } //------------------------------------------------------------------------------ -bool FatFile::open(FatFile* dirFile, uint16_t index, uint8_t oflag) { +bool FatFile::open(FatFile* dirFile, uint16_t index, oflag_t oflag) { uint8_t chksum = 0; uint8_t lfnOrd = 0; dir_t* dir; @@ -486,7 +486,7 @@ bool FatFile::open(FatFile* dirFile, uint16_t index, uint8_t oflag) { // open a cached directory entry. bool FatFile::openCachedEntry(FatFile* dirFile, uint16_t dirIndex, - uint8_t oflag, uint8_t lfnOrd) { + oflag_t oflag, uint8_t lfnOrd) { uint32_t firstCluster; memset(this, 0, sizeof(FatFile)); // location of entry in cache @@ -505,15 +505,37 @@ bool FatFile::openCachedEntry(FatFile* dirFile, uint16_t dirIndex, m_attr |= FILE_ATTR_FILE; } m_lfnOrd = lfnOrd; - // Write, truncate, or at end is an error for a directory or read-only file. - if (oflag & (O_WRITE | O_TRUNC | O_AT_END)) { + + switch (oflag & O_ACCMODE) { + case O_RDONLY: + if (oflag & O_TRUNC) { + DBG_FAIL_MACRO; + goto fail; + } + m_flags = F_READ; + break; + + case O_RDWR: + m_flags = F_READ | F_WRITE; + break; + + case O_WRONLY: + m_flags = F_WRITE; + break; + + default: + DBG_FAIL_MACRO; + goto fail; + } + + if (m_flags & F_WRITE) { if (isSubDir() || isReadOnly()) { DBG_FAIL_MACRO; goto fail; } } - // save open flags for read/write - m_flags = oflag & F_OFLAG; + + m_flags |= (oflag & O_APPEND ? F_APPEND : 0) | (oflag & O_SYNC ? F_SYNC : 0); m_dirBlock = m_vol->cacheBlockNumber(); @@ -543,7 +565,7 @@ bool FatFile::openCachedEntry(FatFile* dirFile, uint16_t dirIndex, return false; } //------------------------------------------------------------------------------ -bool FatFile::openNext(FatFile* dirFile, uint8_t oflag) { +bool FatFile::openNext(FatFile* dirFile, oflag_t oflag) { uint8_t chksum = 0; ldir_t* ldir; uint8_t lfnOrd = 0; @@ -634,7 +656,7 @@ bool FatFile::openParent(FatFile* dirFile) { } else { memset(&dotdot, 0, sizeof(FatFile)); dotdot.m_attr = FILE_ATTR_SUBDIR; - dotdot.m_flags = O_READ; + dotdot.m_flags = F_READ; dotdot.m_vol = dirFile->m_vol; dotdot.m_firstCluster = ddc; } @@ -648,7 +670,7 @@ bool FatFile::openParent(FatFile* dirFile) { } ddc = dir->firstClusterLow | ((uint32_t)dir->firstClusterHigh << 16); } while (ddc != dirFile->m_dirCluster); - return open(&dotdot, di, O_READ); + return open(&dotdot, di, O_RDONLY); fail: return false; @@ -681,7 +703,7 @@ bool FatFile::openRoot(FatVolume* vol) { goto fail; } // read only - m_flags = O_READ; + m_flags = F_READ; return true; fail: @@ -708,7 +730,7 @@ int FatFile::read(void* buf, size_t nbyte) { cache_t* pc; // error if not open for read - if (!isOpen() || !(m_flags & O_READ)) { + if (!isOpen() || !(m_flags & F_READ)) { DBG_FAIL_MACRO; goto fail; } @@ -865,7 +887,7 @@ dir_t* FatFile::readDirCache(bool skipReadOk) { //------------------------------------------------------------------------------ bool FatFile::remove(FatFile* dirFile, const char* path) { FatFile file; - if (!file.open(dirFile, path, O_WRITE)) { + if (!file.open(dirFile, path, O_WRONLY)) { DBG_FAIL_MACRO; goto fail; } @@ -910,7 +932,7 @@ bool FatFile::rename(FatFile* dirFile, const char* newPath) { memcpy(&entry, dir, sizeof(entry)); // make directory entry for new path if (isFile()) { - if (!file.open(dirFile, newPath, O_CREAT | O_EXCL | O_WRITE)) { + if (!file.open(dirFile, newPath, O_WRONLY | O_CREAT | O_EXCL)) { DBG_FAIL_MACRO; goto fail; } @@ -970,7 +992,7 @@ bool FatFile::rename(FatFile* dirFile, const char* newPath) { } // Remove old directory entry; oldFile.m_firstCluster = 0; - oldFile.m_flags = O_WRITE; + oldFile.m_flags = F_WRITE; oldFile.m_attr = FILE_ATTR_FILE; if (!oldFile.remove()) { DBG_FAIL_MACRO; @@ -1017,7 +1039,7 @@ bool FatFile::rmdir() { } // convert empty directory to normal file for remove m_attr = FILE_ATTR_FILE; - m_flags |= O_WRITE; + m_flags |= F_WRITE; return remove(); fail: @@ -1060,7 +1082,7 @@ bool FatFile::rmRfStar() { continue; } - if (!f.open(this, index, O_READ)) { + if (!f.open(this, index, O_RDONLY)) { DBG_FAIL_MACRO; goto fail; } @@ -1072,7 +1094,7 @@ bool FatFile::rmRfStar() { } } else { // ignore read-only - f.m_flags |= O_WRITE; + f.m_flags |= F_WRITE; if (!f.remove()) { DBG_FAIL_MACRO; goto fail; @@ -1286,7 +1308,7 @@ bool FatFile::timestamp(uint8_t flags, uint16_t year, uint8_t month, bool FatFile::truncate(uint32_t length) { uint32_t newPos; // error if not a normal file or read-only - if (!isFile() || !(m_flags & O_WRITE)) { + if (!isFile() || !(m_flags & F_WRITE)) { DBG_FAIL_MACRO; goto fail; } @@ -1360,12 +1382,12 @@ int FatFile::write(const void* buf, size_t nbyte) { size_t nToWrite = nbyte; size_t n; // error if not a normal file or is read-only - if (!isFile() || !(m_flags & O_WRITE)) { + if (!isFile() || !(m_flags & F_WRITE)) { DBG_FAIL_MACRO; goto fail; } // seek to end of file if append flag - if ((m_flags & O_APPEND)) { + if ((m_flags & F_APPEND)) { if (!seekSet(m_fileSize)) { DBG_FAIL_MACRO; goto fail; @@ -1483,7 +1505,7 @@ int FatFile::write(const void* buf, size_t nbyte) { m_flags |= F_FILE_DIR_DIRTY; } - if (m_flags & O_SYNC) { + if (m_flags & F_SYNC) { if (!sync()) { DBG_FAIL_MACRO; goto fail; diff --git a/src/FatLib/FatFile.h b/src/FatLib/FatFile.h index 0f16b433..616959e0 100644 --- a/src/FatLib/FatFile.h +++ b/src/FatLib/FatFile.h @@ -116,9 +116,9 @@ class FatFile { * \param[in] path A path with a valid 8.3 DOS name for a file to be opened. * * \param[in] oflag Values for \a oflag are constructed by a bitwise-inclusive - * OR of open flags. see FatFile::open(FatFile*, const char*, uint8_t). + * OR of open flags. see FatFile::open(FatFile*, const char*, oflag_t). */ - FatFile(const char* path, uint8_t oflag) { + FatFile(const char* path, oflag_t oflag) { m_attr = FILE_ATTR_CLOSED; m_error = 0; open(path, oflag); @@ -333,7 +333,7 @@ class FatFile { */ bool exists(const char* path) { FatFile file; - return file.open(this, path, O_READ); + return file.open(this, path, O_RDONLY); } /** * Get a string from a file. @@ -486,12 +486,12 @@ class FatFile { * \param[in] path with a valid 8.3 DOS name for a file to be opened. * * \param[in] oflag bitwise-inclusive OR of open mode flags. - * See see FatFile::open(FatFile*, const char*, uint8_t). + * See see FatFile::open(FatFile*, const char*, oflag_t). * * \return The value true is returned for success and * the value false is returned for failure. */ - bool open(FatFileSystem* fs, const char* path, uint8_t oflag); + bool open(FatFileSystem* fs, const char* path, oflag_t oflag); /** Open a file by index. * * \param[in] dirFile An open FatFile instance for the directory. @@ -500,12 +500,12 @@ class FatFile { * opened. The value for \a index is (directory file position)/32. * * \param[in] oflag bitwise-inclusive OR of open mode flags. - * See see FatFile::open(FatFile*, const char*, uint8_t). + * See see FatFile::open(FatFile*, const char*, oflag_t). * * See open() by path for definition of flags. * \return true for success or false for failure. */ - bool open(FatFile* dirFile, uint16_t index, uint8_t oflag); + bool open(FatFile* dirFile, uint16_t index, oflag_t oflag); /** Open a file or directory by name. * * \param[in] dirFile An open FatFile instance for the directory containing @@ -516,13 +516,13 @@ class FatFile { * \param[in] oflag Values for \a oflag are constructed by a * bitwise-inclusive OR of flags from the following list * - * O_READ - Open for reading. + * O_RDONLY - Open for reading. * - * O_RDONLY - Same as O_READ. + * O_READ - Same as O_RDONLY (GNU). * - * O_WRITE - Open for writing. + * O_WRONLY - Open for writing. * - * O_WRONLY - Same as O_WRITE. + * O_WRITE - Same as O_WRONLY (GNU). * * O_RDWR - Open for reading and writing. * @@ -552,18 +552,18 @@ class FatFile { * \return The value true is returned for success and * the value false is returned for failure. */ - bool open(FatFile* dirFile, const char* path, uint8_t oflag); + bool open(FatFile* dirFile, const char* path, oflag_t oflag); /** Open a file in the current working directory. * * \param[in] path A path with a valid 8.3 DOS name for a file to be opened. * * \param[in] oflag bitwise-inclusive OR of open mode flags. - * See see FatFile::open(FatFile*, const char*, uint8_t). + * See see FatFile::open(FatFile*, const char*, oflag_t). * * \return The value true is returned for success and * the value false is returned for failure. */ - bool open(const char* path, uint8_t oflag = O_READ) { + bool open(const char* path, oflag_t oflag = O_RDONLY) { return open(m_cwd, path, oflag); } /** Open the next file or subdirectory in a directory. @@ -572,11 +572,11 @@ class FatFile { * containing the file to be opened. * * \param[in] oflag bitwise-inclusive OR of open mode flags. - * See see FatFile::open(FatFile*, const char*, uint8_t). + * See see FatFile::open(FatFile*, const char*, oflag_t). * * \return true for success or false for failure. */ - bool openNext(FatFile* dirFile, uint8_t oflag = O_READ); + bool openNext(FatFile* dirFile, oflag_t oflag = O_RDONLY); /** Open a volume's root directory. * * \param[in] vol The FAT volume containing the root directory to be opened. @@ -970,18 +970,20 @@ class FatFile { bool openCluster(FatFile* file); static bool parsePathName(const char* str, fname_t* fname, const char** ptr); bool mkdir(FatFile* parent, fname_t* fname); - bool open(FatFile* dirFile, fname_t* fname, uint8_t oflag); - bool openCachedEntry(FatFile* dirFile, uint16_t cacheIndex, uint8_t oflag, + bool open(FatFile* dirFile, fname_t* fname, oflag_t oflag); + bool openCachedEntry(FatFile* dirFile, uint16_t cacheIndex, oflag_t oflag, uint8_t lfnOrd); bool readLBN(uint32_t* lbn); dir_t* readDirCache(bool skipReadOk = false); bool setDirSize(); // bits defined in m_flags - // should be 0X0F - static const uint8_t F_OFLAG = (O_ACCMODE | O_APPEND | O_SYNC); - // sync of directory entry required - static const uint8_t F_FILE_DIR_DIRTY = 0X80; + static const uint8_t F_READ = 0X01; + static const uint8_t F_WRITE = 0X02; + static const uint8_t F_FILE_DIR_DIRTY = 0X04; + static const uint8_t F_APPEND = 0X08; + static const uint8_t F_SYNC = 0X80; + // global pointer to cwd dir static FatFile* m_cwd; diff --git a/src/FatLib/FatFileLFN.cpp b/src/FatLib/FatFileLFN.cpp index 9ba66f79..571623d3 100644 --- a/src/FatLib/FatFileLFN.cpp +++ b/src/FatLib/FatFileLFN.cpp @@ -173,7 +173,7 @@ bool FatFile::openCluster(FatFile* file) { } memset(this, 0, sizeof(FatFile)); m_attr = FILE_ATTR_SUBDIR; - m_flags = O_READ; + m_flags = F_READ; m_vol = file->m_vol; m_firstCluster = file->m_dirCluster; return true; @@ -290,7 +290,7 @@ bool FatFile::parsePathName(const char* path, return true; } //------------------------------------------------------------------------------ -bool FatFile::open(FatFile* dirFile, fname_t* fname, uint8_t oflag) { +bool FatFile::open(FatFile* dirFile, fname_t* fname, oflag_t oflag) { bool fnameFound = false; uint8_t lfnOrd = 0; uint8_t freeNeed; @@ -401,8 +401,8 @@ bool FatFile::open(FatFile* dirFile, fname_t* fname, uint8_t oflag) { goto open; create: - // don't create unless O_CREAT and O_WRITE - if (!(oflag & O_CREAT) || !(oflag & O_WRITE)) { + // don't create unless O_CREAT and write mode. + if (!(oflag & O_CREAT) || !isWriteMode(oflag)) { DBG_FAIL_MACRO; goto fail; } @@ -560,7 +560,7 @@ bool FatFile::remove() { ldir_t* ldir; // Cant' remove not open for write. - if (!isFile() || !(m_flags & O_WRITE)) { + if (!isFile() || !(m_flags & F_WRITE)) { DBG_FAIL_MACRO; goto fail; } diff --git a/src/FatLib/FatFilePrint.cpp b/src/FatLib/FatFilePrint.cpp index 53367f43..e5785557 100644 --- a/src/FatLib/FatFilePrint.cpp +++ b/src/FatLib/FatFilePrint.cpp @@ -99,7 +99,7 @@ void FatFile::dmpFile(print_t* pr, uint32_t pos, size_t n) { void FatFile::ls(print_t* pr, uint8_t flags, uint8_t indent) { FatFile file; rewind(); - while (file.openNext(this, O_READ)) { + while (file.openNext(this, O_RDONLY)) { // indent for dir level if (!file.isHidden() || (flags & LS_A)) { for (uint8_t i = 0; i < indent; i++) { diff --git a/src/FatLib/FatFileSFN.cpp b/src/FatLib/FatFileSFN.cpp index e475cb39..afb045f0 100644 --- a/src/FatLib/FatFileSFN.cpp +++ b/src/FatLib/FatFileSFN.cpp @@ -123,7 +123,7 @@ bool FatFile::parsePathName(const char* path, fname_t* fname, //------------------------------------------------------------------------------ // open with filename in fname #define SFN_OPEN_USES_CHKSUM 0 -bool FatFile::open(FatFile* dirFile, fname_t* fname, uint8_t oflag) { +bool FatFile::open(FatFile* dirFile, fname_t* fname, oflag_t oflag) { bool emptyFound = false; #if SFN_OPEN_USES_CHKSUM uint8_t chksum; @@ -189,8 +189,8 @@ bool FatFile::open(FatFile* dirFile, fname_t* fname, uint8_t oflag) { } index++; } - // don't create unless O_CREAT and O_WRITE - if (!(oflag & O_CREAT) || !(oflag & O_WRITE)) { + // don't create unless O_CREAT and write mode + if (!(oflag & O_CREAT) || !isWriteMode(oflag)) { DBG_FAIL_MACRO; goto fail; } @@ -248,7 +248,7 @@ size_t FatFile::printName(print_t* pr) { bool FatFile::remove() { dir_t* dir; // Can't remove if LFN or not open for write. - if (!isFile() || isLFN() || !(m_flags & O_WRITE)) { + if (!isFile() || isLFN() || !(m_flags & F_WRITE)) { DBG_FAIL_MACRO; goto fail; } diff --git a/src/FatLib/FatFileSystem.h b/src/FatLib/FatFileSystem.h index 2e9d759c..bc72b412 100644 --- a/src/FatLib/FatFileSystem.h +++ b/src/FatLib/FatFileSystem.h @@ -83,22 +83,22 @@ class FatFileSystem : public FatVolume { /** open a file * * \param[in] path location of file to be opened. - * \param[in] mode open mode flags. + * \param[in] oflag open flags. * \return a File object. */ - File open(const char *path, uint8_t mode = FILE_READ) { + File open(const char *path, oflag_t oflag = FILE_READ) { File tmpFile; - tmpFile.open(vwd(), path, mode); + tmpFile.open(vwd(), path, oflag); return tmpFile; } /** open a file * * \param[in] path location of file to be opened. - * \param[in] mode open mode flags. + * \param[in] oflag open flags. * \return a File object. */ - File open(const String &path, uint8_t mode = FILE_READ) { - return open(path.c_str(), mode ); + File open(const String &path, oflag_t oflag = FILE_READ) { + return open(path.c_str(), oflag ); } #endif // ENABLE_ARDUINO_FEATURES /** Change a volume's working directory to root @@ -143,7 +143,7 @@ class FatFileSystem : public FatVolume { if (path[0] == '/' && path[1] == '\0') { return chdir(set_cwd); } - if (!dir.open(vwd(), path, O_READ)) { + if (!dir.open(vwd(), path, O_RDONLY)) { goto fail; } if (!dir.isDir()) { @@ -215,7 +215,7 @@ class FatFileSystem : public FatVolume { */ void ls(print_t* pr, const char* path, uint8_t flags) { FatFile dir; - dir.open(vwd(), path, O_READ); + dir.open(vwd(), path, O_RDONLY); dir.ls(pr, flags); } //---------------------------------------------------------------------------- @@ -261,7 +261,7 @@ class FatFileSystem : public FatVolume { */ bool rename(const char *oldPath, const char *newPath) { FatFile file; - if (!file.open(vwd(), oldPath, O_READ)) { + if (!file.open(vwd(), oldPath, O_RDONLY)) { return false; } return file.rename(vwd(), newPath); @@ -278,7 +278,7 @@ class FatFileSystem : public FatVolume { */ bool rmdir(const char* path) { FatFile sub; - if (!sub.open(vwd(), path, O_READ)) { + if (!sub.open(vwd(), path, O_RDONLY)) { return false; } return sub.rmdir(); @@ -296,7 +296,7 @@ class FatFileSystem : public FatVolume { */ bool truncate(const char* path, uint32_t length) { FatFile file; - if (!file.open(vwd(), path, O_WRITE)) { + if (!file.open(vwd(), path, O_WRONLY)) { return false; } return file.truncate(length); diff --git a/src/FatLib/FatVolume.cpp b/src/FatLib/FatVolume.cpp index 6dd61cf8..7260b838 100644 --- a/src/FatLib/FatVolume.cpp +++ b/src/FatLib/FatVolume.cpp @@ -87,7 +87,7 @@ bool FatVolume::allocateCluster(uint32_t current, uint32_t* next) { if (setStart) { // Can't find space, checked all clusters. DBG_FAIL_MACRO; - goto fail; + goto fail; } find = m_allocSearchStart; setStart = true; @@ -96,8 +96,8 @@ bool FatVolume::allocateCluster(uint32_t current, uint32_t* next) { if (find == current) { // Can't find space, already searched clusters after current. DBG_FAIL_MACRO; - goto fail; - } + goto fail; + } uint32_t f; int8_t fg = fatGet(find, &f); if (fg < 0) { @@ -122,7 +122,7 @@ bool FatVolume::allocateCluster(uint32_t current, uint32_t* next) { DBG_FAIL_MACRO; goto fail; } - } + } updateFreeClusterCount(-1); *next = find; return true; diff --git a/src/FatLib/FatVolume.h b/src/FatLib/FatVolume.h index 2f15adab..a08cc2bd 100644 --- a/src/FatLib/FatVolume.h +++ b/src/FatLib/FatVolume.h @@ -263,9 +263,9 @@ class FatVolume { //------------------------------------------------------------------------------ private: // Allow FatFile and FatCache access to FatVolume private functions. - friend class FatCache; - friend class FatFile; - friend class FatFileSystem; + friend class FatCache; ///< Allow access to FatVolume. + friend class FatFile; ///< Allow access to FatVolume. + friend class FatFileSystem; ///< Allow access to FatVolume. //------------------------------------------------------------------------------ BlockDriver* m_blockDev; // block device uint8_t m_blocksPerCluster; // Cluster size in blocks. diff --git a/src/FatLib/StdioStream.cpp b/src/FatLib/StdioStream.cpp index c275d341..076c2b2e 100644 --- a/src/FatLib/StdioStream.cpp +++ b/src/FatLib/StdioStream.cpp @@ -27,10 +27,10 @@ //------------------------------------------------------------------------------ int StdioStream::fclose() { int rtn = 0; - if (!m_flags) { + if (!m_status) { return EOF; } - if (m_flags & F_SWR) { + if (m_status & S_SWR) { if (!flushBuf()) { rtn = EOF; } @@ -40,12 +40,12 @@ int StdioStream::fclose() { } m_r = 0; m_w = 0; - m_flags = 0; + m_status = 0; return rtn; } //------------------------------------------------------------------------------ int StdioStream::fflush() { - if ((m_flags & (F_SWR | F_SRW)) && !(m_flags & F_SRD)) { + if ((m_status & (S_SWR | S_SRW)) && !(m_status & S_SRD)) { if (flushBuf() && FatFile::sync()) { return 0; } @@ -95,21 +95,25 @@ char* StdioStream::fgets(char* str, size_t num, size_t* len) { } //------------------------------------------------------------------------------ bool StdioStream::fopen(const char* path, const char* mode) { - uint8_t oflag; + oflag_t oflag; + uint8_t m; switch (*mode++) { case 'a': - m_flags = F_SWR; - oflag = O_WRITE | O_CREAT | O_APPEND | O_AT_END; + m = O_WRONLY; + oflag = O_CREAT | O_APPEND; + m_status = S_SWR; break; case 'r': - m_flags = F_SRD; - oflag = O_READ; + m = O_RDONLY; + oflag = 0; + m_status = S_SRD; break; case 'w': - m_flags = F_SWR; - oflag = O_WRITE | O_CREAT | O_TRUNC; + m = O_WRONLY; + oflag = O_CREAT | O_TRUNC; + m_status = S_SWR; break; default: @@ -118,8 +122,8 @@ bool StdioStream::fopen(const char* path, const char* mode) { while (*mode) { switch (*mode++) { case '+': - m_flags |= F_SRW; - oflag |= O_RDWR; + m_status = S_SRW; + m = O_RDWR; break; case 'b': @@ -133,9 +137,8 @@ bool StdioStream::fopen(const char* path, const char* mode) { goto fail; } } - if ((oflag & O_EXCL) && !(oflag & O_WRITE)) { - goto fail; - } + oflag |= m; + if (!FatFile::open(path, oflag)) { goto fail; } @@ -145,7 +148,7 @@ bool StdioStream::fopen(const char* path, const char* mode) { return true; fail: - m_flags = 0; + m_status = 0; return false; } //------------------------------------------------------------------------------ @@ -178,7 +181,7 @@ size_t StdioStream::fread(void* ptr, size_t size, size_t count) { //------------------------------------------------------------------------------ int StdioStream::fseek(int32_t offset, int origin) { int32_t pos; - if (m_flags & F_SWR) { + if (m_status & S_SWR) { if (!flushBuf()) { goto fail; } @@ -220,12 +223,12 @@ int StdioStream::fseek(int32_t offset, int origin) { //------------------------------------------------------------------------------ int32_t StdioStream::ftell() { uint32_t pos = FatFile::curPosition(); - if (m_flags & F_SRD) { + if (m_status & S_SRD) { if (m_r > pos) { return -1L; } pos -= m_r; - } else if (m_flags & F_SWR) { + } else if (m_status & S_SWR) { pos += m_p - m_buf; } return pos; @@ -233,28 +236,6 @@ int32_t StdioStream::ftell() { //------------------------------------------------------------------------------ size_t StdioStream::fwrite(const void* ptr, size_t size, size_t count) { return write(ptr, count*size) < 0 ? EOF : count; -#if 0 //////////////////////////////////////////////////////////////////////////////////// - const uint8_t* src = static_cast(ptr); - size_t total = count*size; - if (total == 0) { - return 0; - } - size_t todo = total; - - while (todo > m_w) { - memcpy(m_p, src, m_w); - m_p += m_w; - src += m_w; - todo -= m_w; - if (!flushBuf()) { - return (total - todo)/size; - } - } - memcpy(m_p, src, todo); - m_p += todo; - m_w -= todo; - return count; -#endif ////////////////////////////////////////////////////////////////////////////////// } //------------------------------------------------------------------------------ int StdioStream::write(const void* buf, size_t count) { @@ -412,7 +393,7 @@ int StdioStream::printHex(uint32_t n) { } //------------------------------------------------------------------------------ bool StdioStream::rewind() { - if (m_flags & F_SWR) { + if (m_status & S_SWR) { if (!flushBuf()) { return false; } @@ -428,7 +409,7 @@ int StdioStream::ungetc(int c) { return EOF; } // error if not reading. - if ((m_flags & F_SRD) == 0) { + if ((m_status & S_SRD) == 0) { return EOF; } // error if no space. @@ -436,7 +417,7 @@ int StdioStream::ungetc(int c) { return EOF; } m_r++; - m_flags &= ~F_EOF; + m_status &= ~S_EOF; return *--m_p = (uint8_t)c; } //============================================================================== @@ -452,25 +433,25 @@ int StdioStream::fillGet() { //------------------------------------------------------------------------------ // private bool StdioStream::fillBuf() { - if (!(m_flags & - F_SRD)) { // check for F_ERR and F_EOF ??///////////////// - if (!(m_flags & F_SRW)) { - m_flags |= F_ERR; + if (!(m_status & + S_SRD)) { // check for S_ERR and S_EOF ??///////////////// + if (!(m_status & S_SRW)) { + m_status |= S_ERR; return false; } - if (m_flags & F_SWR) { + if (m_status & S_SWR) { if (!flushBuf()) { return false; } - m_flags &= ~F_SWR; - m_flags |= F_SRD; + m_status &= ~S_SWR; + m_status |= S_SRD; m_w = 0; } } m_p = m_buf + UNGETC_BUF_SIZE; int nr = FatFile::read(m_p, sizeof(m_buf) - UNGETC_BUF_SIZE); if (nr <= 0) { - m_flags |= nr < 0 ? F_ERR : F_EOF; + m_status |= nr < 0 ? S_ERR : S_EOF; m_r = 0; return false; } @@ -480,14 +461,14 @@ bool StdioStream::fillBuf() { //------------------------------------------------------------------------------ // private bool StdioStream::flushBuf() { - if (!(m_flags & - F_SWR)) { // check for F_ERR ??//////////////////////// - if (!(m_flags & F_SRW)) { - m_flags |= F_ERR; + if (!(m_status & + S_SWR)) { // check for S_ERR ??//////////////////////// + if (!(m_status & S_SRW)) { + m_status |= S_ERR; return false; } - m_flags &= ~F_SRD; - m_flags |= F_SWR; + m_status &= ~S_SRD; + m_status |= S_SWR; m_r = 0; m_w = sizeof(m_buf); m_p = m_buf; @@ -499,7 +480,7 @@ bool StdioStream::flushBuf() { if (FatFile::write(m_buf, n) == n) { return true; } - m_flags |= F_ERR; + m_status |= S_ERR; return false; } //------------------------------------------------------------------------------ diff --git a/src/FatLib/StdioStream.h b/src/FatLib/StdioStream.h index 3062f33b..a4d5e9a0 100644 --- a/src/FatLib/StdioStream.h +++ b/src/FatLib/StdioStream.h @@ -117,12 +117,12 @@ class StdioStream : private FatFile { StdioStream() { m_w = m_r = 0; m_p = m_buf; - m_flags = 0; + m_status = 0; } //---------------------------------------------------------------------------- /** Clear the stream's end-of-file and error indicators. */ void clearerr() { - m_flags &= ~(F_ERR | F_EOF); + m_status &= ~(S_ERR | S_EOF); } //---------------------------------------------------------------------------- /** Close a stream. @@ -142,14 +142,14 @@ class StdioStream : private FatFile { * \return non-zero if and only if the end-of-file indicator is set. */ int feof() { - return (m_flags & F_EOF) != 0; + return (m_status & S_EOF) != 0; } //---------------------------------------------------------------------------- /** Test the stream's error indicator. * \return return non-zero if and only if the error indicator is set. */ int ferror() { - return (m_flags & F_ERR) != 0; + return (m_status & S_ERR) != 0; } //---------------------------------------------------------------------------- /** Flush the stream. @@ -650,14 +650,14 @@ class StdioStream : private FatFile { char* fmtSpace(uint8_t len); int write(const void* buf, size_t count); //---------------------------------------------------------------------------- - // F_SRD and F_WR are never simultaneously asserted - static const uint8_t F_SRD = 0x01; // OK to read - static const uint8_t F_SWR = 0x02; // OK to write - static const uint8_t F_SRW = 0x04; // open for reading & writing - static const uint8_t F_EOF = 0x10; // found EOF - static const uint8_t F_ERR = 0x20; // found error + // S_SRD and S_WR are never simultaneously asserted + static const uint8_t S_SRD = 0x01; // OK to read + static const uint8_t S_SWR = 0x02; // OK to write + static const uint8_t S_SRW = 0x04; // open for reading & writing + static const uint8_t S_EOF = 0x10; // found EOF + static const uint8_t S_ERR = 0x20; // found error //---------------------------------------------------------------------------- - uint8_t m_flags; + uint8_t m_status; uint8_t* m_p; uint8_t m_r; uint8_t m_w; diff --git a/src/FatLib/fstream.cpp b/src/FatLib/fstream.cpp index 012f28d3..01ec1893 100644 --- a/src/FatLib/fstream.cpp +++ b/src/FatLib/fstream.cpp @@ -50,42 +50,42 @@ int16_t FatStreamBase::getch() { } //------------------------------------------------------------------------------ void FatStreamBase::open(const char* path, ios::openmode mode) { - uint8_t flags; + oflag_t oflag; switch (mode & (app | in | out | trunc)) { case app | in: case app | in | out: - flags = O_RDWR | O_APPEND | O_CREAT; + oflag = O_RDWR | O_APPEND | O_CREAT; break; case app: case app | out: - flags = O_WRITE | O_APPEND | O_CREAT; + oflag = O_WRONLY | O_APPEND | O_CREAT; break; case in: - flags = O_READ; + oflag = O_RDONLY; break; case in | out: - flags = O_RDWR; + oflag = O_RDWR; break; case in | out | trunc: - flags = O_RDWR | O_TRUNC | O_CREAT; + oflag = O_RDWR | O_TRUNC | O_CREAT; break; case out: case out | trunc: - flags = O_WRITE | O_TRUNC | O_CREAT; + oflag = O_WRONLY | O_TRUNC | O_CREAT; break; default: goto fail; } if (mode & ios::ate) { - flags |= O_AT_END; + oflag |= O_AT_END; } - if (!FatFile::open(path, flags)) { + if (!FatFile::open(path, oflag)) { goto fail; } setmode(mode); diff --git a/src/SdCard/SdInfo.h b/src/SdCard/SdInfo.h index 69645a53..3658459f 100644 --- a/src/SdCard/SdInfo.h +++ b/src/SdCard/SdInfo.h @@ -81,6 +81,7 @@ typedef enum { SD_CARD_ERROR_WRITE, SD_CARD_ERROR_WRITE_FIFO, SD_CARD_ERROR_WRITE_START, + SD_CARD_ERROR_FLASH_PROGRAMMING, SD_CARD_ERROR_WRITE_TIMEOUT, // Misc errors. @@ -124,9 +125,9 @@ const uint16_t SD_INIT_TIMEOUT = 2000; /** erase timeout ms */ const uint16_t SD_ERASE_TIMEOUT = 10000; /** read timeout ms */ -const uint16_t SD_READ_TIMEOUT = 300; +const uint16_t SD_READ_TIMEOUT = 1000; /** write time out ms */ -const uint16_t SD_WRITE_TIMEOUT = 600; +const uint16_t SD_WRITE_TIMEOUT = 2000; //------------------------------------------------------------------------------ // SD card commands /** GO_IDLE_STATE - init card in spi mode if CS low */ diff --git a/src/SdCard/SdSpiCard.cpp b/src/SdCard/SdSpiCard.cpp index 520cd0b5..5414e6dc 100644 --- a/src/SdCard/SdSpiCard.cpp +++ b/src/SdCard/SdSpiCard.cpp @@ -543,7 +543,7 @@ bool SdSpiCard::writeBlock(uint32_t blockNumber, const uint8_t* src) { #if CHECK_FLASH_PROGRAMMING // wait for flash programming to complete if (!waitNotBusy(SD_WRITE_TIMEOUT)) { - error(SD_CARD_ERROR_WRITE_TIMEOUT); + error(SD_CARD_ERROR_FLASH_PROGRAMMING); goto fail; } // response is r2 so get and check two bytes for nonzero diff --git a/src/SdFat.h b/src/SdFat.h index 2bd7ca93..307990b2 100644 --- a/src/SdFat.h +++ b/src/SdFat.h @@ -37,7 +37,7 @@ #endif // INCLUDE_SDIOS //------------------------------------------------------------------------------ /** SdFat version */ -#define SD_FAT_VERSION "1.0.8" +#define SD_FAT_VERSION "1.0.11" //============================================================================== /** * \class SdBaseFile @@ -52,9 +52,9 @@ class SdBaseFile : public FatFile { * * \param[in] oflag Values for \a oflag are constructed by a * bitwise-inclusive OR of open flags. see - * FatFile::open(FatFile*, const char*, uint8_t). + * FatFile::open(FatFile*, const char*, oflag_t). */ - SdBaseFile(const char* path, uint8_t oflag) : FatFile(path, oflag) {} + SdBaseFile(const char* path, oflag_t oflag) : FatFile(path, oflag) {} }; //----------------------------------------------------------------------------- #if ENABLE_ARDUINO_FEATURES @@ -71,9 +71,9 @@ class SdFile : public PrintFile { * * \param[in] oflag Values for \a oflag are constructed by a * bitwise-inclusive OR of open flags. see - * FatFile::open(FatFile*, const char*, uint8_t). + * FatFile::open(FatFile*, const char*, oflag_t). */ - SdFile(const char* path, uint8_t oflag) : PrintFile(path, oflag) {} + SdFile(const char* path, oflag_t oflag) : PrintFile(path, oflag) {} }; #endif // #if ENABLE_ARDUINO_FEATURES //----------------------------------------------------------------------------- @@ -311,12 +311,12 @@ class SdFat : public SdFileSystem { public: #if IMPLEMENT_SPI_PORT_SELECTION || defined(DOXYGEN) SdFat() { - m_spi.setPort(0); + m_spi.setPort(nullptr); } /** Constructor with SPI port selection. * \param[in] spiPort SPI port number. */ - explicit SdFat(uint8_t spiPort) { + explicit SdFat(SPIClass* spiPort) { m_spi.setPort(spiPort); } #endif // IMPLEMENT_SPI_PORT_SELECTION @@ -444,12 +444,12 @@ class SdFatEX : public SdFileSystem { public: #if IMPLEMENT_SPI_PORT_SELECTION || defined(DOXYGEN) SdFatEX() { - m_spi.setPort(0); + m_spi.setPort(nullptr); } /** Constructor with SPI port selection. * \param[in] spiPort SPI port number. */ - explicit SdFatEX(uint8_t spiPort) { + explicit SdFatEX(SPIClass* spiPort) { m_spi.setPort(spiPort); } #endif // IMPLEMENT_SPI_PORT_SELECTION diff --git a/src/SdFatConfig.h b/src/SdFatConfig.h index 8c6b92be..e6f1d858 100644 --- a/src/SdFatConfig.h +++ b/src/SdFatConfig.h @@ -69,14 +69,16 @@ * the SPI bus may not be shared with other devices in this mode. */ #define ENABLE_EXTENDED_TRANSFER_CLASS 0 -//----------------------------------------------------------------------------- +//------------------------------------------------------------------------------ /** - * If the symbol USE_STANDARD_SPI_LIBRARY is nonzero, the classes SdFat and - * SdFatEX use the standard Arduino SPI.h library. If USE_STANDARD_SPI_LIBRARY - * is zero, an optimized custom SPI driver is used if it exists. + * If the symbol USE_STANDARD_SPI_LIBRARY is zero, an optimized custom SPI + * driver is used if it exists. If the symbol USE_STANDARD_SPI_LIBRARY is + * one, the standard Arduino SPI.h library is used with SPI. If the symbol + * USE_STANDARD_SPI_LIBRARY is two, the SPI port can be selected with the + * constructors SdFat(SPIClass* spiPort) and SdFatEX(SPIClass* spiPort). */ #define USE_STANDARD_SPI_LIBRARY 0 -//----------------------------------------------------------------------------- +//------------------------------------------------------------------------------ /** * If the symbol ENABLE_SOFTWARE_SPI_CLASS is nonzero, the class SdFatSoftSpi * will be defined. If ENABLE_EXTENDED_TRANSFER_CLASS is also nonzero, @@ -84,8 +86,25 @@ */ #define ENABLE_SOFTWARE_SPI_CLASS 0 //------------------------------------------------------------------------------ +/** If the symbol USE_FCNTL_H is nonzero, open flags for access modes O_RDONLY, + * O_WRONLY, O_RDWR and the open modifiers O_APPEND, O_CREAT, O_EXCL, O_SYNC + * will be defined by including the system file fcntl.h. + */ +#if defined(__AVR__) +// AVR fcntl.h does not define open flags. +#define USE_FCNTL_H 0 +#elif defined(PLATFORM_ID) +// Particle boards - use fcntl.h. +#define USE_FCNTL_H 1 +#elif defined(__arm__) +// ARM gcc defines open flags. +#define USE_FCNTL_H 1 +#else // defined(__AVR__) +#define USE_FCNTL_H 0 +#endif // defined(__AVR__) +//------------------------------------------------------------------------------ /** - * If CHECK_FLASH_PROGRAMMING is zero, overlap of single sector flash + * If CHECK_FLASH_PROGRAMMING is zero, overlap of single sector flash * programming and other operations will be allowed for faster write * performance. * @@ -190,7 +209,7 @@ /** * Determine the default SPI configuration. */ -#if defined(__STM32F1__) || defined(__STM32F4__) +#if defined(__STM32F1__) || defined(__STM32F4__) || defined(PLATFORM_ID) // has multiple SPI ports #define SD_HAS_CUSTOM_SPI 2 #elif defined(__AVR__)\ @@ -206,9 +225,9 @@ /** * Check if API to select HW SPI port is needed. */ -#if (USE_STANDARD_SPI_LIBRARY || SD_HAS_CUSTOM_SPI < 2) -#define IMPLEMENT_SPI_PORT_SELECTION 0 -#else // USE_STANDARD_SPI_LIBRARY +#if USE_STANDARD_SPI_LIBRARY > 1 || SD_HAS_CUSTOM_SPI > 1 #define IMPLEMENT_SPI_PORT_SELECTION 1 -#endif // USE_STANDARD_SPI_LIBRARY +#else // IMPLEMENT_SPI_PORT_SELECTION +#define IMPLEMENT_SPI_PORT_SELECTION 0 +#endif // IMPLEMENT_SPI_PORT_SELECTION #endif // SdFatConfig_h diff --git a/src/SpiDriver/SdSpiDriver.h b/src/SpiDriver/SdSpiDriver.h index 1c75ed91..563efe84 100644 --- a/src/SpiDriver/SdSpiDriver.h +++ b/src/SpiDriver/SdSpiDriver.h @@ -32,12 +32,12 @@ #include "SPI.h" #include "SdSpiBaseDriver.h" #include "SdFatConfig.h" -//----------------------------------------------------------------------------- +//------------------------------------------------------------------------------ /** SDCARD_SPI is defined if board has built-in SD card socket */ #ifndef SDCARD_SPI #define SDCARD_SPI SPI #endif // SDCARD_SPI -//----------------------------------------------------------------------------- +//------------------------------------------------------------------------------ /** * \class SdSpiLibDriver * \brief SdSpiLibDriver - use standard SPI library. @@ -48,6 +48,63 @@ class SdSpiLibDriver : public SdSpiBaseDriver { class SdSpiLibDriver { #endif // ENABLE_SOFTWARE_SPI_CLASS public: +#if IMPLEMENT_SPI_PORT_SELECTION + /** Activate SPI hardware. */ + void activate() { + m_spi->beginTransaction(m_spiSettings); + } + /** Deactivate SPI hardware. */ + void deactivate() { + m_spi->endTransaction(); + } + /** Initialize the SPI bus. + * + * \param[in] csPin SD card chip select pin. + */ + void begin(uint8_t csPin) { + m_csPin = csPin; + digitalWrite(csPin, HIGH); + pinMode(csPin, OUTPUT); + m_spi->begin(); + } + /** Receive a byte. + * + * \return The byte. + */ + uint8_t receive() { + return m_spi->transfer( 0XFF); + } + /** Receive multiple bytes. + * + * \param[out] buf Buffer to receive the data. + * \param[in] n Number of bytes to receive. + * + * \return Zero for no error or nonzero error code. + */ + uint8_t receive(uint8_t* buf, size_t n) { + for (size_t i = 0; i < n; i++) { + buf[i] = m_spi->transfer(0XFF); + } + return 0; + } + /** Send a byte. + * + * \param[in] data Byte to send + */ + void send(uint8_t data) { + m_spi->transfer(data); + } + /** Send multiple bytes. + * + * \param[in] buf Buffer for data to be sent. + * \param[in] n Number of bytes to send. + */ + void send(const uint8_t* buf, size_t n) { + for (size_t i = 0; i < n; i++) { + m_spi->transfer(buf[i]); + } + } +#else // IMPLEMENT_SPI_PORT_SELECTION /** Activate SPI hardware. */ void activate() { SDCARD_SPI.beginTransaction(m_spiSettings); @@ -103,6 +160,7 @@ class SdSpiLibDriver { SDCARD_SPI.transfer(buf[i]); } } +#endif // IMPLEMENT_SPI_PORT_SELECTION /** Set CS low. */ void select() { digitalWrite(m_csPin, LOW); @@ -118,12 +176,22 @@ class SdSpiLibDriver { void unselect() { digitalWrite(m_csPin, HIGH); } - +#if IMPLEMENT_SPI_PORT_SELECTION || defined(DOXYGEN) + /** Set SPI port. + * \param[in] spiPort Hardware SPI port. + */ + void setPort(SPIClass* spiPort) { + m_spi = spiPort ? spiPort : &SDCARD_SPI; + } private: + SPIClass* m_spi; +#else // IMPLEMENT_SPI_PORT_SELECTION + private: +#endif // IMPLEMENT_SPI_PORT_SELECTION SPISettings m_spiSettings; uint8_t m_csPin; }; -//----------------------------------------------------------------------------- +//------------------------------------------------------------------------------ /** * \class SdSpiAltDriver * \brief Optimized SPI class for access to SD and SDHC flash memory cards. @@ -184,10 +252,11 @@ class SdSpiAltDriver { } #if IMPLEMENT_SPI_PORT_SELECTION || defined(DOXYGEN) /** Set SPI port number. - * \param[in] portNumber Hardware SPI port number. + * \param[in] spiPort Hardware SPI port. */ - void setPort(uint8_t portNumber); - + void setPort(SPIClass* spiPort) { + m_spi = spiPort ? spiPort : &SDCARD_SPI; + } private: SPIClass* m_spi; #else // IMPLEMENT_SPI_PORT_SELECTION @@ -282,7 +351,7 @@ class SdSpiSoftDriver : public SdSpiBaseDriver { SoftSPI m_spi; }; #endif // ENABLE_SOFTWARE_SPI_CLASS || defined(DOXYGEN) -//----------------------------------------------------------------------------- +//------------------------------------------------------------------------------ // Choose SPI driver for SdFat and SdFatEX classes. #if USE_STANDARD_SPI_LIBRARY || !SD_HAS_CUSTOM_SPI /** SdFat uses Arduino library SPI. */ @@ -300,7 +369,7 @@ typedef SdSpiBaseDriver SdSpiDriver; // Don't need virtual driver. typedef SdFatSpiDriver SdSpiDriver; #endif // ENABLE_SOFTWARE_SPI_CLASS -//============================================================================= +//============================================================================== // Use of in-line for AVR to save flash. #ifdef __AVR__ //------------------------------------------------------------------------------ diff --git a/src/SpiDriver/SdSpiParticle.cpp b/src/SpiDriver/SdSpiParticle.cpp new file mode 100644 index 00000000..5d1a2289 --- /dev/null +++ b/src/SpiDriver/SdSpiParticle.cpp @@ -0,0 +1,103 @@ +/** + * Copyright (c) 2011-2018 Bill Greiman + * This file is part of the SdFat library for SD memory cards. + * + * MIT License + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ +#if defined(PLATFORM_ID) +#include "SdSpiDriver.h" +static volatile bool SPI_DMA_TransferCompleted = false; +//----------------------------------------------------------------------------- +static void SD_SPI_DMA_TransferComplete_Callback(void) { + SPI_DMA_TransferCompleted = true; +} +//------------------------------------------------------------------------------ +/** Set SPI options for access to SD/SDHC cards. + * + * \param[in] divisor SCK clock divider relative to the APB1 or APB2 clock. + */ +void SdSpiAltDriver::activate() { + m_spi->beginTransaction(m_spiSettings); +} +//------------------------------------------------------------------------------ +/** Initialize the SPI bus. + * + * \param[in] chipSelectPin SD card chip select pin. + */ +void SdSpiAltDriver::begin(uint8_t csPin) { + m_csPin = csPin; + m_spi->begin(m_csPin); + // Next line is redundant - begin(m_csPin) sets csPin to output mode. + pinMode(m_csPin, OUTPUT); + digitalWrite(m_csPin, HIGH); +} +//------------------------------------------------------------------------------ +/** + * End SPI transaction. + */ +void SdSpiAltDriver::deactivate() { + m_spi->endTransaction(); +} +//------------------------------------------------------------------------------ +/** Receive a byte. + * + * \return The byte. + */ +uint8_t SdSpiAltDriver::receive() { + return m_spi->transfer(0XFF); +} +//------------------------------------------------------------------------------ +/** Receive multiple bytes. + * + * \param[out] buf Buffer to receive the data. + * \param[in] n Number of bytes to receive. + * + * \return Zero for no error or nonzero error code. + */ +uint8_t SdSpiAltDriver::receive(uint8_t* buf, size_t n) { + SPI_DMA_TransferCompleted = false; + m_spi->transfer(nullptr, buf, n, SD_SPI_DMA_TransferComplete_Callback); + while (!SPI_DMA_TransferCompleted) {} + return 0; +} +//------------------------------------------------------------------------------ +/** Send a byte. + * + * \param[in] b Byte to send + */ +void SdSpiAltDriver::send(uint8_t b) { + m_spi->transfer(b); +} +//------------------------------------------------------------------------------ +/** Send multiple bytes. + * + * \param[in] buf Buffer for data to be sent. + * \param[in] n Number of bytes to send. + */ +void SdSpiAltDriver::send(const uint8_t* buf , size_t n) { + SPI_DMA_TransferCompleted = false; + + m_spi->transfer(const_cast(buf), nullptr, n, + SD_SPI_DMA_TransferComplete_Callback); + + while (!SPI_DMA_TransferCompleted) {} +} +#endif // defined(PLATFORM_ID) diff --git a/src/SpiDriver/SdSpiSAM3X.cpp b/src/SpiDriver/SdSpiSAM3X.cpp index 6f2f2bb8..2da85cda 100644 --- a/src/SpiDriver/SdSpiSAM3X.cpp +++ b/src/SpiDriver/SdSpiSAM3X.cpp @@ -167,7 +167,7 @@ uint8_t SdSpiAltDriver::receive(uint8_t* buf, size_t n) { int rtn = 0; #if USE_SAM3X_DMAC // clear overrun error - uint32_t s = pSpi->SPI_SR; + pSpi->SPI_SR; spiDmaRX(buf, n); spiDmaTX(0, n); @@ -213,6 +213,6 @@ void SdSpiAltDriver::send(const uint8_t* buf , size_t n) { #endif // #if USE_SAM3X_DMAC while ((pSpi->SPI_SR & SPI_SR_TXEMPTY) == 0) {} // leave RDR empty - uint8_t b = pSpi->SPI_RDR; + pSpi->SPI_RDR; } #endif // defined(__SAM3X8E__) || defined(__SAM3X8H__) diff --git a/src/SpiDriver/SdSpiSTM32.cpp b/src/SpiDriver/SdSpiSTM32.cpp index 64e19f4d..629775ee 100644 --- a/src/SpiDriver/SdSpiSTM32.cpp +++ b/src/SpiDriver/SdSpiSTM32.cpp @@ -32,17 +32,6 @@ #error Unknown STM32 type #endif // defined(__STM32F1__) //------------------------------------------------------------------------------ -static SPIClass m_SPI1(1); -#if BOARD_NR_SPI >= 2 -static SPIClass m_SPI2(2); -#endif // BOARD_NR_SPI >= 2 -#if BOARD_NR_SPI >= 3 -static SPIClass m_SPI3(3); -#endif // BOARD_NR_SPI >= 3 -#if BOARD_NR_SPI > 3 -#error BOARD_NR_SPI too large -#endif -//------------------------------------------------------------------------------ /** Set SPI options for access to SD/SDHC cards. * * \param[in] divisor SCK clock divider relative to the APB1 or APB2 clock. @@ -86,7 +75,7 @@ uint8_t SdSpiAltDriver::receive() { */ uint8_t SdSpiAltDriver::receive(uint8_t* buf, size_t n) { #if USE_STM32_DMA - return m_spi->dmaTransfer(0, buf, n); + return m_spi->dmaTransfer(nullptr, buf, n); #else // USE_STM32_DMA m_spi->read(buf, n); return 0; @@ -108,23 +97,9 @@ void SdSpiAltDriver::send(uint8_t b) { */ void SdSpiAltDriver::send(const uint8_t* buf , size_t n) { #if USE_STM32_DMA - m_spi->dmaTransfer(const_cast(buf), 0, n); + m_spi->dmaTransfer(const_cast(buf), nullptr, n); #else // USE_STM32_DMA m_spi->write(const_cast(buf), n); #endif // USE_STM32_DMA } -//------------------------------------------------------------------------------ -void SdSpiAltDriver::setPort(uint8_t portNumber) { - m_spi = &m_SPI1; -#if BOARD_NR_SPI >= 2 - if (portNumber == 2) { - m_spi = &m_SPI2; - } -#endif // BOARD_NR_SPI >= 2 -#if BOARD_NR_SPI >= 3 - if (portNumber == 3) { - m_spi = &m_SPI3; - } -#endif // BOARD_NR_SPI >= 2 -} #endif // defined(__STM32F1__) || defined(__STM32F4__) diff --git a/src/sdios.h b/src/sdios.h index 0d15fc23..6054623a 100644 --- a/src/sdios.h +++ b/src/sdios.h @@ -30,4 +30,4 @@ */ #include "FatLib/fstream.h" #include "FatLib/ArduinoStream.h" -#endif // sdios_h \ No newline at end of file +#endif // sdios_h