KSM edits to RA8875

Dependents:   Liz_Test_Code

Revision:
125:7a0b70f56550
Parent:
124:1690a7ae871c
Child:
127:db7f2c704693
--- a/RA8875.h	Sun Jul 31 20:59:01 2016 +0000
+++ b/RA8875.h	Mon Aug 01 22:31:42 2016 +0000
@@ -13,8 +13,9 @@
 /// of the parallel port options.
 ///
 /// The controller additionally supports backlight control (via PWM), keypad scanning
-/// (for a 4 x 5 matrix) and resistive touch-panel support. Others have provides
-/// support for a capacitive touch screen.
+/// (for a 4 x 5 matrix) and resistive touch-panel support. Recently support for a 
+/// capacitive touch screen was integrated, in a manner that makes the resistive and
+/// capactive interfaces nearly identical.
 ///
 /// @section Display_Config Display Configuration
 ///
@@ -219,7 +220,7 @@
 /// the top-left corner of the display, and the width (x) extends positive to the
 /// right and the height (y) extends positive toward the bottom.
 ///
-/// @caution As there are both graphics and text commands, one must take care to use
+/// @note As there are both graphics and text commands, one must take care to use
 /// the proper coordinate system for each. Some of the text APIs are in units
 /// of column and row, which is measured in character positions (and dependent
 /// on the font size), where other text APIs permit pixel level positioning.
@@ -368,6 +369,7 @@
     ///
     typedef RetCode_t (* PrintCallback_T)(filecmd_t cmd, uint8_t * buffer, uint16_t size);
     
