Parola for Arduino 3.7
Text effects for LED Matrix modular hardware
|
#include <MD_Parola.h>
Public Member Functions | |
MD_PZone (void) | |
bool | begin (MD_MAX72XX *p) |
~MD_PZone (void) | |
Methods for core object control. | |
bool | zoneAnimate (void) |
bool | getStatus (void) |
void | getZone (uint8_t &zStart, uint8_t &zEnd) |
bool | isAnimationAdvanced (void) |
void | zoneClear (void) |
void | zoneReset (void) |
void | zoneShutdown (bool b) |
void | zoneSuspend (bool b) |
void | setZone (uint8_t zStart, uint8_t zEnd) |
Support methods for visually adjusting the display. | |
uint8_t | getCharSpacing (void) |
uint8_t | getIntensity () |
bool | getInvert (void) |
uint16_t | getPause (void) |
uint16_t | getScrollSpacing (void) |
uint16_t | getSpeed (void) |
uint16_t | getSpeedIn (void) |
uint16_t | getSpeedOut (void) |
uint32_t | getSynchTime (void) |
textPosition_t | getTextAlignment (void) |
uint16_t | getTextWidth (const uint8_t *p) |
boolean | getZoneEffect (zoneEffect_t ze) |
void | setCharSpacing (uint8_t cs) |
void | setIntensity (uint8_t intensity) |
void | setInvert (uint8_t invert) |
void | setPause (uint16_t pause) |
void | setScrollSpacing (uint16_t space) |
void | setSpeed (uint16_t speed) |
void | setSpeedInOut (uint16_t speedIn, uint16_t speedOut) |
void | setSpriteData (const uint8_t *inData, uint8_t inWidth, uint8_t inFrames, const uint8_t *outData, uint8_t outWidth, uint8_t outFrames) |
void | setSynchTime (uint32_t zt) |
void | setTextAlignment (textPosition_t ta) |
void | setTextBuffer (const char *pb) |
void | setTextEffect (textEffect_t effectIn, textEffect_t effectOut) |
void | setZoneEffect (boolean b, zoneEffect_t ze) |
Support methods for fonts and characters. | |
bool | addChar (uint16_t code, const uint8_t *data) |
bool | delChar (uint16_t code) |
MD_MAX72XX::fontType_t * | getZoneFont (void) |
void | setZoneFont (MD_MAX72XX::fontType_t *fontDef) |
Support methods for graphics. | |
void | getZoneExtent (uint16_t &startColumn, uint16_t &endColumn) |
void | getTextExtent (uint16_t &startColumn, uint16_t &endColumn) |
Zone object for the Parola library. This class contains the text to be displayed and all the attributes for the zone.
MD_PZone::MD_PZone | ( | void | ) |
Class constructor.
Instantiate a new instance of the class.
MD_PZone::~MD_PZone | ( | void | ) |
Class Destructor.
Release allocated memory and does the necessary to clean up once the object is no longer required.
bool MD_PZone::addChar | ( | uint16_t | code, |
const uint8_t * | data | ||
) |
Add a user defined character to the replacement list.
Add a replacement characters to the user defined list. The character data must be the same as for a single character in the font definition file. If a character is specified with a code the same as an existing character the existing data will be substituted for the new data. A character code of 0 is illegal as this denotes the end of string character for C++ and cannot be used in an actual string. The library does not copy the in the data in the data definition but only retains a pointer to the data, so any changes to the data storage in the calling program will be reflected in the library.
code | code for the character data. |
data | pointer to the character data. |
bool MD_PZone::begin | ( | MD_MAX72XX * | p | ) |
Initialize the object.
Initialize the object data. This will be called to initialize new data for the class that cannot be done during the object creation.
p | pointer to the parent's MD_MAX72xx object. |
bool MD_PZone::delChar | ( | uint16_t | code | ) |
Delete a user defined character to the replacement list.
Delete a replacement character to the user defined list. A character code of 0 is illegal as this denotes the end of string character for C++ and cannot be used in an actual string.
code | ASCII code for the character data. |
uint8_t MD_PZone::getCharSpacing | ( | void | ) |
Get the zone inter-character spacing in columns.
uint8_t MD_PZone::getIntensity | ( | ) |
Get the zone brightness.
Get the intensity (brightness) of the display.
bool MD_PZone::getInvert | ( | void | ) |
uint16_t MD_PZone::getPause | ( | void | ) |
uint16_t MD_PZone::getScrollSpacing | ( | void | ) |
Get the horizontal Scroll spacing.
See the setScrollSpacing() method
uint16_t MD_PZone::getSpeed | ( | void | ) |
Get the zone animation speed.
See the setSpeed() method. This should be replaced with either getSpeedIn() or getSpeedOut() unless it is known that both directions are running at the same speed.
uint16_t MD_PZone::getSpeedIn | ( | void | ) |
uint16_t MD_PZone::getSpeedOut | ( | void | ) |
bool MD_PZone::getStatus | ( | void | ) |
Get the completion status.
Return the current completion status for the zone animation.
See comments for the MD_Parola getZoneStatus() method.
uint32_t MD_PZone::getSynchTime | ( | void | ) |
Get the zone animation start time.
See the setSynchTime() method
textPosition_t MD_PZone::getTextAlignment | ( | void | ) |
Get the current text alignment specification.
void MD_PZone::getTextExtent | ( | uint16_t & | startColumn, |
uint16_t & | endColumn | ||
) |
Get the start and end column numbers for the text displayed.
Returns the start and end column numbers for the text displayed in the zone. This retains consistency between user code and library.
startColumn | the by-reference parameter that will hold the return value for the start column. |
endColumn | the by-reference parameter that will hold the return value for the end column. |
uint16_t MD_PZone::getTextWidth | ( | const uint8_t * | p | ) |
Get the width of text in columns
Calculate the width of the characters and the space between them using the current font and text settings.
p | pointer to a text string |
void MD_PZone::getZone | ( | uint8_t & | zStart, |
uint8_t & | zEnd | ||
) |
Get the start and end parameters for a zone.
See comments for the MD_Parola namesake method.
zStart | value for the start module number placed here [0..numZones-1]. |
zEnd | value for the end module number placed here [0..numZones-1]. |
boolean MD_PZone::getZoneEffect | ( | zoneEffect_t | ze | ) |
Get the value of specified display effect.
The display effect is one of the zoneEffect_t types. The returned value will be true if the attribute is set, false if the attribute is not set.
ze | the required text alignment. |
void MD_PZone::getZoneExtent | ( | uint16_t & | startColumn, |
uint16_t & | endColumn | ||
) |
Get the start and end column numbers for the zone.
Returns the start and end column numbers for the zone display. This retains consistency between user code and library.
startColumn | the by-reference parameter that will hold the return value for the start column. |
endColumn | the by-reference parameter that will hold the return value for the end column. |
MD_MAX72XX::fontType_t * MD_PZone::getZoneFont | ( | void | ) |
Get the display font.
Return the current font table pointer for this zone.
bool MD_PZone::isAnimationAdvanced | ( | void | ) |
Check if animation frame has advanced.
Check if the last call to zoneAnimate() resulted in the animation frame advancing by one or more frames in one or more zones.
void MD_PZone::setCharSpacing | ( | uint8_t | cs | ) |
Set the zone inter-character spacing in columns.
Set the number of blank columns between characters when they are displayed.
cs | space between characters in columns. |
void MD_PZone::setIntensity | ( | uint8_t | intensity | ) |
Set the zone brightness.
Set the intensity (brightness) of the display.
intensity | the intensity to set the display (0-15). |
void MD_PZone::setInvert | ( | uint8_t | invert | ) |
Invert the zone display.
Set the display to inverted (ON LED turns OFF and vice versa).
invert | true for inverted display, false for normal display |
void MD_PZone::setPause | ( | uint16_t | pause | ) |
Set the pause between ENTER and EXIT animations for this zone.
Between each entry and exit, the library will pause by the number of milliseconds specified to allow the viewer to read the message. For continuous scrolling displays this should be set to the same value as the display speed.
pause | the time, in milliseconds, between animations. |
void MD_PZone::setScrollSpacing | ( | uint16_t | space | ) |
Set the horizontal scrolling distance between messages.
When scrolling horizontally, the distance between the end of one message and the start of the next can be set using this method. Normal operation is for the message to be fully off the display before the new message starts. Set to zero for default behavior.
space | the spacing, in columns, between messages; zero for default behaviour.. |
void MD_PZone::setSpeed | ( | uint16_t | speed | ) |
Set the zone animation frame speed.
The speed of the display is the 'tick' time between animation frames. The lower this time the faster the animation; set it to zero to run as fast as possible.
This method will set the same value for both IN and OUT animations speed.
speed | the time, in milliseconds, between animation frames. |
void MD_PZone::setSpeedInOut | ( | uint16_t | speedIn, |
uint16_t | speedOut | ||
) |
Set separate IN and OUT zone animation frame speed.
The speed of the display is the 'tick' time between animation frames. The lower this time the faster the animation; set it to zero to run as fast as possible.
This method will set both the IN and OUT animations separately to the specified speed.
speedIn | the time, in milliseconds, between IN animation frames. |
speedOut | the time, in milliseconds, between OUT animation frames. |
void MD_PZone::setSpriteData | ( | const uint8_t * | inData, |
uint8_t | inWidth, | ||
uint8_t | inFrames, | ||
const uint8_t * | outData, | ||
uint8_t | outWidth, | ||
uint8_t | outFrames | ||
) |
Set data for user sprite effects.
Set up the data parameters for user sprite text entry/exit effects. See the comments for the namesake method in MD_Parola.
inData | pointer to the data table defining the entry sprite. |
inWidth | the width (in bytes) of each frame of the sprite. |
inFrames | the number of frames for the sprite. |
outData | pointer to the data table that is inWidth*InFrames in size. |
outWidth | the width (in bytes) of each frame of the sprite. |
outFrames | the number of frames for the sprite. |
void MD_PZone::setSynchTime | ( | uint32_t | zt | ) |
Set the zone animation start time.
Each zone animation has an associated start time. The start time defaults to the time when the zone is initialized. This method allows synchronization between zones by setting the same start time. Should be used in conjunction with the getSynchTime() method as the return value should only be treated as an internal reference and arbitrary values will result in irregular behavior.
zt | the required start time. |
void MD_PZone::setTextAlignment | ( | textPosition_t | ta | ) |
Set the text alignment within the zone.
Text alignment is specified as one of the values in textPosition_t.
ta | the required text alignment. |
void MD_PZone::setTextBuffer | ( | const char * | pb | ) |
Set the pointer to the text buffer for this zone.
Sets the text buffer to be a pointer to user data. See the comments for the namesake method in MD_Parola.
pb | pointer to the text buffer to be used. |
void MD_PZone::setTextEffect | ( | textEffect_t | effectIn, |
textEffect_t | effectOut | ||
) |
Set the entry and exit text effects for the zone.
See the comments for the namesake method in MD_Parola.
effectIn | the entry effect, one of the textEffect_t enumerated values. |
effectOut | the exit effect, one of the textEffect_t enumerated values. |
void MD_PZone::setZone | ( | uint8_t | zStart, |
uint8_t | zEnd | ||
) |
Set the start and end parameters for a zone.
See comments for the MD_Parola namesake method.
zStart | the first module number for the zone [0..numZones-1]. |
zEnd | the last module number for the zone [0..numZones-1]. |
void MD_PZone::setZoneEffect | ( | boolean | b, |
zoneEffect_t | ze | ||
) |
Set the zone display effect.
The display effect is one of the zoneEffect_t types, and this will be set (true) or reset (false) depending on the boolean value. The resulting zone display will be modified as per the required effect.
b | set the value if true, reset the value if false |
ze | the required text alignment. |
void MD_PZone::setZoneFont | ( | MD_MAX72XX::fontType_t * | fontDef | ) |
Set the display font.
See comments for the namesake Parola method.
fontDef | Pointer to the font definition to be used. |
bool MD_PZone::zoneAnimate | ( | void | ) |
Animate the zone.
Animate using the currently specified text and animation parameters. This method is invoked from the main Parola object.
void MD_PZone::zoneClear | ( | void | ) |
Clear the zone.
See comments for the MD_Parola namesake method.
void MD_PZone::zoneReset | ( | void | ) |
Reset the current zone animation to restart.
See comments for the MD_Parola namesake method.
void MD_PZone::zoneShutdown | ( | bool | b | ) |
Shutdown or resume zone hardware.
See comments for the MD_Parola namesake method.
b | boolean value to shutdown (true) or resume (false). |
void MD_PZone::zoneSuspend | ( | bool | b | ) |
Suspend or resume zone updates.
See comments for the MD_Parola namesake method.
b | boolean value to suspend (true) or resume (false). |