![]() |
Parola for Arduino
2.0
Text effects for Parola modular hardware
|
An additional set of text animations
A zone is a contiguous sequence of one or more display modules (LED matrices) and has all the attributes of the original displays - animation, speed, font, spacing, etc. This allows complex displays to be created. For example, one part can show relatively static text while a different one has animation and movement.
From version 2.0 of the library, a matrix display can be treated as a single contiguous set of modules or it can be split into multiple 'virtual' displays (zones). Prior to version 2.0 of the library, each display was effectively a single zone.
For backward compatibility, all the previous methods remain. If the new library is compiled with older user source code, the library defaults to using a single zone for the whole display. New zone-aware functions have an added parameter to specify the zone to which the method invocation applies. Methods invoked without specifying a zone (such as set*()) usually have their effect applied to all zones. This detailed in the class documentation.
The standard MD_MAX72xx library font can be substituted with a user font definition conforming to the font encoding rules in the MD_MAX72XX documentation. New fonts can be designed with the the MD_MAX72xx font builder.
Each zone can have its own substituted font. The default font can be reselected for the zone by specifying a NULL font table pointer.
Individual characters can be substituted for user character definitions. These can be added and deleted to individual zones as required.
The character data is the same format as a single character from the font definition file, and is held in a local lookup table that is parsed before loading the defined font character. If a character is specified with a code the same as an existing character, the existing data will be substituted for the new data.
ASCII 0 character ('\0') cannot be substituted as this denotes the end of string character for C++ and cannot be used in an actual string.
The library only retains a pointer to the user data definition, so the data must remain in scope. Also, any changes to the data storage in the calling program will be reflected by the library the next time the character is used.