+    /// Idle reason provided in the Idle Callback
     typedef enum {
         unknown,            ///< reason has not been assigned (this should not happen)
         status_wait,        ///< driver is polling the status register while busy
@@ -380,24 +382,44 @@
     /// Idle Callback 
     ///
     /// This defines the interface for an idle callback. That is, when the 
-    /// driver is held up, pending some event, it can call a registered
+    /// driver is held up, pending some event, it can call a previously registered
     /// idle function. This could be most useful for servicing a watchdog.
     ///
     /// The user code, which is notified via this API, can force the idle
     /// to abort, by returning the external_abort value back to the driver.
-    ///
-    /// @param info informs the callback why it is idle.
+    /// It is important to note that the abort could leave the driver in
+    /// an undesireable state, so this should be used with care.
+    ///
+    /// @note Should it be called the BusyCallback? It is true, that it will
+    ///     call this function when the RA8875 is busy, but this is also
+    ///     when the CPU is largely idle.
+    ///
+    /// @code
+    /// RetCode_t myIdle_handler(RA8875::IdleReason_T reason)
+    /// {
+    ///     idleFlasher = !idleFlasher;
+    ///     if (it_has_been_too_long())
+    ///         return external_abort;
+    ///     else
+    ///         return noerror;
+    /// }
+    /// @endcode
+    ///
+    /// @param reason informs the callback why it is idle.
     /// @returns noerror to allow the driver continue waiting.
     /// @returns external_abort if the pending action should be aborted.
     ///
-    typedef RetCode_t (* IdleCallback_T)(IdleReason_T info);
+    typedef RetCode_t (* IdleCallback_T)(IdleReason_T reason);
 
-    /// Constructor for a display based on the RAiO RA8875 
-    /// display controller (use for TouchScreen: Resistive or none)
+    /// Basic constructor for a display based on the RAiO RA8875 
+    /// display controller, which can be used with no touchscreen,
+    /// or the RA8875 managed resistive touchscreen.
     ///
     /// This constructor differs from the alternate by supportting
     /// either No Touch Screen, or the RA8875 built-in resistive
-    /// touch screen.
+    /// touch screen. If the application requires the use of the
+    /// capacitive touchscreen, the alternate constructor should 
+    /// be used.
     ///
     /// This configures the registers and calls the @ref init method.
     ///
@@ -434,6 +456,21 @@
     /// This constructor differs from the alternate by including support
     /// for the Capactive Touch screen.
     ///
+    /// @code
+    /// #include "RA8875.h"
+    /// RA8875 lcd(p5, p6, p7, p12, NC, p9,p10,p13, "tft");
+    /// 
+    /// int main()
+    /// {
+    ///     lcd.init();
+    ///     lcd.printf("printing 3 x 2 = %d", 3*2);
+    ///     lcd.circle(400,25, 25, BrightRed);
+    ///     TouchCode_t tp = lcd.TouchPanelReadable();
+    ///     if (tp == touch)
+    ///         ...
+    /// }
+    /// @endcode
+    ///
     /// @param[in] mosi is the SPI master out slave in pin on the mbed.
     /// @param[in] miso is the SPI master in slave out pin on the mbed.
     /// @param[in] sclk is the SPI shift clock pin on the mbed.
@@ -470,7 +507,7 @@
     /// @param[in] color_bpp can be either 8 or 16, but must be consistent
     ///             with the width and height parameters. This parameter is optional
     ///             and the default is 16.
-    /// @param[in] power defines if the display should be left in the power-on or off state.
+    /// @param[in] poweron defines if the display should be left in the power-on or off state.
     ///            If power is true (on), the backlight is set to 100%. This parameter is optional
     ///             and the default is true (on). See @ref Power.
     /// @param[in] keypadon defines if the keypad support should be enabled. This parameter is optional
@@ -486,6 +523,7 @@
     RetCode_t init(int width = 480, int height = 272, int color_bpp = 16, 
         bool poweron = true, bool keypadon = true, bool touchscreeenon = true);
 
+
     /// Get a pointer to the error code.
     ///
     /// This method returns a pointer to a text string that matches the
@@ -494,6 +532,7 @@
     /// @param[in] code is the return value from RetCode_t to look up.
     /// @returns a pointer to the text message representing code. If code
     ///     is not a valid value, then it returns the text for bad_parameter;
+    ///
     const char * GetErrorMessage(RetCode_t code);
     
     
@@ -523,6 +562,7 @@
     /// @returns success/failure code. See @ref RetCode_t.
     ///
     RetCode_t SelectDrawingLayer(uint16_t layer);
+ 
     
     /// Get the currently active drawing layer.
     ///
@@ -544,6 +584,7 @@
     /// @returns the current drawing layer; 0 or 1.
     /// 
     uint16_t GetDrawingLayer(void);
+ 
     
     /// Set the Layer presentation mode.
     ///
@@ -566,6 +607,7 @@
     /// @returns success/failure code. See @ref RetCode_t.
     ///
     RetCode_t SetLayerMode(LayerMode_T mode);
+ 
     
     /// Get the Layer presentation mode.
     ///
@@ -574,6 +616,7 @@
     /// @returns layer mode.
     ///
     LayerMode_T GetLayerMode(void);
+ 
     
     /// Set the layer transparency for each layer.
     ///
@@ -595,6 +638,7 @@
     /// @returns success/failure code. See @ref RetCode_t.
     /// 
     RetCode_t SetLayerTransparency(uint8_t layer1, uint8_t layer2);
+ 
     
     /// Set the background color register used for transparency.
     ///
@@ -617,6 +661,7 @@
     ///
     color_t GetBackgroundTransparencyColor(void);
  
+ 
     /// Initialize theTouch Panel controller with default values 
     ///
     /// This activates the simplified touch panel init, which may work for
@@ -627,6 +672,7 @@
     ///
     RetCode_t TouchPanelInit(void);
         
+ 
     /// Initialize the Touch Panel controller with detailed settings.
     ///
     /// This is the detailed touch panel init, which provides the ability
@@ -703,6 +749,7 @@
     ///
     TouchCode_t TouchPanelReadable(point_t * TouchPoint = NULL);
 
+
     /// Get the reported touch gesture, if any.
     /// 
     /// If it could detect a gesture, it will return a value based on
@@ -727,12 +774,14 @@
     /// @returns count of touch points to communicate; 0 to 5.
     ///
     int TouchCount(void) { return numberOfTouchPoints; }
+
     
     /// Get the count of possible touch channels.
     ///
     /// @returns count of touch channels supported by the hardware.
     ///
     int TouchChannels(void);
+
     
     /// Get the Touch ID value for a specified touch channel.
     ///
@@ -753,6 +802,7 @@
     /// @returns 0 if an invalid channel is queried.
     ///
     uint8_t TouchID(uint8_t channel = 0) { return (channel < 5) ? touchInfo[channel].touchID : touchInfo[0].touchID; }
+
     
     /// Get the Touch Code for a touch channel.
     ///
@@ -766,6 +816,7 @@
     ///
     TouchCode_t TouchCode(uint8_t channel = 0) { return (channel < 5) ? touchInfo[channel].touchCode : touchInfo[0].touchCode; }
 
+
     /// Get the coordinates for a touch channel.
     ///
     /// This returns the (X,Y) coordinates for a touch channel.
@@ -780,6 +831,7 @@
     /// @returns channel 0 information if an invalid channel is queried.
     ///
     point_t TouchCoordinates(uint8_t channel = 0)  { return (channel < 5) ? touchInfo[channel].coordinates : touchInfo[0].coordinates; }
+
     
     /// Poll the TouchPanel and on a touch event return the a to d filtered x, y coordinates.
     ///
@@ -803,6 +855,7 @@
     ///
     TouchCode_t TouchPanelA2DFiltered(int *x, int *y);
 
+
     /// Poll the TouchPanel and on a touch event return the a to d raw x, y coordinates.
     ///
     /// This method reads the touch controller, which has a 10-bit range for each the
@@ -825,6 +878,7 @@
     ///         - release:  indicates a release, touch coordinates are returned.
     ///
     TouchCode_t TouchPanelA2DRaw(int *x, int *y);
+
     
     /// Wait for a touch panel touch and return it.
     /// 
@@ -917,6 +971,7 @@
     ///
     RetCode_t TouchPanelCalibrate(tpMatrix_t * matrix = NULL);
 
+
     /// Perform the touch panel calibration process.
     ///
     /// This method provides the easy "shortcut" to calibrating the touch panel.
@@ -937,6 +992,7 @@
     ///
     RetCode_t TouchPanelCalibrate(const char * msg, tpMatrix_t * matrix = NULL, int maxwait_s = 15);
 
+
     /// Set the calibration matrix for the touch panel.
     ///
     /// This method is used to set the calibration matrix for the touch panel. After
@@ -961,6 +1017,7 @@
     ///
     RetCode_t TouchPanelSetMatrix(tpMatrix_t * matrix);
    
+
 #if 0
     /// Append interrupt handler for specific RA8875 interrupt source
     ///
@@ -988,13 +1045,14 @@
     void UnAppendISR(uint8_t bISRType);
 #endif
 
+
     /// Initialize the keypad interface on the RA8875 controller.
     ///
     /// Enables the keypad subsystem. It will scan the 4 x 5 matrix
     /// and make available key presses. 
     ///
     /// @note See section 5-13 of RAIO RA8875 data sheet for more details.
-    /// @caution When using the display from buy-display.com, be sure that
+    /// @note When using the display from buy-display.com, be sure that
     ///     the option for the keypad is configured on the hardware.
     ///
     /// All parameters are optional.
@@ -1013,6 +1071,7 @@
         uint8_t longTimeAdjustment = 0,
         bool interruptEnable = false, bool wakeupEnable = false);
 
+
     /// Create Key Code definitions for the key matrix.
     ///
     /// This API provides a table of 22 key-code assignments for the matrix of keys.
@@ -1021,7 +1080,7 @@
     ///
     /// In this way, a keypad could easily emulate a piece of a keyboard, transforming
     /// 0 - 20 into the values 0, '0', '1', '2', '3', '4', '5', '6', '7', '8',
-    /// '9', '+', '-', '*' , '/', '=', '<bs>', '<cr>', and so on...
+    /// '9', '+', '-', '*' , '/', '=', '(bs)', '(cr)', and so on...
     ///
     /// @code
     /// //        Return Value by Row, Column   Example reassignment
@@ -1052,15 +1111,17 @@
     ///
     RetCode_t SetKeyMap(const uint8_t * CodeList = NULL);
 
+
     /// Determine if a key has been hit
     ///
     /// @returns true if a key has been hit
     ///
     bool readable();
 
+
     /// Blocking read of the keypad.
     ///
-    /// @caution: This is a blocking read, so it is important to first call _kbhit()
+    /// @note: This is a blocking read, so it is important to first call _kbhit()
     ///         to avoid hanging your processes.
     ///
     /// A keypad connected to the RA8875 is connected in a matrix of 4 rows and 5 columns.
@@ -1096,6 +1157,7 @@
     ///
     RetCode_t WriteCommandW(uint8_t command, uint16_t data);
 
+
     /// Write a command to the display
     ///
     /// This is a high level command, and may invoke several primitives.
@@ -1106,6 +1168,7 @@
     /// @returns success/failure code. See @ref RetCode_t.
     ///
     virtual RetCode_t WriteCommand(unsigned char command, unsigned int data = 0xFFFF);
+
     
     /// Write a data word to the display
     ///
@@ -1115,6 +1178,7 @@
     /// @returns success/failure code. See @ref RetCode_t.
     ///
     RetCode_t WriteDataW(uint16_t data);
+
     
     /// Write a data byte to the display
     ///
@@ -1124,6 +1188,7 @@
     /// @returns success/failure code. See @ref RetCode_t.
     ///
     virtual RetCode_t WriteData(unsigned char data);
+
     
     /// Read a command register
     ///
@@ -1132,6 +1197,7 @@
     ///
     unsigned char ReadCommand(unsigned char command);
     
+
     /// Read a data byte from the display
     ///
     /// This is a high level command, and may invoke several primitives.
@@ -1139,6 +1205,7 @@
     /// @returns data that was read.
     ///
     unsigned char ReadData(void);
+
     
     /// Read a word from the display
     ///
@@ -1148,6 +1215,7 @@
     ///
     uint16_t ReadDataW(void);
 
+
     /// Read the display status
     ///
     /// This is a high level command, and may invoke several primitives.
@@ -1156,17 +1224,20 @@
     ///
     unsigned char ReadStatus(void);
 
+
     /// get the width in pixels of the currently active font
     ///
     /// @returns font width in pixels.
     ///    
     dim_t fontwidth(void);
     
+
     /// get the height in pixels of the currently active font
     ///
     /// @returns font height in pixels.
     ///    
     dim_t fontheight(void);
+
     
     /// get the number of colums based on the currently active font
     ///
@@ -1174,24 +1245,28 @@
     ///    
     virtual int columns(void);
 
+
     /// get the number of rows based on the currently active font
     ///
     /// @returns number of rows.
     ///    
     virtual int rows(void);
 
+
     /// get the screen width in pixels
     ///
     /// @returns screen width in pixels.
     ///
     virtual dim_t width(void);
 
+
     /// get the screen height in pixels
     ///
     /// @returns screen height in pixels.
     ///
     virtual dim_t height(void);
 
+
     /// get the color depth in bits per pixel.
     ///
     /// @returns 8 or 16 only.
@@ -1206,6 +1281,7 @@
     ///
     virtual RetCode_t locate(textloc_t column, textloc_t row);
 
+
     /// Prepare the controller to write text to the screen by positioning
     /// the cursor.
     ///
@@ -1220,6 +1296,7 @@
     ///
     RetCode_t SetTextCursor(loc_t x, loc_t y);
 
+
     /// Prepare the controller to write text to the screen by positioning
     /// the cursor.
     ///
@@ -1234,6 +1311,7 @@
     ///
     RetCode_t SetTextCursor(point_t p);
 
+
     /// Get the current cursor position in pixels.
     ///
     /// @code
@@ -1246,18 +1324,21 @@
     ///
     point_t GetTextCursor(void);
     
+
     /// Get the current cursor horizontal position in pixels.
     ///
     /// @returns cursor position horizontal offset.
     ///
     loc_t GetTextCursor_X(void);
 
+
     /// Get the current cursor vertical position in pixels.
     ///
     /// @returns cursor position vertical offset.
     ///
     loc_t GetTextCursor_Y(void);
 
+
     /// Configure additional Cursor Control settings.
     ///
     /// This API lets you modify other cursor control settings; 
@@ -1270,12 +1351,13 @@
     /// @returns success/failure code. See @ref RetCode_t
     ///
     RetCode_t SetTextCursorControl(cursor_t cursor = NOCURSOR, bool blink = false);
+
     
     /// Select the built-in ISO 8859-X font to use next.
     ///
     /// Supported fonts: ISO 8859-1, -2, -3, -4
     ///
-    /// @caution This only modifies the choice of font from the RA8875 internal
+    /// @note This only modifies the choice of font from the RA8875 internal
     ///     fonts.
     ///
     /// @param[in] font selects the font for the subsequent text rendering.
@@ -1286,6 +1368,7 @@
     ///
     RetCode_t SetTextFont(font_t font = ISO8859_1);
     
+
     /// Sets the display orientation.
     ///
     /// @note This command does not let you "merge" text onto an existing
@@ -1294,7 +1377,7 @@
     ///       to sending text to the screen, or you end with a blended
     ///       image that is probably not as intended.
     ///
-    /// @caution This command only operates on the RA8875 internal fonts.
+    /// @note This command only operates on the RA8875 internal fonts.
     ///
     /// @code
     ///     lcd.cls();
@@ -1327,12 +1410,13 @@
     ///
     RetCode_t SetOrientation(orientation_t angle = normal);
     
+
     /// Control the font behavior.
     ///
     /// This command lets you make several modifications to any text that
     /// will be written to the screen.
     ///
-    /// @caution This command only operates on the RA8875 internal fonts.
+    /// @note This command only operates on the RA8875 internal fonts.
     ///
     /// Options can be combined:
     /// Default:
@@ -1364,13 +1448,14 @@
         VerticalScale vScale = 1, 
         alignment_t alignment = align_none);
     
+
     /// Control the font size of the RA8875 internal fonts.
     ///
     /// This command lets you set the font enlargement for both horizontal
     /// and vertical, independent of the rotation, background, and 
     /// alignment. See @ref SetTextFontControl.
     ///
-    /// @caution This command only operates on the RA8875 internal fonts.
+    /// @note This command only operates on the RA8875 internal fonts.
     ///
     /// @param[in] hScale defaults to 1, but can be 1, 2, 3, or 4,
     ///     and scales the font size by this amount.
@@ -1392,6 +1477,7 @@
     ///
     RetCode_t SetTextFontSize(HorizontalScale hScale = 1, VerticalScale vScale = -1);
     
+
     /// put a character on the screen.
     ///
     /// @param[in] c is the character.
@@ -1399,6 +1485,7 @@
     ///
     virtual int _putc(int c);
 
+
     /// Write string of text to the display
     ///
     /// @code
@@ -1408,6 +1495,7 @@
     /// @param[in] string is the null terminated string to send to the display.
     ///
     void puts(const char * string);
+
     
     /// Write string of text to the display at the specified location.
     ///
@@ -1421,6 +1509,7 @@
     ///
     void puts(loc_t x, loc_t y, const char * string);
     
+
     /// Prepare the controller to write binary data to the screen by positioning
     /// the memory cursor.
     ///
@@ -1429,6 +1518,7 @@
     /// @returns success/failure code. See @ref RetCode_t.
     ///
     virtual RetCode_t SetGraphicsCursor(loc_t x, loc_t y);
+
     
     /// Prepare the controller to read binary data from the screen by positioning
     /// the memory read cursor.
@@ -1439,6 +1529,7 @@
     ///
     virtual RetCode_t SetGraphicsCursorRead(loc_t x, loc_t y);
     
+
     /// Set the window, constraining where items are written to the screen.
     ///
     /// After setting the window, text and graphics are constrained to this
@@ -1465,6 +1556,7 @@
     ///
     virtual RetCode_t window(rect_t r);
     
+
     /// Set the window, constraining where items are written to the screen.
     ///
     /// After setting the window, text and graphics are constrained to this
@@ -1495,6 +1587,7 @@
     ///
     virtual RetCode_t window(loc_t x = 0, loc_t y = 0, dim_t width = (dim_t)-1, dim_t height = (dim_t)-1);
     
+
     /// Clear either the specified layer, or the active layer.
     ///
     /// The behavior is to clear the whole screen for the specified
@@ -1514,6 +1607,7 @@
     /// @returns success/failure code. See @ref RetCode_t.
     ///
     virtual RetCode_t cls(uint16_t layers = 0);
+
     
     /// Clear the screen, or clear only the active window.
     ///
@@ -1532,12 +1626,14 @@
     ///
     RetCode_t clsw(RA8875::Region_t region = FULLWINDOW);
 
+
     /// Set the background color.
     ///
     /// @param[in] color is expressed in 16-bit format.
     /// @returns success/failure code. See @ref RetCode_t.
     ///
     virtual RetCode_t background(color_t color);
+
     
     /// Set the background color.
     ///
@@ -1548,6 +1644,7 @@
     ///
     virtual RetCode_t background(unsigned char r, unsigned char g, unsigned char b);
     
+
     /// Set the foreground color.
     ///
     /// @param[in] color is expressed in 16-bit format.
@@ -1555,6 +1652,7 @@
     ///
     virtual RetCode_t foreground(color_t color);
     
+
     /// Set the foreground color.
     ///
     /// @param[in] r is the red element of the color.
@@ -1564,12 +1662,14 @@
     ///
     virtual RetCode_t foreground(unsigned char r, unsigned char g, unsigned char b);
     
+    
     /// Get the current foreground color value.
     ///
     /// @returns the current foreground color.
     ///
     color_t GetForeColor(void);
     
+    
     /// Draw a pixel in the specified color.
     ///
     /// @note Unlike many other operations, this does not
@@ -1580,12 +1680,14 @@
     ///
     virtual RetCode_t pixel(point_t p, color_t color);
     
+    
     /// Draw a pixel in the current foreground color.
     ///
     /// @param[in] p is the point_t defining the location.
     /// @returns success/failure code. See @ref RetCode_t.
     ///
     virtual RetCode_t pixel(point_t p);
+    
         
     /// Draw a pixel in the specified color.
     ///
@@ -1599,6 +1701,7 @@
     ///
     virtual RetCode_t pixel(loc_t x, loc_t y, color_t color);
     
+    
     /// Draw a pixel in the current foreground color.
     ///
     /// @param[in] x is the horizontal offset to this pixel.
@@ -1607,6 +1710,7 @@
     ///
     virtual RetCode_t pixel(loc_t x, loc_t y);
     
+    
     /// Get a pixel from the display.
     ///
     /// @param[in] x is the horizontal offset to this pixel.
@@ -1615,6 +1719,7 @@
     ///
     virtual color_t getPixel(loc_t x, loc_t y);
     
+    
     /// Write a stream of pixels to the display.
     ///
     /// @param[in] p is a pointer to a color_t array to write.
@@ -1625,6 +1730,7 @@
     ///
     virtual RetCode_t pixelStream(color_t * p, uint32_t count, loc_t x, loc_t y);
     
+    
     /// Get a stream of pixels from the display.
     ///
     /// @param[in] p is a pointer to a color_t array to accept the stream.
@@ -1635,6 +1741,7 @@
     ///
     virtual RetCode_t getPixelStream(color_t * p, uint32_t count, loc_t x, loc_t y);
     
+    
     /// Write a boolean stream to the display.
     ///
     /// This takes a bit stream in memory and using the current color settings
@@ -1654,6 +1761,7 @@
     /// @returns success/failure code. See @ref RetCode_t.
     ///
     virtual RetCode_t booleanStream(loc_t x, loc_t y, dim_t w, dim_t h, const uint8_t * boolStream);
+
     
     /// Draw a line in the specified color
     ///
@@ -1667,6 +1775,7 @@
     ///
     RetCode_t line(point_t p1, point_t p2, color_t color);
 
+
     /// Draw a line
     ///
     /// Draws a line using the foreground color setting.
@@ -1676,6 +1785,7 @@
     /// @returns success/failure code. See @ref RetCode_t.
     ///
     RetCode_t line(point_t p1, point_t p2);
+
     
     /// Draw a line in the specified color
     ///
@@ -1691,6 +1801,7 @@
     ///
     RetCode_t line(loc_t x1, loc_t y1, loc_t x2, loc_t y2, color_t color);
 
+
     /// Draw a line
     ///
     /// Draws a line using the foreground color setting.
@@ -1703,6 +1814,7 @@
     ///
     RetCode_t line(loc_t x1, loc_t y1, loc_t x2, loc_t y2);
 
+
     /// Draw a rectangle in the specified color
     ///
     /// @note As a side effect, this changes the current
@@ -1715,7 +1827,8 @@
     ///
     RetCode_t rect(rect_t rect, color_t color, fill_t fillit = NOFILL);
     
-     /// Draw a filled rectangle in the specified color
+
+    /// Draw a filled rectangle in the specified color
     ///
     /// @note As a side effect, this changes the current
     ///     foreground color for subsequent operations.
@@ -1727,6 +1840,7 @@
     ///
     RetCode_t fillrect(rect_t rect, color_t color, fill_t fillit = FILL);
 
+
     /// Draw a rectangle in the specified color
     ///
     /// @note As a side effect, this changes the current
@@ -1743,6 +1857,7 @@
     RetCode_t rect(loc_t x1, loc_t y1, loc_t x2, loc_t y2, 
         color_t color, fill_t fillit = NOFILL);
 
+
     /// Draw a filled rectangle in the specified color
     ///
     /// @note As a side effect, this changes the current
@@ -1759,6 +1874,7 @@
     virtual RetCode_t fillrect(loc_t x1, loc_t y1, loc_t x2, loc_t y2, 
         color_t color, fill_t fillit = FILL);
 
+
     /// Draw a rectangle
     ///
     /// Draws a rectangle using the foreground color setting.
@@ -1773,6 +1889,7 @@
     RetCode_t rect(loc_t x1, loc_t y1, loc_t x2, loc_t y2, 
         fill_t fillit = NOFILL);
 
+
     /// Draw a filled rectangle with rounded corners using the specified color.
     ///
     /// This draws a rounded rectangle. A numbers of checks are made on the values,
@@ -1800,6 +1917,7 @@
     RetCode_t fillroundrect(loc_t x1, loc_t y1, loc_t x2, loc_t y2, 
         dim_t radius1, dim_t radius2, color_t color, fill_t fillit = FILL);
 
+
     /// Draw a filled rectangle with rounded corners using the specified color.
     ///
     /// This draws a rounded rectangle. A numbers of checks are made on the values,
@@ -1824,6 +1942,7 @@
     RetCode_t fillroundrect(rect_t r, 
         dim_t radius1, dim_t radius2, color_t color, fill_t fillit = FILL);
 
+
     /// Draw a rectangle with rounded corners using the specified color.
     ///
     /// This draws a rounded rectangle. A numbers of checks are made on the values,
@@ -1848,6 +1967,7 @@
     RetCode_t roundrect(rect_t r, 
         dim_t radius1, dim_t radius2, color_t color, fill_t fillit = NOFILL);
 
+
     /// Draw a rectangle with rounded corners using the specified color.
     ///
     /// This draws a rounded rectangle. A numbers of checks are made on the values,
@@ -1875,6 +1995,7 @@
     RetCode_t roundrect(loc_t x1, loc_t y1, loc_t x2, loc_t y2, 
         dim_t radius1, dim_t radius2, color_t color, fill_t fillit = NOFILL);
 
+
     /// Draw a rectangle with rounded corners.
     ///
     /// This draws a rounded rectangle. A numbers of checks are made on the values,
@@ -1898,6 +2019,7 @@
     RetCode_t roundrect(loc_t x1, loc_t y1, loc_t x2, loc_t y2, 
         dim_t radius1, dim_t radius2, fill_t fillit = NOFILL);
 
+
     /// Draw a triangle in the specified color.
     ///
     /// @note As a side effect, this changes the current
@@ -1916,6 +2038,7 @@
     RetCode_t triangle(loc_t x1, loc_t y1, loc_t x2, loc_t y2, 
         loc_t x3, loc_t y3, color_t color, fill_t fillit = NOFILL);
     
+
     /// Draw a filled triangle in the specified color.
     ///
     /// @note As a side effect, this changes the current
@@ -1934,6 +2057,7 @@
     RetCode_t filltriangle(loc_t x1, loc_t y1, loc_t x2, loc_t y2, 
         loc_t x3, loc_t y3, color_t color, fill_t fillit = FILL);
 
+
     /// Draw a triangle
     ///
     /// Draws a triangle using the foreground color setting.
@@ -1959,10 +2083,12 @@
     /// @param[in] p defines the center of the circle.
     /// @param[in] radius defines the size of the circle.
     /// @param[in] color defines the foreground color.
+    /// @param[in] fillit is optional to FILL the circle. default is NOFILL.
     /// @returns success/failure code. See @ref RetCode_t.
     ///
     RetCode_t circle(point_t p, dim_t radius, color_t color, fill_t fillit = NOFILL);
 
+
     /// Draw a filled circle using the specified color.
     ///
     /// @note As a side effect, this changes the current
@@ -1971,20 +2097,24 @@
     /// @param[in] p defines the center of the circle.
     /// @param[in] radius defines the size of the circle.
     /// @param[in] color defines the foreground color.
+    /// @param[in] fillit is optional to FILL the circle. default is FILL.
     /// @returns success/failure code. See @ref RetCode_t.
     ///
     RetCode_t fillcircle(point_t p, dim_t radius, color_t color, fill_t fillit = FILL);
 
+
     /// Draw a circle.
     ///
     /// Draws a circle using the foreground color setting.
     ///
     /// @param[in] p defines the center of the circle.
     /// @param[in] radius defines the size of the circle.
+    /// @param[in] fillit is optional to FILL the circle. default is NOFILL.
     /// @returns success/failure code. See @ref RetCode_t.
     ///
     RetCode_t circle(point_t p, dim_t radius, fill_t fillit = NOFILL);
 
+
     /// Draw a circle using the specified color.
     ///
     /// @note As a side effect, this changes the current
@@ -1994,10 +2124,12 @@
     /// @param[in] y is the vertical center of the circle.
     /// @param[in] radius defines the size of the circle.
     /// @param[in] color defines the foreground color.
+    /// @param[in] fillit is optional to FILL the circle. default is NOFILL.
     /// @returns success/failure code. See @ref RetCode_t.
     ///
     RetCode_t circle(loc_t x, loc_t y, dim_t radius, color_t color, fill_t fillit = NOFILL);
 
+
     /// Draw a filled circle using the specified color.
     ///
     /// @note As a side effect, this changes the current
@@ -2007,10 +2139,12 @@
     /// @param[in] y is the vertical center of the circle.
     /// @param[in] radius defines the size of the circle.
     /// @param[in] color defines the foreground color.
+    /// @param[in] fillit is optional to FILL the circle. default is FILL.
     /// @returns success/failure code. See @ref RetCode_t.
     ///
     RetCode_t fillcircle(loc_t x, loc_t y, dim_t radius, color_t color, fill_t fillit = FILL);
 
+
     /// Draw a circle.
     ///
     /// Draws a circle using the foreground color setting.
@@ -2018,6 +2152,7 @@
     /// @param[in] x is the horizontal center of the circle.
     /// @param[in] y is the vertical center of the circle.
     /// @param[in] radius defines the size of the circle.
+    /// @param[in] fillit is optional to FILL the circle. default is NOFILL.
     /// @returns success/failure code. See @ref RetCode_t.
     ///
     RetCode_t circle(loc_t x, loc_t y, dim_t radius, fill_t fillit = NOFILL);
@@ -2038,6 +2173,7 @@
     RetCode_t ellipse(loc_t x, loc_t y, dim_t radius1, dim_t radius2, 
         color_t color, fill_t fillit = NOFILL);
 
+
     /// Draw a filled Ellipse using the specified color
     ///
     /// @note As a side effect, this changes the current
@@ -2054,6 +2190,7 @@
     RetCode_t fillellipse(loc_t x, loc_t y, dim_t radius1, dim_t radius2, 
         color_t color, fill_t fillit = FILL);
 
+
     /// Draw an Ellipse
     ///
     /// Draws it using the foreground color setting.
@@ -2067,6 +2204,7 @@
     ///
     RetCode_t ellipse(loc_t x, loc_t y, dim_t radius1, dim_t radius2, fill_t fillit = NOFILL);
     
+
     /// Control display power
     ///
     /// @param[in] on when set to true will turn on the display, when false it is turned off.
@@ -2074,12 +2212,14 @@
     ///
     RetCode_t Power(bool on);
 
+
     /// Reset the display controller via the Software Reset interface.
     ///
     /// @returns success/failure code. See @ref RetCode_t.
     ///
     RetCode_t Reset(void);
     
+
     /// Set backlight brightness.
     ///
     /// When the built-in PWM is used to control the backlight, this 
@@ -2089,6 +2229,7 @@
     /// @returns success/failure code. See @ref RetCode_t.
     ///
     RetCode_t Backlight_u8(unsigned char brightness);
+
     
     /// Get backlight brightness.
     ///
@@ -2106,12 +2247,14 @@
     ///
     RetCode_t Backlight(float brightness);
 
+
     /// Get backlight brightness.
     ///
     /// @returns backlight setting from 0 (off) to 1.0 (full on).
     /// 
     float GetBacklight(void);
 
+
     /// Select a User Font for all subsequent text.
     ///
     /// @note Tool to create the fonts is accessible from its creator
@@ -2124,24 +2267,33 @@
     ///
     virtual RetCode_t SelectUserFont(const uint8_t * font = NULL);
 
-    typedef uint8_t byte;
 
     /// Get the RGB value for a DOS color.
     ///
+    /// @code
+    ///     color_t color = DOSColor(12);
+    /// @endcode
+    ///
     /// @param[in] i is the color, in the range 0 to 15;
     /// @returns the RGB color of the selected index, or 0 
     ///     if the index is out of bounds.
     ///
     color_t DOSColor(int i);
 
+
     /// Get the color name (string) for a DOS color.
     ///
+    /// @code
+    ///     printf("color is %s\n", DOSColorNames(12));
+    /// @endcode
+    ///
     /// @param[in] i is the color, in the range 0 to 15;
     /// @returns a pointer to a string with the color name,
     ///     or NULL if the index is out of bounds.
     /// 
     const char * DOSColorNames(int i);
 
+
     /// Advanced method indicating the start of a graphics stream.
     ///
     /// This is called prior to a stream of pixel data being sent.
@@ -2158,6 +2310,7 @@
     /// @returns error code.
     ///
     virtual RetCode_t _StartGraphicsStream(void);
+
     
     /// Advanced method to put a single color pixel to the screen.
     ///
@@ -2165,10 +2318,15 @@
     /// See @ref _StartGraphicsStream() is called, and it should be followed 
     /// by _EndGraphicsStream.
     ///
+    /// @code
+    ///     _putp(DOSColor(12));
+    /// @endcode
+    ///
     /// @param[in] pixel is a color value to be put on the screen.
     /// @returns error code.
     ///
     virtual RetCode_t _putp(color_t pixel);
+
     
     /// Advanced method indicating the end of a graphics stream.
     ///
@@ -2181,6 +2339,7 @@
     ///
     virtual RetCode_t _EndGraphicsStream(void);
 
+
     /// Set the SPI port frequency (in Hz).
     ///
     /// This uses the mbed SPI driver, and is therefore dependent on
@@ -2209,7 +2368,8 @@
     /// @returns success/failure code. See @ref RetCode_t.
     ///
     RetCode_t frequency(unsigned long Hz = RA8875_DEFAULT_SPI_FREQ, unsigned long Hz2 = 0);
-    
+
+
     /// This method captures the specified area as a 24-bit bitmap file.
     ///
     /// Even though this is a 16-bit display, the stored image is in
@@ -2228,6 +2388,7 @@
     /// @return success or error code.
     ///
     RetCode_t PrintScreen(loc_t x, loc_t y, dim_t w, dim_t h, const char *Name_BMP);
+
     
     /// This method captures the specified area as a 24-bit bitmap file
     /// and delivers it to the previously attached callback.
@@ -2248,6 +2409,7 @@
     /// @return success or error code.
     ///
     RetCode_t PrintScreen(loc_t x, loc_t y, dim_t w, dim_t h);
+
     
     /// PrintScreen callback registration.
     ///
@@ -2260,6 +2422,7 @@
     ///
     void AttachPrintHandler(PrintCallback_T callback = NULL) { c_callback = callback; }
 
+
     /// PrintScreen callback registration.
     ///
     /// This method attaches a c++ class method as a callback of type PrintCallback_T.
@@ -2275,10 +2438,11 @@
         method_callback = (uint32_t (FPointerDummy::*)(uint32_t, uint8_t *, uint16_t))method;
     }
 
+
     /// This method captures the specified area as a 24-bit bitmap file,
     /// including the option of layer selection.
     ///
-    /// @caution This method is deprecated as the alternate PrintScreen API
+    /// @note This method is deprecated as the alternate PrintScreen API
     ///         automatically examines the display layer configuration.
     ///         Therefore, calls to this API will ignore the layer parameter
     ///         and automatically execute the other method.
@@ -2295,10 +2459,11 @@
     /// @return success or error code.
     ///
     RetCode_t PrintScreen(uint16_t layer, loc_t x, loc_t y, dim_t w, dim_t h, const char *Name_BMP);
+
     
     /// idle callback registration.
     ///
-    /// This method attaches a simple c-compatible callback of type XXXXXXXXXXX.
+    /// This method attaches a simple c-compatible callback of type IdleCallback_T.
     /// Then, at any time when the display driver is waiting, it will call the
     /// registered function. This is probably most useful if you want to service
     /// a watchdog, when you may have called an API that will "hang" waiting