add screen library
This commit is contained in:
		| @@ -0,0 +1,68 @@ | ||||
| 32 | ||||
| 45 | ||||
| 46 | ||||
| 47 | ||||
| 48 | ||||
| 49 | ||||
| 50 | ||||
| 51 | ||||
| 52 | ||||
| 53 | ||||
| 54 | ||||
| 55 | ||||
| 56 | ||||
| 57 | ||||
| 58 | ||||
| 63 | ||||
| 65 | ||||
| 66 | ||||
| 67 | ||||
| 68 | ||||
| 69 | ||||
| 70 | ||||
| 71 | ||||
| 72 | ||||
| 73 | ||||
| 74 | ||||
| 75 | ||||
| 76 | ||||
| 77 | ||||
| 78 | ||||
| 79 | ||||
| 80 | ||||
| 81 | ||||
| 82 | ||||
| 83 | ||||
| 84 | ||||
| 85 | ||||
| 86 | ||||
| 87 | ||||
| 88 | ||||
| 89 | ||||
| 90 | ||||
| 97 | ||||
| 98 | ||||
| 99 | ||||
| 100 | ||||
| 101 | ||||
| 102 | ||||
| 103 | ||||
| 104 | ||||
| 105 | ||||
| 106 | ||||
| 107 | ||||
| 108 | ||||
| 109 | ||||
| 110 | ||||
| 111 | ||||
| 112 | ||||
| 113 | ||||
| 114 | ||||
| 115 | ||||
| 116 | ||||
| 117 | ||||
| 118 | ||||
| 119 | ||||
| 120 | ||||
| 121 | ||||
| 122 | ||||
| @@ -0,0 +1 @@ | ||||
| 63 | ||||
| @@ -0,0 +1,3 @@ | ||||
| 43 | ||||
| 45 | ||||
| 63 | ||||
							
								
								
									
										1
									
								
								ide-touchgfx-gen/TouchGFX/generated/fonts/cache/ApplicationFontProvider.cache
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								ide-touchgfx-gen/TouchGFX/generated/fonts/cache/ApplicationFontProvider.cache
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| {"typographies":[["Default","verdana.ttf",20,4],["Large","verdana.ttf",40,4],["Small","verdana.ttf",10,4]],"generate_font_format":"0"} | ||||
							
								
								
									
										1
									
								
								ide-touchgfx-gen/TouchGFX/generated/fonts/cache/ApplicationFontProviderHpp.cache
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								ide-touchgfx-gen/TouchGFX/generated/fonts/cache/ApplicationFontProviderHpp.cache
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| {"typographies":[["Default","verdana.ttf",20,4],["Large","verdana.ttf",40,4],["Small","verdana.ttf",10,4]],"generate_font_format":"0"} | ||||
							
								
								
									
										70
									
								
								ide-touchgfx-gen/TouchGFX/generated/fonts/cache/Font_verdana_10_4bppCpp.cache
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										70
									
								
								ide-touchgfx-gen/TouchGFX/generated/fonts/cache/Font_verdana_10_4bppCpp.cache
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,70 @@ | ||||
| BA | ||||
| F0 | ||||
| 32 | ||||
| 45 | ||||
| 46 | ||||
| 47 | ||||
| 48 | ||||
| 49 | ||||
| 50 | ||||
| 51 | ||||
| 52 | ||||
| 53 | ||||
| 54 | ||||
| 55 | ||||
| 56 | ||||
| 57 | ||||
| 58 | ||||
| 63 | ||||
| 65 | ||||
| 66 | ||||
| 67 | ||||
| 68 | ||||
| 69 | ||||
| 70 | ||||
| 71 | ||||
| 72 | ||||
| 73 | ||||
| 74 | ||||
| 75 | ||||
| 76 | ||||
| 77 | ||||
| 78 | ||||
| 79 | ||||
| 80 | ||||
| 81 | ||||
| 82 | ||||
| 83 | ||||
| 84 | ||||
| 85 | ||||
| 86 | ||||
| 87 | ||||
| 88 | ||||
| 89 | ||||
| 90 | ||||
| 97 | ||||
| 98 | ||||
| 99 | ||||
| 100 | ||||
| 101 | ||||
| 102 | ||||
| 103 | ||||
| 104 | ||||
| 105 | ||||
| 106 | ||||
| 107 | ||||
| 108 | ||||
| 109 | ||||
| 110 | ||||
| 111 | ||||
| 112 | ||||
| 113 | ||||
| 114 | ||||
| 115 | ||||
| 116 | ||||
| 117 | ||||
| 118 | ||||
| 119 | ||||
| 120 | ||||
| 121 | ||||
| 122 | ||||
							
								
								
									
										3
									
								
								ide-touchgfx-gen/TouchGFX/generated/fonts/cache/Font_verdana_20_4bppCpp.cache
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								ide-touchgfx-gen/TouchGFX/generated/fonts/cache/Font_verdana_20_4bppCpp.cache
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | ||||
| BA | ||||
| F0 | ||||
| 63 | ||||
							
								
								
									
										5
									
								
								ide-touchgfx-gen/TouchGFX/generated/fonts/cache/Font_verdana_40_4bppCpp.cache
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								ide-touchgfx-gen/TouchGFX/generated/fonts/cache/Font_verdana_40_4bppCpp.cache
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | ||||
| BA | ||||
| F0 | ||||
| 43 | ||||
| 45 | ||||
| 63 | ||||
| @@ -0,0 +1,38 @@ | ||||
| /* DO NOT EDIT THIS FILE */ | ||||
| /* This file is autogenerated by the text-database code generator */ | ||||
|  | ||||
| #ifndef APPLICATIONFONTPROVIDER_HPP | ||||
| #define APPLICATIONFONTPROVIDER_HPP | ||||
|  | ||||
| #include <touchgfx/FontManager.hpp> | ||||
|  | ||||
| namespace touchgfx | ||||
| { | ||||
|     class FlashDataReader; | ||||
| } | ||||
|  | ||||
| struct Typography | ||||
| { | ||||
|     static const touchgfx::FontId DEFAULT = 0; | ||||
|     static const touchgfx::FontId LARGE = 1; | ||||
|     static const touchgfx::FontId SMALL = 2; | ||||
| }; | ||||
|  | ||||
| struct TypographyFontIndex | ||||
| { | ||||
|     static const touchgfx::FontId DEFAULT = 0; // verdana_20_4bpp | ||||
|     static const touchgfx::FontId LARGE = 1;   // verdana_40_4bpp | ||||
|     static const touchgfx::FontId SMALL = 2;   // verdana_10_4bpp | ||||
|     static const uint16_t NUMBER_OF_FONTS = 3; | ||||
| }; | ||||
|  | ||||
| class ApplicationFontProvider : public touchgfx::FontProvider | ||||
| { | ||||
| public: | ||||
|     virtual touchgfx::Font* getFont(touchgfx::FontId typography); | ||||
|  | ||||
|     static void setFlashReader(touchgfx::FlashDataReader* /* flashReader */) { } | ||||
|     static touchgfx::FlashDataReader* getFlashReader() { return 0; } | ||||
| }; | ||||
|  | ||||
| #endif // APPLICATIONFONTPROVIDER_HPP | ||||
| @@ -0,0 +1,71 @@ | ||||
| /* DO NOT EDIT THIS FILE */ | ||||
| /* This file is autogenerated by the text-database code generator */ | ||||
|  | ||||
| #ifndef CACHEDFONT_HPP | ||||
| #define CACHEDFONT_HPP | ||||
|  | ||||
| #include <fonts/GeneratedFont.hpp> | ||||
| #include <fonts/FontCache.hpp> | ||||
|  | ||||
| namespace touchgfx | ||||
| { | ||||
| class CachedFont : public GeneratedFont | ||||
| { | ||||
| public: | ||||
|     CachedFont(const struct touchgfx::BinaryFontData* data, FontId id, FontCache* _cache, const GeneratedFont* _flashFont) | ||||
|         : GeneratedFont(0, //GlyphNode* | ||||
|                         data->numberOfGlyphs, | ||||
|                         data->height, | ||||
|                         data->pixBelowBase, | ||||
|                         data->bitsPerPixel, | ||||
|                         data->byteAlignRow, | ||||
|                         data->maxLeft, | ||||
|                         data->maxRight, | ||||
|                         0, //glyphDataPointer | ||||
|                         0, //Kerning table not used for cached font | ||||
|                         data->fallbackChar, | ||||
|                         data->ellipsisChar, | ||||
|                         0), //gsubTablePointer | ||||
|           fontId(id), | ||||
|           cache(_cache), | ||||
|           flashFont(_flashFont) | ||||
|     {} | ||||
|  | ||||
|     CachedFont() : GeneratedFont() {} | ||||
|  | ||||
|     using GeneratedFont::getGlyph; | ||||
|  | ||||
|     virtual const GlyphNode* getGlyph(Unicode::UnicodeChar unicode, const uint8_t*& pixelData, uint8_t& bitsPerPixel) const; | ||||
|  | ||||
|     virtual const uint8_t* getPixelData(const GlyphNode* glyph) const; | ||||
|  | ||||
|     virtual int8_t getKerning(Unicode::UnicodeChar prevChar, const GlyphNode* glyph) const; | ||||
|  | ||||
|     void setFontCache(FontCache& cache); | ||||
|     FontId getFontId() const | ||||
|     { | ||||
|         return fontId; | ||||
|     } | ||||
|  | ||||
|     virtual const uint16_t* getGSUBTable() const | ||||
|     { | ||||
|         if (gsubTable != 0) | ||||
|         { | ||||
|             return gsubTable; | ||||
|         } | ||||
|         return flashFont->getGSUBTable(); | ||||
|     } | ||||
|  | ||||
|     virtual void setGSUBTable(const uint16_t* table) | ||||
|     { | ||||
|         gsubTable = table; | ||||
|     } | ||||
|  | ||||
| private: | ||||
|     FontId fontId; | ||||
|     FontCache* cache; | ||||
|     const GeneratedFont* flashFont; | ||||
| }; | ||||
| } // namespace touchgfx | ||||
|  | ||||
| #endif // CACHEDFONT_HPP | ||||
| @@ -0,0 +1,94 @@ | ||||
| /* DO NOT EDIT THIS FILE */ | ||||
| /* This file is autogenerated by the text-database code generator */ | ||||
|  | ||||
| #ifndef FONTCACHE_HPP | ||||
| #define FONTCACHE_HPP | ||||
|  | ||||
| #include <fonts/ApplicationFontProvider.hpp> | ||||
| #include <touchgfx/Font.hpp> | ||||
| #include <touchgfx/TypedText.hpp> | ||||
|  | ||||
| namespace touchgfx | ||||
| { | ||||
| class CachedFont; | ||||
|  | ||||
| class FontDataReader | ||||
| { | ||||
| public: | ||||
|     virtual ~FontDataReader() { } | ||||
|     virtual void open() = 0; | ||||
|     virtual void close() = 0; | ||||
|     virtual void setPosition(uint32_t position) = 0; | ||||
|     virtual void readData(void* out, uint32_t numberOfBytes) = 0; | ||||
| }; | ||||
|  | ||||
| class FontCache | ||||
| { | ||||
| public: | ||||
|     FontCache(); | ||||
|     void setReader(FontDataReader* reader); | ||||
|     void clear(bool keepGsubTable = false); | ||||
|     void setMemory(uint8_t* memory, uint32_t size); | ||||
|     void initializeCachedFont(TypedText t, CachedFont* font, bool loadGsubTable = false); | ||||
|     bool cacheString(TypedText t, const Unicode::UnicodeChar* string); | ||||
|     bool cacheLigatures(CachedFont* font, TypedText t, const Unicode::UnicodeChar* string); | ||||
|  | ||||
|     const GlyphNode* getGlyph(Unicode::UnicodeChar unicode, FontId font) const; | ||||
|     uint32_t getMemoryUsage() | ||||
|     { | ||||
|         return memorySize - (gsubStart - top); | ||||
|     } | ||||
|  | ||||
|     void open(); | ||||
|     void close(); | ||||
|  | ||||
|     static inline const uint8_t* getPixelData(const GlyphNode* glyph) | ||||
|     { | ||||
|         return ((const uint8_t*)glyph) + SizeGlyphNode + 4; | ||||
|     } | ||||
|     static inline bool isCached(const GlyphNode* g) | ||||
|     { | ||||
|         return g->dataOffset == 0xFFFFFFFF; | ||||
|     } | ||||
|  | ||||
| private: | ||||
|     static const uint32_t SizeGlyphNode = 16; | ||||
|  | ||||
|     bool contains(Unicode::UnicodeChar unicode, FontId font) const; | ||||
|     void insert(Unicode::UnicodeChar unicode, FontId font, uint32_t bpp, bool& outOfMemory); | ||||
|     uint8_t* copyGlyph(uint8_t* top, Unicode::UnicodeChar unicode, FontId font, uint32_t bpp, bool& outOfMemory); | ||||
|  | ||||
|     void cacheData(uint32_t bpp, GlyphNode* first); | ||||
|     bool cacheSortedString(TypedText t); | ||||
|     bool createSortedString(const Unicode::UnicodeChar* string); | ||||
|     bool createSortedLigatures(CachedFont* font, TypedText t, const Unicode::UnicodeChar* string, ...); | ||||
|     bool sortSortedString(int n); | ||||
|  | ||||
|     void setPosition(uint32_t position); | ||||
|     void readData(void* out, uint32_t numberOfBytes); | ||||
|  | ||||
|     struct | ||||
|     { | ||||
|         uint8_t* first; //first glyphnode, glyph in cache; | ||||
|         uint8_t* last; //first glyphnode, glyph in cache; | ||||
|     } fontTable[MAX(TypographyFontIndex::NUMBER_OF_FONTS, 1)]; | ||||
|  | ||||
|     uint32_t memorySize; | ||||
|     uint8_t* memory;    //start of memory | ||||
|     uint8_t* top;       //first unused byte | ||||
|     uint8_t* gsubStart; //first address of GSUB tables, allocated in the end of the cache | ||||
|  | ||||
|     FontDataReader* reader; | ||||
|  | ||||
|     Unicode::UnicodeChar* sortedString; | ||||
|     //Must be bigger than BinaryFontData | ||||
|     static const uint32_t MAX_BUFFER_SIZE = 64; | ||||
|     char buffer[MAX_BUFFER_SIZE]; | ||||
|     uint32_t glyphDataOffset; | ||||
|     uint16_t numGlyphs; | ||||
|     uint16_t currentFileGlyphNumber; | ||||
|     GlyphNode currentFileGlyphNode; | ||||
| }; | ||||
| } // namespace touchgfx | ||||
|  | ||||
| #endif // FONTCACHE_HPP | ||||
| @@ -0,0 +1,133 @@ | ||||
| /* DO NOT EDIT THIS FILE */ | ||||
| /* This file is autogenerated by the text-database code generator */ | ||||
|  | ||||
| #ifndef GENERATEDFONT_HPP | ||||
| #define GENERATEDFONT_HPP | ||||
|  | ||||
| #include <touchgfx/ConstFont.hpp> | ||||
|  | ||||
| namespace touchgfx | ||||
| { | ||||
| /** | ||||
|  * An GeneratedFont has both glyph table and glyph data placed in a flash which | ||||
|  * supports random access read (i.e. not a NAND flash) | ||||
|  * | ||||
|  * @see ConstFont | ||||
|  */ | ||||
| class GeneratedFont : public ConstFont | ||||
| { | ||||
| public: | ||||
|     /** | ||||
|      * Construct the GeneratedFont. | ||||
|      * | ||||
|      * @param list                   The array of glyphs known to this font. | ||||
|      * @param size                   The number of glyphs in list. | ||||
|      * @param height                 The height in pixels of the highest character in this font. | ||||
|      * @param pixBelowBase           The maximum number of pixels that can be drawn below the | ||||
|      *                               baseline in this font. | ||||
|      * @param bitsPerPixel           The number of bits per pixel in this font. | ||||
|      * @param byteAlignRow           Are glyphs encoded using A4 format | ||||
|      * @param maxLeft                The maximum a character extends to the left. | ||||
|      * @param maxRight               The maximum a character extends to the right. | ||||
|      * @param glyphDataInternalFlash Pointer to the glyph data for the font, placed in internal | ||||
|      *                               flash. | ||||
|      * @param kerningList            pointer to the kerning data for the font, placed in internal | ||||
|      *                               flash. | ||||
|      * @param fallbackChar           The fallback character for the typography in case no glyph is | ||||
|      *                               available. | ||||
|      * @param ellipsisChar           The ellipsis character used for truncating long texts. | ||||
|      * @param gsubTable              Pointer to GSUB table. | ||||
|      */ | ||||
|     GeneratedFont(const GlyphNode* list, uint16_t size, uint16_t height, uint8_t pixBelowBase, uint8_t bitsPerPixel, uint8_t byteAlignRow, uint8_t maxLeft, uint8_t maxRight, const uint8_t* const* glyphDataInternalFlash, const KerningNode* kerningList, const Unicode::UnicodeChar fallbackChar, const Unicode::UnicodeChar ellipsisChar, const uint16_t* const gsubData); | ||||
|  | ||||
|     using ConstFont::getGlyph; | ||||
|  | ||||
|     /** | ||||
|      * Obtains a RAM-based pointer to the pixel data for the specified glyph. | ||||
|      * | ||||
|      * @param glyph The glyph to get the pixels data of. | ||||
|      * | ||||
|      * @return The pixel data of the glyph. | ||||
|      */ | ||||
|     virtual const uint8_t* getPixelData(const GlyphNode* glyph) const; | ||||
|  | ||||
|     /** | ||||
|      * Gets the kerning distance between two characters. | ||||
|      * | ||||
|      * @param prevChar The unicode value of the previous character. | ||||
|      * @param glyph    the glyph object for the current character. | ||||
|      * | ||||
|      * @return The kerning distance between prevChar and glyph char. | ||||
|      */ | ||||
|     virtual int8_t getKerning(Unicode::UnicodeChar prevChar, const GlyphNode* glyph) const; | ||||
|  | ||||
|     /** | ||||
|      * Gets GSUB table. | ||||
|      * | ||||
|      * @return The GSUB table or null if font has GSUB no table | ||||
|      */ | ||||
|     virtual const uint16_t* getGSUBTable() const | ||||
|     { | ||||
|         return gsubTable; | ||||
|     } | ||||
|  | ||||
| protected: | ||||
|     GeneratedFont() : ConstFont(0, 0, 0, 0, 0, 0, 0, 0, 0, 0), glyphData(0), kerningData(0), gsubTable(0) { } | ||||
|     const void* glyphData;          ///< Information describing the glyphs | ||||
|     const KerningNode* kerningData; ///< Information describing the kerning | ||||
|     const uint16_t* gsubTable;      ///< Information describing the GSUB tables | ||||
| }; | ||||
|  | ||||
| struct BinaryFontData | ||||
| { | ||||
|     uint32_t fontIndex;                // The font index (as used by TypedTextDatabase) | ||||
|     uint32_t sizeOfFontData;           // Size of the complete BinaryFont | ||||
|     uint32_t offsetToTable;            // GlyphNode[] | ||||
|     uint32_t offsetToKerning;          // KerningNode[] | ||||
|     uint32_t offsetToGlyphs;           // uint8_t[] | ||||
|     uint32_t offsetToGSUB;             // uint16_t[] | ||||
|     uint16_t numberOfGlyphs;           // Number of glyphs in Table and Glyphs | ||||
|     uint16_t height;                   // Font height from base | ||||
|     uint8_t  pixBelowBase;             // Max pixels below base | ||||
|     uint8_t  bitsPerPixel: 7;          // Bpp | ||||
|     uint8_t  byteAlignRow: 1;          // A4/A2/A1 | ||||
|     uint8_t  maxLeft;                  // The maximum a character extends to the left | ||||
|     uint8_t  maxRight;                 // The maximum a character extends to the right | ||||
|     Unicode::UnicodeChar fallbackChar; // Fallback Character for the font | ||||
|     Unicode::UnicodeChar ellipsisChar; // Ellipsis Character for the font | ||||
| }; | ||||
|  | ||||
| class BinaryFont : public GeneratedFont | ||||
| { | ||||
| public: | ||||
|     BinaryFont(const struct touchgfx::BinaryFontData* data) | ||||
|         : GeneratedFont((const GlyphNode*)((const uint8_t*)data + data->offsetToTable), | ||||
|                         data->numberOfGlyphs, | ||||
|                         data->height, | ||||
|                         data->pixBelowBase, | ||||
|                         data->bitsPerPixel, | ||||
|                         data->byteAlignRow, | ||||
|                         data->maxLeft, | ||||
|                         data->maxRight, | ||||
|                         0, | ||||
|                         (const KerningNode*)((const uint8_t*)data + data->offsetToKerning), | ||||
|                         data->fallbackChar, | ||||
|                         data->ellipsisChar, | ||||
|                         (data->offsetToGSUB == 0) ? 0 : (const uint16_t*)((const uint8_t*)data + data->offsetToGSUB)), | ||||
|           glyphData((const uint8_t*)data + data->offsetToGlyphs) | ||||
|     { | ||||
|     } | ||||
|  | ||||
|     BinaryFont() : GeneratedFont() {} | ||||
|  | ||||
|     virtual const uint8_t* getPixelData(const GlyphNode* glyph) const | ||||
|     { | ||||
|         const uint8_t* data = (const uint8_t*)glyphData; | ||||
|         return &(data[glyph->dataOffset]); | ||||
|     } | ||||
| protected: | ||||
|     const uint8_t* glyphData; | ||||
| }; | ||||
| } // namespace touchgfx | ||||
|  | ||||
| #endif // GENERATEDFONT_HPP | ||||
| @@ -0,0 +1,109 @@ | ||||
| /* DO NOT EDIT THIS FILE */ | ||||
| /* This file is autogenerated by the text-database code generator */ | ||||
|  | ||||
| #ifndef UNMAPPEDDATAFONT_HPP | ||||
| #define UNMAPPEDDATAFONT_HPP | ||||
|  | ||||
| #include <touchgfx/Font.hpp> | ||||
|  | ||||
| namespace touchgfx | ||||
| { | ||||
| /** | ||||
|  * An UnmappedDataFont has both glyph table and glyph data placed in a | ||||
|  * flash which does not support random access read (indirect | ||||
|  * access). A unicode table is located in a flash with random read | ||||
|  * access (direct access). | ||||
|  * | ||||
|  * @see Font, ConstFont | ||||
|  */ | ||||
| class UnmappedDataFont : public Font | ||||
| { | ||||
| public: | ||||
|     /** | ||||
|      * Construct the UnmappedDataFont. | ||||
|      * | ||||
|      * @param list                   The array of glyphs known to this font (indirect). | ||||
|      * @param unicodes               The array of unicodes known to this font (direct). | ||||
|      * @param size                   The number of glyphs in list. | ||||
|      * @param height                 The height in pixels of the highest character in this font. | ||||
|      * @param pixBelowBase           The maximum number of pixels that can be drawn below the | ||||
|      *                               baseline in this font. | ||||
|      * @param bitsPerPixel           The number of bits per pixel in this font. | ||||
|      * @param byteAlignRow           Are glyphs encoded using A4 format | ||||
|      * @param maxLeft                The maximum a character extends to the left. | ||||
|      * @param maxRight               The maximum a character extends to the right. | ||||
|      * @param glyphDataList          Pointer to pointers the glyph data for the font (indirect). | ||||
|      * @param kerningList            pointer to the kerning data for the font (direct). | ||||
|      * @param fallbackChar           The fallback character for the typography in case no glyph is | ||||
|      *                               available. | ||||
|      * @param ellipsisChar           The ellipsis character used for truncating long texts. | ||||
|      * @param gsubTable              Pointer to GSUB table (direct). | ||||
|      */ | ||||
|     UnmappedDataFont(const GlyphNode* list, const uint16_t* unicodes, uint16_t size, uint16_t height, uint8_t pixBelowBase, uint8_t bitsPerPixel, uint8_t byteAlignRow, uint8_t maxLeft, uint8_t maxRight, const uint8_t* const* glyphDataList, const KerningNode* kerningList, const Unicode::UnicodeChar fallbackChar, const Unicode::UnicodeChar ellipsisChar, const uint16_t* const gsubData); | ||||
|  | ||||
|     using Font::getGlyph; | ||||
|  | ||||
|     /** | ||||
|      * Gets the glyph data associated with the specified Unicode. The | ||||
|        GlyphNode is allocated in the buffer passed to the constructor. | ||||
|      * | ||||
|      * Please note that in case of Thai letters and Arabic letters | ||||
|      * where diacritics can be placed relative to the previous | ||||
|      * character(s), please use TextProvider::getNextLigature() | ||||
|      * instead as it will create a temporary GlyphNode that will be | ||||
|      * adjusted with respect to X/Y position. | ||||
|      * | ||||
|      * @param       unicode      The character to look up. | ||||
|      * @param       pixelData    Pointer to the pixel data for the glyph if the glyph is | ||||
|      *                           found. This is set by this method. | ||||
|      * @param [out] bitsPerPixel Reference where to place the number of bits per pixel. | ||||
|      * | ||||
|      * @return A pointer to the glyph node or null if the glyph was not found. | ||||
|      */ | ||||
|     virtual const GlyphNode* getGlyph(Unicode::UnicodeChar unicode, const uint8_t*& pixelData, uint8_t& bitsPerPixel) const; | ||||
|  | ||||
|     /** | ||||
|      * Obtains the address to the pixel data for the specified glyph. | ||||
|      * | ||||
|      * @param glyph The glyph to get the pixels data of. | ||||
|      * | ||||
|      * @return The address of the pixel data of the glyph. | ||||
|      */ | ||||
|     virtual const uint8_t* getPixelData(const GlyphNode* glyph) const; | ||||
|  | ||||
|     /** | ||||
|      * Gets the kerning distance between two characters. | ||||
|      * | ||||
|      * @param prevChar The unicode value of the previous character. | ||||
|      * @param glyph    the glyph object for the current character. | ||||
|      * | ||||
|      * @return The kerning distance between prevChar and glyph char. | ||||
|      */ | ||||
|     virtual int8_t getKerning(Unicode::UnicodeChar prevChar, const GlyphNode* glyph) const; | ||||
|  | ||||
|     /** | ||||
|      * Gets GSUB table. | ||||
|      * | ||||
|      * @return The GSUB table or null if font has GSUB no table | ||||
|      */ | ||||
|     virtual const uint16_t* getGSUBTable() const | ||||
|     { | ||||
|         return gsubTable; | ||||
|     } | ||||
|  | ||||
| protected: | ||||
|     UnmappedDataFont() : Font(0, 0, 0, 0, 0, 0, 0, 0), glyphList(0), unicodes(0), glyphDataList(0), kerningData(0), gsubTable(0) { } | ||||
|     int lookupUnicode(uint16_t unicode) const; | ||||
|  | ||||
|     const GlyphNode* glyphList;     ///< The list of glyphs | ||||
|     uint16_t listSize;              ///< The size of the list of glyphs | ||||
|     const uint16_t* unicodes;       ///< LookupTable with all unicodes in this font | ||||
|     const void* glyphDataList;      ///< Information describing the glyphs (list of pointers) | ||||
|     const KerningNode* kerningData; ///< Information describing the kerning | ||||
|     const uint16_t* gsubTable;      ///< Information describing the GSUB tables | ||||
|  | ||||
|     static GlyphNode glyphNodeBuffer; ///< Buffer for GlyphNodes read from unmapped flash | ||||
| }; | ||||
| } // namespace touchgfx | ||||
|  | ||||
| #endif // UNMAPPEDDATAFONT_HPP | ||||
| @@ -0,0 +1,24 @@ | ||||
| /* DO NOT EDIT THIS FILE */ | ||||
| /* This file is autogenerated by the text-database code generator */ | ||||
|  | ||||
| #include <fonts/ApplicationFontProvider.hpp> | ||||
| #include <fonts/GeneratedFont.hpp> | ||||
| #include <texts/TypedTextDatabase.hpp> | ||||
|  | ||||
| touchgfx::Font* ApplicationFontProvider::getFont(touchgfx::FontId typography) | ||||
| { | ||||
|     switch (typography) | ||||
|     { | ||||
|     case Typography::DEFAULT: | ||||
|         // verdana_20_4bpp | ||||
|         return const_cast<touchgfx::Font*>(TypedTextDatabase::getFonts()[0]); | ||||
|     case Typography::LARGE: | ||||
|         // verdana_40_4bpp | ||||
|         return const_cast<touchgfx::Font*>(TypedTextDatabase::getFonts()[1]); | ||||
|     case Typography::SMALL: | ||||
|         // verdana_10_4bpp | ||||
|         return const_cast<touchgfx::Font*>(TypedTextDatabase::getFonts()[2]); | ||||
|     default: | ||||
|         return 0; | ||||
|     } | ||||
| } | ||||
							
								
								
									
										58
									
								
								ide-touchgfx-gen/TouchGFX/generated/fonts/src/CachedFont.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								ide-touchgfx-gen/TouchGFX/generated/fonts/src/CachedFont.cpp
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,58 @@ | ||||
| /* DO NOT EDIT THIS FILE */ | ||||
| /* This file is autogenerated by the text-database code generator */ | ||||
|  | ||||
| #include <fonts/CachedFont.hpp> | ||||
|  | ||||
| namespace touchgfx | ||||
| { | ||||
| const uint8_t* CachedFont::getPixelData(const GlyphNode* glyph) const | ||||
| { | ||||
|     //if glyph is cached, then data is present just after the GlyphNode | ||||
|     if (FontCache::isCached(glyph)) | ||||
|     { | ||||
|         const uint8_t* data = FontCache::getPixelData(glyph); | ||||
|         return data; | ||||
|     } | ||||
|     else | ||||
|     { | ||||
|         return flashFont->getPixelData(glyph); | ||||
|     } | ||||
| } | ||||
|  | ||||
| const GlyphNode* CachedFont::getGlyph(Unicode::UnicodeChar unicode, const uint8_t*& pixelData, uint8_t& bitsPerPixel) const | ||||
| { | ||||
|     //look first in internal flash font | ||||
|     const GlyphNode* n = flashFont->find(unicode); | ||||
|  | ||||
|     if ((n == 0) && (cache != 0)) | ||||
|     { | ||||
|         //now look in FontCache table | ||||
|         n = cache->getGlyph(unicode, fontId); | ||||
|     } | ||||
|  | ||||
|     //revert to normal behaviour if still not found | ||||
|     if (n == 0 && unicode != 0 && unicode != '\n') | ||||
|     { | ||||
|         Unicode::UnicodeChar fallbackChar = flashFont->getFallbackChar(); | ||||
|         n = flashFont->find(fallbackChar); | ||||
|         if (n == 0) | ||||
|         { | ||||
|             n = cache->getGlyph(fallbackChar, fontId); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     if (n != 0) | ||||
|     { | ||||
|         pixelData = getPixelData(n); | ||||
|         bitsPerPixel = getBitsPerPixel(); | ||||
|         return n; | ||||
|     } | ||||
|     return (const GlyphNode*)0; | ||||
| } | ||||
|  | ||||
| int8_t CachedFont::getKerning(Unicode::UnicodeChar prevChar, const GlyphNode* glyph) const | ||||
| { | ||||
|     //Kerning is not supported by Font Caching | ||||
|     return 0; | ||||
| } | ||||
| } | ||||
							
								
								
									
										378
									
								
								ide-touchgfx-gen/TouchGFX/generated/fonts/src/FontCache.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										378
									
								
								ide-touchgfx-gen/TouchGFX/generated/fonts/src/FontCache.cpp
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,378 @@ | ||||
| /* DO NOT EDIT THIS FILE */ | ||||
| /* This file is autogenerated by the text-database code generator */ | ||||
|  | ||||
| #include <fonts/FontCache.hpp> | ||||
| #include <fonts/CachedFont.hpp> | ||||
| #include <texts/TypedTextDatabase.hpp> | ||||
| #include <touchgfx/TextProvider.hpp> | ||||
| #include <touchgfx/Utils.hpp> | ||||
| #include <cstring> | ||||
|  | ||||
| namespace touchgfx | ||||
| { | ||||
| FontCache::FontCache() | ||||
|     : memorySize(0), memory(0), top(0), gsubStart(0), reader(0) | ||||
| { | ||||
| } | ||||
|  | ||||
| void FontCache::clear(bool keepGsubTable /* = false */) | ||||
| { | ||||
|     memset(fontTable, 0, sizeof(fontTable)); | ||||
|  | ||||
|     //top is beginning of memory, no glyphs are cached yet | ||||
|     top = memory; | ||||
|  | ||||
|     if (!keepGsubTable) | ||||
|     { | ||||
|         //gsubStart points to end of memory (nothing loaded yet) | ||||
|         gsubStart = memory + memorySize; | ||||
|     } | ||||
| } | ||||
|  | ||||
| void FontCache::setMemory(uint8_t* _memory, uint32_t size) | ||||
| { | ||||
|     memory = _memory; | ||||
|     memorySize = size; | ||||
|  | ||||
|     clear(); | ||||
| } | ||||
|  | ||||
| void FontCache::setReader(FontDataReader* _reader) | ||||
| { | ||||
|     reader = _reader; | ||||
| } | ||||
|  | ||||
| const GlyphNode* FontCache::getGlyph(Unicode::UnicodeChar unicode, FontId font) const | ||||
| { | ||||
|     GlyphNode* g = (GlyphNode*)fontTable[font].first; | ||||
|     while (g) | ||||
|     { | ||||
|         if (g->unicode == unicode) | ||||
|         { | ||||
|             return g; | ||||
|         } | ||||
|         GlyphNode** next = (GlyphNode**)((uint8_t*)g + SizeGlyphNode); | ||||
|         g = *next; | ||||
|     } | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
| void FontCache::open() | ||||
| { | ||||
|     if (reader) | ||||
|     { | ||||
|         reader->open(); | ||||
|     } | ||||
| } | ||||
|  | ||||
| void FontCache::close() | ||||
| { | ||||
|     if (reader) | ||||
|     { | ||||
|         reader->close(); | ||||
|     } | ||||
| } | ||||
|  | ||||
| void FontCache::initializeCachedFont(TypedText t, CachedFont* font, bool loadGsubTable /*= false*/) | ||||
| { | ||||
|     //get font index from typed text | ||||
|     FontId fontId = t.getFontId(); | ||||
|     //reset to start of file | ||||
|     open(); | ||||
|     setPosition(0); | ||||
|  | ||||
|     assert(sizeof(touchgfx::BinaryFontData) < MAX_BUFFER_SIZE); | ||||
|     readData(buffer, sizeof(touchgfx::BinaryFontData)); | ||||
|     const struct touchgfx::BinaryFontData* binaryFontData = reinterpret_cast<const struct touchgfx::BinaryFontData*>(buffer); | ||||
|  | ||||
|     const Font** flashFonts = TypedTextDatabase::getFonts(); | ||||
|     const GeneratedFont* flashFont = static_cast<const GeneratedFont*>(flashFonts[fontId]); | ||||
|     *font = CachedFont(reinterpret_cast<const struct touchgfx::BinaryFontData*>(buffer), fontId, this, flashFont); | ||||
|  | ||||
|     if (loadGsubTable) | ||||
|     { | ||||
|         setPosition(binaryFontData->offsetToGSUB); | ||||
|  | ||||
|         const uint32_t sizeOfGSUB = binaryFontData->sizeOfFontData - binaryFontData->offsetToGSUB; | ||||
|         if (top + sizeOfGSUB < gsubStart) //room for this GSUB table | ||||
|         { | ||||
|             uint8_t* const gsubPosition = gsubStart - sizeOfGSUB; | ||||
|             readData(gsubPosition, sizeOfGSUB); | ||||
|             font->setGSUBTable(reinterpret_cast<uint16_t*>(gsubPosition)); | ||||
|             gsubStart -= sizeOfGSUB; | ||||
|         } | ||||
|         else | ||||
|         { | ||||
|             font->setGSUBTable(0); | ||||
|         } | ||||
|     } | ||||
|     close(); | ||||
| } | ||||
|  | ||||
| bool FontCache::cacheString(TypedText t, const Unicode::UnicodeChar* string) | ||||
| { | ||||
|     open(); | ||||
|     if (!createSortedString(string)) | ||||
|     { | ||||
|         close(); | ||||
|         return false; | ||||
|     } | ||||
|     const bool result = cacheSortedString(t); | ||||
|     close(); | ||||
|     return result; | ||||
| } | ||||
|  | ||||
| bool FontCache::cacheLigatures(CachedFont* font, TypedText t, const Unicode::UnicodeChar* string) | ||||
| { | ||||
|     open(); | ||||
|     if (!createSortedLigatures(font, t, string, 0, 0)) | ||||
|     { | ||||
|         close(); | ||||
|         return false; | ||||
|     } | ||||
|     const bool result = cacheSortedString(t); | ||||
|     close(); | ||||
|     return result; | ||||
| } | ||||
|  | ||||
| bool FontCache::cacheSortedString(TypedText t) | ||||
| { | ||||
|     setPosition(8); //skip font index and size | ||||
|     uint32_t glyphNodeOffset; | ||||
|     uint32_t dummy; | ||||
|     readData(&glyphNodeOffset, sizeof(uint32_t)); | ||||
|     readData(&dummy, sizeof(uint32_t)); | ||||
|     readData(&glyphDataOffset, sizeof(uint32_t)); | ||||
|     readData(&dummy, sizeof(uint32_t)); | ||||
|     readData(&numGlyphs, sizeof(uint16_t)); | ||||
|  | ||||
|     FontId fontId = t.getFontId(); // Get font index from typed text | ||||
|     uint32_t bpp = t.getFont()->getBitsPerPixel(); // Get BPP from standard font | ||||
|  | ||||
|     setPosition(glyphNodeOffset); // Go to glyph nodes for font | ||||
|     currentFileGlyphNumber = 0; | ||||
|     currentFileGlyphNode.unicode = 0; // Force reading of first glyph | ||||
|  | ||||
|     const Unicode::UnicodeChar* string = sortedString; | ||||
|     Unicode::UnicodeChar last = 0; | ||||
|     GlyphNode* firstNewGlyph = 0; | ||||
|     bool outOfMemory = false; | ||||
|     while (*string) | ||||
|     { | ||||
|         Unicode::UnicodeChar ch = *string; | ||||
|         if (ch != last) | ||||
|         { | ||||
|             if (!contains(ch, fontId)) | ||||
|             { | ||||
|                 insert(ch, fontId, bpp, outOfMemory); | ||||
|                 if (outOfMemory) | ||||
|                 { | ||||
|                     break; | ||||
|                 } | ||||
|                 if (firstNewGlyph == 0) | ||||
|                 { | ||||
|                     firstNewGlyph = (GlyphNode*)fontTable[fontId].last; | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|         last = ch; | ||||
|         string++; | ||||
|     } | ||||
|  | ||||
|     cacheData(bpp, firstNewGlyph); | ||||
|     return !outOfMemory; | ||||
| } | ||||
|  | ||||
| bool FontCache::contains(Unicode::UnicodeChar unicode, FontId font) const | ||||
| { | ||||
|     GlyphNode* g = (GlyphNode*)fontTable[font].first; | ||||
|     while (g) | ||||
|     { | ||||
|         if (g->unicode == unicode) | ||||
|         { | ||||
|             return true; | ||||
|         } | ||||
|         GlyphNode** next = (GlyphNode**)((uint8_t*)g + SizeGlyphNode); | ||||
|         g = *next; | ||||
|     } | ||||
|     return false; | ||||
| } | ||||
|  | ||||
| void FontCache::insert(Unicode::UnicodeChar unicode, FontId font, uint32_t bpp, bool& outOfMemory) | ||||
| { | ||||
|     //insert new glyphnode and glyph after last for font. | ||||
|     uint8_t* oldTop = top; | ||||
|     top = copyGlyph(top, unicode, font, bpp, outOfMemory); | ||||
|  | ||||
|     if (top == oldTop) | ||||
|     { | ||||
|         return; | ||||
|     } | ||||
|  | ||||
|     if (fontTable[font].last == 0) | ||||
|     { | ||||
|         //first glyph | ||||
|         fontTable[font].first = oldTop; | ||||
|         fontTable[font].last = oldTop; | ||||
|     } | ||||
|     else | ||||
|     { | ||||
|         //set next pointer of old last glyph | ||||
|         uint8_t** old_next = (uint8_t**)(fontTable[font].last + SizeGlyphNode); | ||||
|         *old_next = oldTop; | ||||
|  | ||||
|         //save new glyph as last glyph | ||||
|         fontTable[font].last = oldTop; | ||||
|     } | ||||
| } | ||||
|  | ||||
| uint8_t* FontCache::copyGlyph(uint8_t* top, Unicode::UnicodeChar unicode, FontId font, uint32_t bpp, bool& outOfMemory) | ||||
| { | ||||
|     while (currentFileGlyphNumber < numGlyphs && currentFileGlyphNode.unicode < unicode) | ||||
|     { | ||||
|         readData(¤tFileGlyphNode, sizeof(GlyphNode)); | ||||
|         currentFileGlyphNumber++; | ||||
|     } | ||||
|     if (currentFileGlyphNode.unicode != unicode) | ||||
|     { | ||||
|         //glyphnode not found | ||||
|         return top; | ||||
|     } | ||||
|  | ||||
|     //glyphnode found | ||||
|     uint32_t glyphSize = ((currentFileGlyphNode.width() + 1) & ~1) * currentFileGlyphNode.height() * bpp / 8; | ||||
|     glyphSize = (glyphSize + 3) & ~0x03; | ||||
|     uint32_t requiredMem = SizeGlyphNode + 4 + glyphSize; // GlyphNode + next ptr + glyph | ||||
|  | ||||
|     //is space available before sortedString | ||||
|     if (top + requiredMem > (uint8_t*)sortedString) | ||||
|     { | ||||
|         outOfMemory = true; | ||||
|         return top; | ||||
|     } | ||||
|  | ||||
|     *(GlyphNode*)top = currentFileGlyphNode; | ||||
|  | ||||
|     //clear next pointer | ||||
|     uint8_t** next = (uint8_t**)(top + SizeGlyphNode); | ||||
|     *next = 0; | ||||
|     top += requiredMem; | ||||
|     return top; | ||||
| } | ||||
|  | ||||
| void FontCache::cacheData(uint32_t bpp, GlyphNode* first) | ||||
| { | ||||
|     GlyphNode* gn = first; | ||||
|     while (gn) | ||||
|     { | ||||
|         uint8_t* p = (uint8_t*)gn; | ||||
|         if (gn->dataOffset != 0xFFFFFFFF) | ||||
|         { | ||||
|             p += SizeGlyphNode; | ||||
|             //next pointer | ||||
|             p += 4; | ||||
|  | ||||
|             //seek and copy | ||||
|             setPosition(glyphDataOffset + gn->dataOffset); | ||||
|             uint32_t glyphSize = ((gn->width() + 1) & ~1) * gn->height() * bpp / 8; | ||||
|             readData(p, glyphSize); | ||||
|  | ||||
|             //mark glyphNode as cached | ||||
|             gn->dataOffset = 0xFFFFFFFF; | ||||
|         } | ||||
|  | ||||
|         GlyphNode** next = (GlyphNode**)((uint8_t*)gn + SizeGlyphNode); | ||||
|         gn = *next; | ||||
|     } | ||||
| } | ||||
|  | ||||
| bool FontCache::createSortedString(const Unicode::UnicodeChar* string) | ||||
| { | ||||
|     int length = Unicode::strlen(string); | ||||
|     //sorted string is allocated at end of buffer | ||||
|     sortedString = (Unicode::UnicodeChar*)(gsubStart - (length + 1) * 2); | ||||
|     if ((uint8_t*)sortedString < top) | ||||
|     { | ||||
|         //unable to allocate string buffer in end of memory | ||||
|         return false; | ||||
|     } | ||||
|     int n = 0; | ||||
|     Unicode::UnicodeChar* uc = sortedString; | ||||
|     while (*string) | ||||
|     { | ||||
|         *uc++ = *string++; | ||||
|         n++; | ||||
|     } | ||||
|     *uc = 0; | ||||
|     return sortSortedString(n); | ||||
| } | ||||
|  | ||||
| bool FontCache::createSortedLigatures(CachedFont* font, TypedText t, const Unicode::UnicodeChar* string, ...) | ||||
| { | ||||
|     va_list pArg; | ||||
|     va_start(pArg, string); | ||||
|     TextProvider tp; | ||||
|     tp.initialize(string, pArg, font->getGSUBTable()); | ||||
|     va_end(pArg); | ||||
|     Unicode::UnicodeChar ligature; | ||||
|     sortedString = (Unicode::UnicodeChar*)(gsubStart); | ||||
|     if ((uint8_t*)(sortedString - 1) < top) | ||||
|     { | ||||
|         return false; | ||||
|     } | ||||
|     *--sortedString = 0; | ||||
|     int n = 0; | ||||
|     while ((ligature = tp.getNextLigature(t.getTextDirection())) != 0) | ||||
|     { | ||||
|         if ((uint8_t*)(sortedString - 1) < top) | ||||
|         { | ||||
|             return false; | ||||
|         } | ||||
|         *--sortedString = ligature; | ||||
|         n++; | ||||
|     } | ||||
|     return sortSortedString(n); | ||||
| } | ||||
|  | ||||
| bool FontCache::sortSortedString(int n) | ||||
| { | ||||
|     Unicode::UnicodeChar* uc = sortedString; | ||||
|     for (int i = 0; i < n - 1; i++) | ||||
|     { | ||||
|         bool swapped = false; | ||||
|         for (int j = 0; j < n - i - 1; j++) | ||||
|         { | ||||
|             if (uc[j] > uc[j + 1]) | ||||
|             { | ||||
|                 Unicode::UnicodeChar temp = uc[j]; | ||||
|                 uc[j] = uc[j + 1]; | ||||
|                 uc[j + 1] = temp; | ||||
|                 swapped = true; | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         //if no two elements were swapped by inner loop, then break | ||||
|         if (!swapped) | ||||
|         { | ||||
|             break; | ||||
|         } | ||||
|     } | ||||
|     return true; | ||||
| } | ||||
|  | ||||
| void FontCache::setPosition(uint32_t position) | ||||
| { | ||||
|     if (reader) | ||||
|     { | ||||
|         reader->setPosition(position); | ||||
|     } | ||||
| } | ||||
|  | ||||
| void FontCache::readData(void* out, uint32_t numberOfBytes) | ||||
| { | ||||
|     if (reader) | ||||
|     { | ||||
|         reader->readData(out, numberOfBytes); | ||||
|     } | ||||
| } | ||||
| } // namespace touchgfx | ||||
| @@ -0,0 +1,202 @@ | ||||
| #include <touchgfx/hal/Types.hpp> | ||||
|  | ||||
| FONT_GLYPH_LOCATION_FLASH_PRAGMA | ||||
| KEEP extern const uint8_t unicodes_verdana_10_4bpp_0[] FONT_GLYPH_LOCATION_FLASH_ATTRIBUTE = | ||||
| { | ||||
|     // Unicode: [0x0020] | ||||
|     // (Has no glyph data) | ||||
|     // Unicode: [0x002D] | ||||
|     0xE4, 0xBE, | ||||
|     // Unicode: [0x002E] | ||||
|     0x36, 0x6C, | ||||
|     // Unicode: [0x002F] | ||||
|     0x00, 0xC0, 0x01, 0x00, 0xA3, 0x00, 0x00, 0x49, 0x00, 0x00, 0x0C, 0x00, 0x50, 0x08, 0x00, 0xA0, | ||||
|     0x03, 0x00, 0xC1, 0x00, 0x00, 0x76, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x06, 0x00, 0x00, | ||||
|     // Unicode: [0x0030] | ||||
|     0x40, 0xDC, 0x08, 0xD0, 0x02, 0x4B, 0xC3, 0x00, 0x86, 0xA5, 0x00, 0xA5, 0xA5, 0x00, 0xA5, 0xB3, | ||||
|     0x00, 0x96, 0xD0, 0x02, 0x5B, 0x40, 0xDD, 0x08, | ||||
|     // Unicode: [0x0031] | ||||
|     0x20, 0x0C, 0x00, 0xD7, 0x0C, 0x00, 0x20, 0x0C, 0x00, 0x20, 0x0C, 0x00, 0x20, 0x0C, 0x00, 0x20, | ||||
|     0x0C, 0x00, 0x20, 0x0C, 0x00, 0xC8, 0xCE, 0x04, | ||||
|     // Unicode: [0x0032] | ||||
|     0xB0, 0xEE, 0x08, 0x50, 0x10, 0x4C, 0x00, 0x00, 0x5A, 0x00, 0x10, 0x2D, 0x00, 0xB0, 0x06, 0x00, | ||||
|     0x7A, 0x00, 0xB1, 0x07, 0x00, 0xF3, 0xDD, 0x9D, | ||||
|     // Unicode: [0x0033] | ||||
|     0xA0, 0xED, 0x1A, 0x50, 0x00, 0x6B, 0x00, 0x10, 0x3B, 0x00, 0xF7, 0x08, 0x00, 0x00, 0x5A, 0x00, | ||||
|     0x00, 0x86, 0x42, 0x10, 0x5B, 0xB2, 0xDE, 0x08, | ||||
|     // Unicode: [0x0034] | ||||
|     0x00, 0x70, 0x0C, 0x00, 0xC4, 0x0C, 0x10, 0x3C, 0x0C, 0xB0, 0x24, 0x0C, 0x77, 0x20, 0x0C, 0xD9, | ||||
|     0xDD, 0xBF, 0x00, 0x20, 0x0C, 0x00, 0x20, 0x0C, | ||||
|     // Unicode: [0x0035] | ||||
|     0xC0, 0xEE, 0x8E, 0xC0, 0x03, 0x00, 0xC0, 0x03, 0x00, 0xC0, 0xDE, 0x09, 0x10, 0x10, 0x7A, 0x00, | ||||
|     0x00, 0x96, 0x41, 0x10, 0x6B, 0xB1, 0xDE, 0x08, | ||||
|     // Unicode: [0x0036] | ||||
|     0x00, 0xD8, 0x1E, 0x90, 0x09, 0x00, 0xD1, 0x00, 0x00, 0xD3, 0xDB, 0x1A, 0xB5, 0x01, 0x98, 0xB4, | ||||
|     0x00, 0xB3, 0xD1, 0x03, 0x87, 0x40, 0xDC, 0x1A, | ||||
|     // Unicode: [0x0037] | ||||
|     0xE3, 0xEE, 0xBE, 0x00, 0x00, 0x96, 0x00, 0x00, 0x2D, 0x00, 0x60, 0x09, 0x00, 0xD0, 0x02, 0x00, | ||||
|     0xA6, 0x00, 0x00, 0x2D, 0x00, 0x50, 0x0A, 0x00, | ||||
|     // Unicode: [0x0038] | ||||
|     0x60, 0xCC, 0x1A, 0xD1, 0x00, 0x78, 0xE2, 0x02, 0x68, 0x70, 0x9E, 0x0A, 0xC1, 0x53, 0x5D, 0x95, | ||||
|     0x00, 0xB5, 0xD3, 0x01, 0x87, 0x70, 0xCC, 0x1A, | ||||
|     // Unicode: [0x0039] | ||||
|     0x60, 0xDD, 0x08, 0xC3, 0x01, 0x4B, 0x96, 0x00, 0x95, 0xD4, 0x01, 0xA6, 0x70, 0xCD, 0x9B, 0x00, | ||||
|     0x00, 0x69, 0x00, 0x40, 0x1D, 0xA0, 0xBE, 0x02, | ||||
|     // Unicode: [0x003A] | ||||
|     0xD5, 0x62, 0x00, 0x00, 0x62, 0xD5, | ||||
|     // Unicode: [0x003F] | ||||
|     0xD2, 0xCE, 0x03, 0x21, 0x50, 0x0C, 0x00, 0x30, 0x0C, 0x00, 0xC1, 0x05, 0x00, 0x4D, 0x00, 0x00, | ||||
|     0x0C, 0x00, 0x00, 0x02, 0x00, 0x00, 0x0F, 0x00, | ||||
|     // Unicode: [0x0041] | ||||
|     0x00, 0xF6, 0x03, 0x00, 0x00, 0xAB, 0x08, 0x00, 0x10, 0x2D, 0x0D, 0x00, 0x60, 0x09, 0x3C, 0x00, | ||||
|     0xB0, 0x04, 0x88, 0x00, 0xF1, 0xDD, 0xDD, 0x00, 0x96, 0x00, 0xD0, 0x03, 0x4B, 0x00, 0x80, 0x08, | ||||
|     // Unicode: [0x0042] | ||||
|     0xDF, 0xDD, 0x04, 0x0E, 0x50, 0x0C, 0x0E, 0x60, 0x09, 0xDF, 0xFD, 0x06, 0x0E, 0x10, 0x4D, 0x0E, | ||||
|     0x00, 0x69, 0x0E, 0x10, 0x3D, 0xDF, 0xDD, 0x06, | ||||
|     // Unicode: [0x0043] | ||||
|     0x10, 0xE9, 0xBE, 0x04, 0xB0, 0x08, 0x40, 0x07, 0xD3, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, | ||||
|     0x96, 0x00, 0x00, 0x00, 0xD3, 0x00, 0x00, 0x00, 0xC0, 0x08, 0x30, 0x06, 0x10, 0xDA, 0xBE, 0x04, | ||||
|     // Unicode: [0x0044] | ||||
|     0xDF, 0xCE, 0x05, 0x00, 0x0E, 0x30, 0x6C, 0x00, 0x0E, 0x00, 0xD3, 0x00, 0x0E, 0x00, 0xE0, 0x01, | ||||
|     0x0E, 0x00, 0xE0, 0x01, 0x0E, 0x00, 0xD3, 0x00, 0x0E, 0x30, 0x5C, 0x00, 0xDF, 0xCE, 0x05, 0x00, | ||||
|     // Unicode: [0x0045] | ||||
|     0xEF, 0xEE, 0x0B, 0x0E, 0x00, 0x00, 0x0E, 0x00, 0x00, 0xEF, 0xEE, 0x0A, 0x0E, 0x00, 0x00, 0x0E, | ||||
|     0x00, 0x00, 0x0E, 0x00, 0x00, 0xEF, 0xEE, 0x0B, | ||||
|     // Unicode: [0x0046] | ||||
|     0xEF, 0xEE, 0x09, 0x0E, 0x00, 0x00, 0x0E, 0x00, 0x00, 0xEF, 0xEE, 0x01, 0x0E, 0x00, 0x00, 0x0E, | ||||
|     0x00, 0x00, 0x0E, 0x00, 0x00, 0x0E, 0x00, 0x00, | ||||
|     // Unicode: [0x0047] | ||||
|     0x10, 0xD9, 0xCE, 0x07, 0xB0, 0x19, 0x20, 0x0A, 0xD3, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, | ||||
|     0xA6, 0x00, 0xEC, 0x1E, 0xD3, 0x00, 0x00, 0x1E, 0xB0, 0x19, 0x10, 0x1E, 0x10, 0xD8, 0xCD, 0x07, | ||||
|     // Unicode: [0x0048] | ||||
|     0x0E, 0x00, 0x86, 0x0E, 0x00, 0x86, 0x0E, 0x00, 0x86, 0xEF, 0xEE, 0x8E, 0x0E, 0x00, 0x86, 0x0E, | ||||
|     0x00, 0x86, 0x0E, 0x00, 0x86, 0x0E, 0x00, 0x86, | ||||
|     // Unicode: [0x0049] | ||||
|     0xD4, 0x7E, 0x60, 0x09, 0x60, 0x09, 0x60, 0x09, 0x60, 0x09, 0x60, 0x09, 0x60, 0x09, 0xD4, 0x7E, | ||||
|     // Unicode: [0x004A] | ||||
|     0xB0, 0xAD, 0x00, 0xA5, 0x00, 0xA5, 0x00, 0xA5, 0x00, 0xA5, 0x00, 0xA5, 0x00, 0x88, 0xEA, 0x1B, | ||||
|     // Unicode: [0x004B] | ||||
|     0x0F, 0x10, 0x4C, 0x0F, 0xB0, 0x06, 0x0F, 0x89, 0x00, 0x7F, 0x0A, 0x00, 0xBF, 0x2D, 0x00, 0x0F, | ||||
|     0xC7, 0x00, 0x0F, 0xA0, 0x09, 0x0F, 0x10, 0x6C, | ||||
|     // Unicode: [0x004C] | ||||
|     0x0E, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x0E, | ||||
|     0x00, 0x00, 0x0E, 0x00, 0x00, 0xEF, 0xEE, 0x08, | ||||
|     // Unicode: [0x004D] | ||||
|     0x8F, 0x00, 0xF2, 0x07, 0xDE, 0x00, 0xC8, 0x07, 0x8D, 0x06, 0x8C, 0x07, 0x2D, 0x6C, 0x87, 0x07, | ||||
|     0x0D, 0xDA, 0x81, 0x07, 0x0D, 0x83, 0x80, 0x07, 0x0D, 0x00, 0x80, 0x07, 0x0D, 0x00, 0x80, 0x07, | ||||
|     // Unicode: [0x004E] | ||||
|     0xBF, 0x00, 0x86, 0xCD, 0x03, 0x86, 0x5D, 0x0A, 0x86, 0x0D, 0x2C, 0x86, 0x0D, 0xA5, 0x86, 0x0D, | ||||
|     0xD0, 0x88, 0x0D, 0x60, 0x8E, 0x0D, 0x00, 0x8D, | ||||
|     // Unicode: [0x004F] | ||||
|     0x10, 0xEA, 0x9E, 0x01, 0xB0, 0x07, 0x90, 0x0A, 0xC3, 0x00, 0x00, 0x1E, 0x96, 0x00, 0x00, 0x4B, | ||||
|     0x96, 0x00, 0x00, 0x4B, 0xC3, 0x00, 0x00, 0x1E, 0xC0, 0x07, 0x90, 0x0A, 0x10, 0xEA, 0x9E, 0x01, | ||||
|     // Unicode: [0x0050] | ||||
|     0xDF, 0xAD, 0x01, 0x0E, 0x90, 0x08, 0x0E, 0x50, 0x0A, 0x0E, 0xA1, 0x07, 0xDF, 0x8D, 0x00, 0x0E, | ||||
|     0x00, 0x00, 0x0E, 0x00, 0x00, 0x0E, 0x00, 0x00, | ||||
|     // Unicode: [0x0051] | ||||
|     0x10, 0xEA, 0x9E, 0x01, 0xB0, 0x07, 0x90, 0x0A, 0xC3, 0x00, 0x00, 0x1E, 0x96, 0x00, 0x00, 0x4B, | ||||
|     0x96, 0x00, 0x00, 0x4B, 0xC3, 0x00, 0x00, 0x1E, 0xC0, 0x07, 0x90, 0x0A, 0x10, 0xEA, 0xAF, 0x01, | ||||
|     0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0xC2, 0x6E, | ||||
|     // Unicode: [0x0052] | ||||
|     0xDF, 0xBD, 0x01, 0x0E, 0x80, 0x09, 0x0E, 0x50, 0x0B, 0x0E, 0xA0, 0x06, 0xDF, 0x9E, 0x00, 0x0E, | ||||
|     0xD4, 0x01, 0x0E, 0x70, 0x0B, 0x0E, 0x00, 0x9A, | ||||
|     // Unicode: [0x0053] | ||||
|     0x50, 0xED, 0x9D, 0x00, 0xD2, 0x02, 0x71, 0x00, 0xC4, 0x00, 0x00, 0x00, 0xC0, 0x8C, 0x15, 0x00, | ||||
|     0x00, 0x84, 0xDC, 0x00, 0x00, 0x00, 0xC0, 0x03, 0x74, 0x01, 0xD2, 0x01, 0xA2, 0xDE, 0x4C, 0x00, | ||||
|     // Unicode: [0x0054] | ||||
|     0xEE, 0xFE, 0xEE, 0x02, 0x00, 0x86, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, | ||||
|     0x00, 0x86, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, | ||||
|     // Unicode: [0x0055] | ||||
|     0xD2, 0x00, 0x80, 0x07, 0xD2, 0x00, 0x80, 0x07, 0xD2, 0x00, 0x80, 0x07, 0xD2, 0x00, 0x80, 0x07, | ||||
|     0xD2, 0x00, 0x80, 0x07, 0xD1, 0x00, 0x90, 0x05, 0xC0, 0x05, 0xD2, 0x02, 0x20, 0xDC, 0x5D, 0x00, | ||||
|     // Unicode: [0x0056] | ||||
|     0x5B, 0x00, 0x70, 0x08, 0xA6, 0x00, 0xC0, 0x03, 0xE1, 0x00, 0xD2, 0x00, 0xB0, 0x04, 0x86, 0x00, | ||||
|     0x60, 0x09, 0x3B, 0x00, 0x10, 0x1E, 0x0D, 0x00, 0x00, 0xAB, 0x08, 0x00, 0x00, 0xF6, 0x03, 0x00, | ||||
|     // Unicode: [0x0057] | ||||
|     0x86, 0x00, 0x8A, 0x00, 0x59, 0xC3, 0x00, 0xCC, 0x00, 0x1D, 0xE0, 0x10, 0xCA, 0x11, 0x0D, 0xB0, | ||||
|     0x54, 0x97, 0x54, 0x09, 0x70, 0x87, 0x53, 0x87, 0x06, 0x30, 0xBB, 0x20, 0xBA, 0x02, 0x00, 0xBD, | ||||
|     0x00, 0xDC, 0x00, 0x00, 0x8B, 0x00, 0xAA, 0x00, | ||||
|     // Unicode: [0x0058] | ||||
|     0xC5, 0x00, 0xC0, 0x03, 0xA0, 0x06, 0x97, 0x00, 0x20, 0x3D, 0x1D, 0x00, 0x00, 0xE7, 0x05, 0x00, | ||||
|     0x00, 0xE7, 0x05, 0x00, 0x20, 0x3D, 0x1D, 0x00, 0xB0, 0x05, 0x98, 0x00, 0xA5, 0x00, 0xD0, 0x03, | ||||
|     // Unicode: [0x0059] | ||||
|     0x6A, 0x00, 0xC3, 0xD2, 0x01, 0x4B, 0x90, 0x57, 0x0A, 0x10, 0xDD, 0x02, 0x00, 0x98, 0x00, 0x00, | ||||
|     0x86, 0x00, 0x00, 0x86, 0x00, 0x00, 0x86, 0x00, | ||||
|     // Unicode: [0x005A] | ||||
|     0xE3, 0xEE, 0xFE, 0x03, 0x00, 0x00, 0xB5, 0x00, 0x00, 0x20, 0x2D, 0x00, 0x00, 0xC0, 0x05, 0x00, | ||||
|     0x00, 0x98, 0x00, 0x00, 0x40, 0x0C, 0x00, 0x00, 0xD1, 0x02, 0x00, 0x00, 0xF6, 0xEE, 0xEE, 0x04, | ||||
|     // Unicode: [0x0061] | ||||
|     0xD0, 0xDD, 0x07, 0x20, 0x10, 0x1D, 0x60, 0xCB, 0x2E, 0xC5, 0x01, 0x2C, 0x86, 0x10, 0x2D, 0xB1, | ||||
|     0xBB, 0x2D, | ||||
|     // Unicode: [0x0062] | ||||
|     0xC1, 0x00, 0x00, 0xC1, 0x00, 0x00, 0xD1, 0xEA, 0x1B, 0xE1, 0x03, 0x7A, 0xC1, 0x00, 0xA4, 0xC1, | ||||
|     0x00, 0x95, 0xD1, 0x00, 0x5A, 0xE1, 0xDC, 0x09, | ||||
|     // Unicode: [0x0063] | ||||
|     0x50, 0xDC, 0x0A, 0xD2, 0x01, 0x04, 0x86, 0x00, 0x00, 0x86, 0x00, 0x00, 0xD3, 0x01, 0x04, 0x60, | ||||
|     0xDD, 0x0A, | ||||
|     // Unicode: [0x0064] | ||||
|     0x00, 0x00, 0x59, 0x00, 0x00, 0x59, 0x60, 0xDD, 0x5D, 0xD2, 0x01, 0x5A, 0x86, 0x00, 0x59, 0x86, | ||||
|     0x00, 0x59, 0xB3, 0x00, 0x5B, 0x80, 0xBC, 0x5C, | ||||
|     // Unicode: [0x0065] | ||||
|     0x50, 0xCC, 0x09, 0xB2, 0x00, 0x49, 0xD6, 0xBB, 0x6C, 0x86, 0x00, 0x00, 0xD2, 0x02, 0x32, 0x50, | ||||
|     0xDC, 0x3C, | ||||
|     // Unicode: [0x0066] | ||||
|     0x70, 0xBD, 0xD0, 0x00, 0xF8, 0x6C, 0xD1, 0x00, 0xD1, 0x00, 0xD1, 0x00, 0xD1, 0x00, 0xD1, 0x00, | ||||
|     // Unicode: [0x0067] | ||||
|     0x50, 0xDD, 0x5D, 0xD2, 0x01, 0x5A, 0x86, 0x00, 0x59, 0x86, 0x00, 0x59, 0xC3, 0x10, 0x5B, 0x80, | ||||
|     0xCE, 0x4C, 0x10, 0x10, 0x2C, 0xC0, 0xDD, 0x06, | ||||
|     // Unicode: [0x0068] | ||||
|     0xC1, 0x00, 0x00, 0xC1, 0x00, 0x00, 0xD1, 0xE9, 0x1B, 0xE1, 0x04, 0x5A, 0xC1, 0x00, 0x77, 0xC1, | ||||
|     0x00, 0x77, 0xC1, 0x00, 0x77, 0xC1, 0x00, 0x77, | ||||
|     // Unicode: [0x0069] | ||||
|     0xD2, 0x00, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, | ||||
|     // Unicode: [0x006A] | ||||
|     0x00, 0x97, 0x00, 0x00, 0x60, 0x8D, 0x00, 0x86, 0x00, 0x86, 0x00, 0x86, 0x00, 0x86, 0x00, 0x86, | ||||
|     0x00, 0x78, 0xD4, 0x1C, | ||||
|     // Unicode: [0x006B] | ||||
|     0xD1, 0x00, 0x00, 0xD1, 0x00, 0x00, 0xD1, 0x10, 0x4C, 0xD1, 0xB1, 0x05, 0xD1, 0x6A, 0x00, 0xF1, | ||||
|     0xBA, 0x00, 0xD1, 0x90, 0x09, 0xD1, 0x00, 0x7B, | ||||
|     // Unicode: [0x006C] | ||||
|     0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, | ||||
|     // Unicode: [0x006D] | ||||
|     0xD1, 0xCA, 0x7B, 0xDB, 0x04, 0xE1, 0x02, 0x8B, 0x30, 0x0B, 0xC1, 0x00, 0x59, 0x10, 0x0D, 0xC1, | ||||
|     0x00, 0x59, 0x10, 0x0D, 0xC1, 0x00, 0x59, 0x10, 0x0D, 0xC1, 0x00, 0x59, 0x10, 0x0D, | ||||
|     // Unicode: [0x006E] | ||||
|     0xD1, 0xCA, 0x1B, 0xE1, 0x02, 0x59, 0xC1, 0x00, 0x77, 0xC1, 0x00, 0x77, 0xC1, 0x00, 0x77, 0xC1, | ||||
|     0x00, 0x77, | ||||
|     // Unicode: [0x006F] | ||||
|     0x60, 0xDD, 0x07, 0xC3, 0x01, 0x3C, 0x86, 0x00, 0x77, 0x86, 0x00, 0x77, 0xC3, 0x01, 0x3C, 0x60, | ||||
|     0xDD, 0x07, | ||||
|     // Unicode: [0x0070] | ||||
|     0xE1, 0xCA, 0x1B, 0xD1, 0x01, 0x78, 0xC1, 0x00, 0xA4, 0xC1, 0x00, 0x95, 0xD1, 0x00, 0x5B, 0xE1, | ||||
|     0xDC, 0x09, 0xC1, 0x00, 0x00, 0xC1, 0x00, 0x00, | ||||
|     // Unicode: [0x0071] | ||||
|     0x60, 0xDD, 0x5D, 0xD2, 0x01, 0x5A, 0x86, 0x00, 0x59, 0x86, 0x00, 0x59, 0xC3, 0x11, 0x5C, 0x80, | ||||
|     0xCE, 0x5B, 0x00, 0x00, 0x59, 0x00, 0x00, 0x59, | ||||
|     // Unicode: [0x0072] | ||||
|     0xD1, 0xE9, 0x04, 0xE1, 0x04, 0x00, 0xC1, 0x00, 0x00, 0xC1, 0x00, 0x00, 0xC1, 0x00, 0x00, 0xC1, | ||||
|     0x00, 0x00, | ||||
|     // Unicode: [0x0073] | ||||
|     0xA1, 0xDD, 0x06, 0x96, 0x00, 0x03, 0xE3, 0x48, 0x00, 0x20, 0xB6, 0x09, 0x23, 0x40, 0x0B, 0xD4, | ||||
|     0xCD, 0x03, | ||||
|     // Unicode: [0x0074] | ||||
|     0x61, 0x00, 0xD1, 0x00, 0xF9, 0x9C, 0xD1, 0x00, 0xD1, 0x00, 0xD1, 0x00, 0xE0, 0x00, 0x80, 0x9D, | ||||
|     // Unicode: [0x0075] | ||||
|     0xC2, 0x00, 0x68, 0xC2, 0x00, 0x68, 0xC2, 0x00, 0x68, 0xC2, 0x00, 0x68, 0xD1, 0x00, 0x6A, 0x70, | ||||
|     0xBC, 0x6B, | ||||
|     // Unicode: [0x0076] | ||||
|     0x78, 0x00, 0x78, 0xC2, 0x00, 0x1D, 0xC0, 0x33, 0x0B, 0x60, 0x98, 0x05, 0x10, 0xDD, 0x00, 0x00, | ||||
|     0x9B, 0x00, | ||||
|     // Unicode: [0x0077] | ||||
|     0x77, 0x60, 0x0A, 0xA4, 0xA3, 0xA0, 0x0C, 0x67, 0xD0, 0xB1, 0x49, 0x3A, 0xB0, 0x76, 0x84, 0x0C, | ||||
|     0x80, 0x2D, 0xD0, 0x0A, 0x40, 0x0D, 0xA0, 0x07, | ||||
|     // Unicode: [0x0078] | ||||
|     0xC5, 0x00, 0x4C, 0xA0, 0x77, 0x08, 0x10, 0xBD, 0x00, 0x10, 0xCC, 0x00, 0xA0, 0x86, 0x09, 0xA5, | ||||
|     0x00, 0x4D, | ||||
|     // Unicode: [0x0079] | ||||
|     0x78, 0x00, 0x68, 0xD2, 0x00, 0x1D, 0xB0, 0x54, 0x09, 0x50, 0xBA, 0x03, 0x00, 0xCD, 0x00, 0x00, | ||||
|     0x7A, 0x00, 0x00, 0x1D, 0x00, 0x50, 0x0A, 0x00, | ||||
|     // Unicode: [0x007A] | ||||
|     0xC6, 0xDC, 0x0B, 0x00, 0xC0, 0x03, 0x00, 0x78, 0x00, 0x40, 0x0B, 0x00, 0xD1, 0x02, 0x00, 0xE8, | ||||
|     0xCC, 0x0B | ||||
| }; | ||||
| @@ -0,0 +1,12 @@ | ||||
| #include <touchgfx/hal/Types.hpp> | ||||
|  | ||||
| FONT_GLYPH_LOCATION_FLASH_PRAGMA | ||||
| KEEP extern const uint8_t unicodes_verdana_20_4bpp_0[] FONT_GLYPH_LOCATION_FLASH_ATTRIBUTE = | ||||
| { | ||||
|     // Unicode: [0x003F] | ||||
|     0x93, 0xEC, 0xDE, 0x29, 0x00, 0xF7, 0xAD, 0xDA, 0xEF, 0x02, 0x33, 0x00, 0x00, 0xF9, 0x0A, 0x00, | ||||
|     0x00, 0x00, 0xF3, 0x0C, 0x00, 0x00, 0x00, 0xF5, 0x0A, 0x00, 0x00, 0x10, 0xFD, 0x03, 0x00, 0x00, | ||||
|     0xD5, 0x6F, 0x00, 0x00, 0xB0, 0xCF, 0x03, 0x00, 0x00, 0xE0, 0x0C, 0x00, 0x00, 0x00, 0xE0, 0x0C, | ||||
|     0x00, 0x00, 0x00, 0x40, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x0E, 0x00, | ||||
|     0x00, 0x00, 0xF0, 0x0E, 0x00, 0x00 | ||||
| }; | ||||
| @@ -0,0 +1,50 @@ | ||||
| #include <touchgfx/hal/Types.hpp> | ||||
|  | ||||
| FONT_GLYPH_LOCATION_FLASH_PRAGMA | ||||
| KEEP extern const uint8_t unicodes_verdana_40_4bpp_0[] FONT_GLYPH_LOCATION_FLASH_ATTRIBUTE = | ||||
| { | ||||
|     // Unicode: [0x002B] | ||||
|     0x00, 0x00, 0x00, 0x00, 0x00, 0xF4, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||||
|     0x00, 0x00, 0xF4, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF4, | ||||
|     0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF4, 0xFF, 0x00, 0x00, | ||||
|     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF4, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, | ||||
|     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF4, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||||
|     0x00, 0x00, 0x00, 0xF4, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||||
|     0xF4, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF4, 0xFF, 0x00, | ||||
|     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF4, 0xFF, 0x00, 0x00, 0x00, 0x00, | ||||
|     0x00, 0x00, 0x33, 0x33, 0x33, 0x33, 0x33, 0xF6, 0xFF, 0x33, 0x33, 0x33, 0x33, 0x33, 0x02, 0xFD, | ||||
|     0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0A, 0xFD, 0xFF, 0xFF, 0xFF, | ||||
|     0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0A, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, | ||||
|     0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF4, 0xFF, 0x00, 0x00, 0x00, | ||||
|     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF4, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||||
|     0x00, 0x00, 0x00, 0x00, 0x00, 0xF4, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||||
|     0x00, 0x00, 0xF4, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF4, | ||||
|     0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF4, 0xFF, 0x00, 0x00, | ||||
|     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF4, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, | ||||
|     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF4, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||||
|     0x00, 0x00, 0x00, 0xF4, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||||
|     0xF4, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF4, 0xFF, 0x00, | ||||
|     0x00, 0x00, 0x00, 0x00, 0x00, | ||||
|     // Unicode: [0x002D] | ||||
|     0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0xFF, 0xFF, | ||||
|     0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, | ||||
|     // Unicode: [0x003F] | ||||
|     0x00, 0x10, 0x53, 0x77, 0x57, 0x02, 0x00, 0x00, 0x00, 0x83, 0xFC, 0xFF, 0xFF, 0xFF, 0xDF, 0x17, | ||||
|     0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0x02, 0x00, 0xFD, 0xFF, 0xFF, 0xEF, 0xFF, | ||||
|     0xFF, 0xFF, 0x2E, 0x00, 0xFD, 0x9E, 0x15, 0x00, 0x41, 0xFA, 0xFF, 0xBF, 0x00, 0x6B, 0x00, 0x00, | ||||
|     0x00, 0x00, 0x60, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFB, 0xFF, 0x07, 0x00, | ||||
|     0x00, 0x00, 0x00, 0x00, 0x00, 0xF7, 0xFF, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF6, 0xFF, | ||||
|     0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF7, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||||
|     0xFB, 0xFF, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0xFF, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, | ||||
|     0x00, 0xC1, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xFC, 0xFF, 0x0C, 0x00, 0x00, 0x00, | ||||
|     0x00, 0x00, 0xD3, 0xFF, 0xDF, 0x02, 0x00, 0x00, 0x00, 0x00, 0x81, 0xFF, 0xFF, 0x2C, 0x00, 0x00, | ||||
|     0x00, 0x00, 0x60, 0xFE, 0xFF, 0x9F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0, 0xFF, 0xDF, 0x04, 0x00, | ||||
|     0x00, 0x00, 0x00, 0x00, 0xD0, 0xFF, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0, 0xFF, 0x09, | ||||
|     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0, 0xFF, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0, | ||||
|     0xFF, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0, 0xFF, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, | ||||
|     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||||
|     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x44, 0x03, 0x00, | ||||
|     0x00, 0x00, 0x00, 0x00, 0x00, 0xF1, 0xFF, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF1, 0xFF, | ||||
|     0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF1, 0xFF, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||||
|     0xF1, 0xFF, 0x0E, 0x00, 0x00, 0x00, 0x00 | ||||
| }; | ||||
| @@ -0,0 +1,43 @@ | ||||
| /* DO NOT EDIT THIS FILE */ | ||||
| /* This file is autogenerated by the text-database code generator */ | ||||
|  | ||||
| #include <fonts/GeneratedFont.hpp> | ||||
|  | ||||
| namespace touchgfx | ||||
| { | ||||
| GeneratedFont::GeneratedFont(const GlyphNode* list, uint16_t size, uint16_t height, uint8_t pixBelowBase, uint8_t bitsPerPixel, uint8_t byteAlignRow, uint8_t maxLeft, uint8_t maxRight, const uint8_t* const* glyphDataInternalFlash, const KerningNode* kerningList, const Unicode::UnicodeChar fallbackChar, const Unicode::UnicodeChar ellipsisChar, const uint16_t* const gsubData) : | ||||
|     ConstFont(list, size, height, pixBelowBase, bitsPerPixel, byteAlignRow, maxLeft, maxRight, fallbackChar, ellipsisChar), | ||||
|     glyphData(glyphDataInternalFlash), | ||||
|     kerningData(kerningList), | ||||
|     gsubTable(gsubData) | ||||
| { | ||||
| } | ||||
|  | ||||
| const uint8_t* GeneratedFont::getPixelData(const GlyphNode* glyph) const | ||||
| { | ||||
|     const uint8_t* const* table = (const uint8_t* const*)glyphData; | ||||
|     return &(table[glyph->unicode / 2048][glyph->dataOffset]); | ||||
| } | ||||
|  | ||||
| int8_t GeneratedFont::getKerning(Unicode::UnicodeChar prevChar, const GlyphNode* glyph) const | ||||
| { | ||||
|     if (!glyph || glyph->kerningTableSize == 0) | ||||
|     { | ||||
|         return 0; | ||||
|     } | ||||
|  | ||||
|     const KerningNode* kerndata = kerningData + glyph->kerningTablePos(); | ||||
|     for (uint16_t i = glyph->kerningTableSize; i > 0; i--, kerndata++) | ||||
|     { | ||||
|         if (prevChar == kerndata->unicodePrevChar) | ||||
|         { | ||||
|             return kerndata->distance; | ||||
|         } | ||||
|         if (prevChar < kerndata->unicodePrevChar) | ||||
|         { | ||||
|             break; | ||||
|         } | ||||
|     } | ||||
|     return 0; | ||||
| } | ||||
| } // namespace touchgfx | ||||
| @@ -0,0 +1,12 @@ | ||||
| #include <touchgfx/Font.hpp> | ||||
|  | ||||
| FONT_KERNING_LOCATION_FLASH_PRAGMA | ||||
| KEEP extern const touchgfx::KerningNode kerning_verdana_10_4bpp[] FONT_KERNING_LOCATION_FLASH_ATTRIBUTE = | ||||
| { | ||||
|     { 0x0046, -1 },  // (First char = [0x0046, F], Second char = [0x002E, .], Kerning dist = -1) | ||||
|     { 0x0050, -1 },  // (First char = [0x0050, P], Second char = [0x002E, .], Kerning dist = -1) | ||||
|     { 0x0054, -1 },  // (First char = [0x0054, T], Second char = [0x002E, .], Kerning dist = -1) | ||||
|     { 0x0056, -1 },  // (First char = [0x0056, V], Second char = [0x002E, .], Kerning dist = -1) | ||||
|     { 0x0059, -1 },  // (First char = [0x0059, Y], Second char = [0x002E, .], Kerning dist = -1) | ||||
|     { 0x0072, -1 },  // (First char = [0x0072, r], Second char = [0x002E, .], Kerning dist = -1) | ||||
| }; | ||||
| @@ -0,0 +1,7 @@ | ||||
| #include <touchgfx/Font.hpp> | ||||
|  | ||||
| FONT_KERNING_LOCATION_FLASH_PRAGMA | ||||
| KEEP extern const touchgfx::KerningNode kerning_verdana_20_4bpp[] FONT_KERNING_LOCATION_FLASH_ATTRIBUTE = | ||||
| { | ||||
|     { 0, 0 } | ||||
| }; | ||||
| @@ -0,0 +1,7 @@ | ||||
| #include <touchgfx/Font.hpp> | ||||
|  | ||||
| FONT_KERNING_LOCATION_FLASH_PRAGMA | ||||
| KEEP extern const touchgfx::KerningNode kerning_verdana_40_4bpp[] FONT_KERNING_LOCATION_FLASH_ATTRIBUTE = | ||||
| { | ||||
|     { 0, 0 } | ||||
| }; | ||||
| @@ -0,0 +1,93 @@ | ||||
| // Autogenerated, do not edit | ||||
|  | ||||
| #include <fonts/GeneratedFont.hpp> | ||||
|  | ||||
| FONT_TABLE_LOCATION_FLASH_PRAGMA | ||||
| KEEP extern const touchgfx::GlyphNode glyphs_verdana_10_4bpp[] FONT_TABLE_LOCATION_FLASH_ATTRIBUTE = | ||||
| { | ||||
|     {     0, 0x0020,   0,   0,   0,   0,   4,   0,   0, 0x00 }, | ||||
|     {     0, 0x002D,   4,   1,   4,   0,   5,   0,   0, 0x00 }, | ||||
|     {     2, 0x002E,   2,   2,   2,   1,   4,   0,   6, 0x00 }, | ||||
|     {     4, 0x002F,   5,  10,   8,   0,   5,   0,   0, 0x00 }, | ||||
|     {    34, 0x0030,   6,   8,   8,   0,   6,   0,   0, 0x00 }, | ||||
|     {    58, 0x0031,   5,   8,   8,   1,   6,   0,   0, 0x00 }, | ||||
|     {    82, 0x0032,   6,   8,   8,   0,   6,   0,   0, 0x00 }, | ||||
|     {   106, 0x0033,   6,   8,   8,   0,   6,   0,   0, 0x00 }, | ||||
|     {   130, 0x0034,   6,   8,   8,   0,   6,   0,   0, 0x00 }, | ||||
|     {   154, 0x0035,   6,   8,   8,   0,   6,   0,   0, 0x00 }, | ||||
|     {   178, 0x0036,   6,   8,   8,   0,   6,   0,   0, 0x00 }, | ||||
|     {   202, 0x0037,   6,   8,   8,   0,   6,   0,   0, 0x00 }, | ||||
|     {   226, 0x0038,   6,   8,   8,   0,   6,   0,   0, 0x00 }, | ||||
|     {   250, 0x0039,   6,   8,   8,   0,   6,   0,   0, 0x00 }, | ||||
|     {   274, 0x003A,   2,   6,   6,   1,   5,   0,   0, 0x00 }, | ||||
|     {   280, 0x003F,   5,   8,   8,   0,   5,   0,   0, 0x00 }, | ||||
|     {   304, 0x0041,   7,   8,   8,   0,   7,   0,   0, 0x00 }, | ||||
|     {   336, 0x0042,   6,   8,   8,   1,   7,   0,   0, 0x00 }, | ||||
|     {   360, 0x0043,   7,   8,   8,   0,   7,   0,   0, 0x00 }, | ||||
|     {   392, 0x0044,   7,   8,   8,   1,   8,   0,   0, 0x00 }, | ||||
|     {   424, 0x0045,   5,   8,   8,   1,   6,   0,   0, 0x00 }, | ||||
|     {   448, 0x0046,   5,   8,   8,   1,   6,   0,   0, 0x00 }, | ||||
|     {   472, 0x0047,   8,   8,   8,   0,   8,   0,   0, 0x00 }, | ||||
|     {   504, 0x0048,   6,   8,   8,   1,   8,   0,   0, 0x00 }, | ||||
|     {   528, 0x0049,   4,   8,   8,   0,   4,   0,   0, 0x00 }, | ||||
|     {   544, 0x004A,   4,   8,   8,   0,   5,   0,   0, 0x00 }, | ||||
|     {   560, 0x004B,   6,   8,   8,   1,   7,   0,   0, 0x00 }, | ||||
|     {   584, 0x004C,   5,   8,   8,   1,   6,   0,   0, 0x00 }, | ||||
|     {   608, 0x004D,   7,   8,   8,   1,   8,   0,   0, 0x00 }, | ||||
|     {   640, 0x004E,   6,   8,   8,   1,   7,   0,   0, 0x00 }, | ||||
|     {   664, 0x004F,   8,   8,   8,   0,   8,   0,   0, 0x00 }, | ||||
|     {   696, 0x0050,   5,   8,   8,   1,   6,   0,   0, 0x00 }, | ||||
|     {   720, 0x0051,   8,  10,   8,   0,   8,   0,   0, 0x00 }, | ||||
|     {   760, 0x0052,   6,   8,   8,   1,   7,   0,   0, 0x00 }, | ||||
|     {   784, 0x0053,   7,   8,   8,   0,   7,   0,   0, 0x00 }, | ||||
|     {   816, 0x0054,   7,   8,   8,   0,   6,   0,   0, 0x00 }, | ||||
|     {   848, 0x0055,   7,   8,   8,   0,   7,   0,   0, 0x00 }, | ||||
|     {   880, 0x0056,   7,   8,   8,   0,   7,   0,   0, 0x00 }, | ||||
|     {   912, 0x0057,  10,   8,   8,   0,  10,   0,   0, 0x00 }, | ||||
|     {   952, 0x0058,   7,   8,   8,   0,   7,   0,   0, 0x00 }, | ||||
|     {   984, 0x0059,   6,   8,   8,   0,   6,   0,   0, 0x00 }, | ||||
|     {  1008, 0x005A,   7,   8,   8,   0,   7,   0,   0, 0x00 }, | ||||
|     {  1040, 0x0061,   6,   6,   6,   0,   6,   0,   0, 0x00 }, | ||||
|     {  1058, 0x0062,   6,   8,   8,   0,   6,   0,   0, 0x00 }, | ||||
|     {  1082, 0x0063,   5,   6,   6,   0,   5,   0,   0, 0x00 }, | ||||
|     {  1100, 0x0064,   6,   8,   8,   0,   6,   0,   0, 0x00 }, | ||||
|     {  1124, 0x0065,   6,   6,   6,   0,   6,   0,   0, 0x00 }, | ||||
|     {  1142, 0x0066,   4,   8,   8,   0,   4,   0,   0, 0x00 }, | ||||
|     {  1158, 0x0067,   6,   8,   6,   0,   6,   0,   0, 0x00 }, | ||||
|     {  1182, 0x0068,   6,   8,   8,   0,   6,   0,   0, 0x00 }, | ||||
|     {  1206, 0x0069,   2,   8,   8,   0,   3,   0,   0, 0x00 }, | ||||
|     {  1214, 0x006A,   4,  10,   8,  -1,   3,   0,   0, 0x00 }, | ||||
|     {  1234, 0x006B,   6,   8,   8,   0,   6,   0,   0, 0x00 }, | ||||
|     {  1258, 0x006C,   2,   8,   8,   0,   3,   0,   0, 0x00 }, | ||||
|     {  1266, 0x006D,   9,   6,   6,   0,  10,   0,   0, 0x00 }, | ||||
|     {  1296, 0x006E,   6,   6,   6,   0,   6,   0,   0, 0x00 }, | ||||
|     {  1314, 0x006F,   6,   6,   6,   0,   6,   0,   0, 0x00 }, | ||||
|     {  1332, 0x0070,   6,   8,   6,   0,   6,   0,   0, 0x00 }, | ||||
|     {  1356, 0x0071,   6,   8,   6,   0,   6,   0,   0, 0x00 }, | ||||
|     {  1380, 0x0072,   5,   6,   6,   0,   4,   0,   0, 0x00 }, | ||||
|     {  1398, 0x0073,   5,   6,   6,   0,   5,   0,   0, 0x00 }, | ||||
|     {  1416, 0x0074,   4,   8,   8,   0,   4,   0,   0, 0x00 }, | ||||
|     {  1432, 0x0075,   6,   6,   6,   0,   6,   0,   0, 0x00 }, | ||||
|     {  1450, 0x0076,   6,   6,   6,   0,   6,   0,   0, 0x00 }, | ||||
|     {  1468, 0x0077,   8,   6,   6,   0,   8,   0,   0, 0x00 }, | ||||
|     {  1492, 0x0078,   6,   6,   6,   0,   6,   0,   0, 0x00 }, | ||||
|     {  1510, 0x0079,   6,   8,   6,   0,   6,   0,   0, 0x00 }, | ||||
|     {  1534, 0x007A,   5,   6,   6,   0,   5,   0,   0, 0x00 } | ||||
| }; | ||||
|  | ||||
| // verdana_10_4bpp | ||||
| extern const touchgfx::GlyphNode glyphs_verdana_10_4bpp[]; | ||||
| extern const uint8_t unicodes_verdana_10_4bpp_0[]; | ||||
| extern const uint8_t* const unicodes_verdana_10_4bpp[] = | ||||
| { | ||||
|     unicodes_verdana_10_4bpp_0 | ||||
| }; | ||||
| extern const touchgfx::KerningNode kerning_verdana_10_4bpp[]; | ||||
|  | ||||
| touchgfx::GeneratedFont& getFont_verdana_10_4bpp(); | ||||
|  | ||||
| touchgfx::GeneratedFont& getFont_verdana_10_4bpp() | ||||
| { | ||||
|     static touchgfx::GeneratedFont verdana_10_4bpp(glyphs_verdana_10_4bpp, 68, 10, 2, 4, 1, 1, 1, unicodes_verdana_10_4bpp, kerning_verdana_10_4bpp, 63, 0, 0); | ||||
|     return verdana_10_4bpp; | ||||
| } | ||||
| @@ -0,0 +1,26 @@ | ||||
| // Autogenerated, do not edit | ||||
|  | ||||
| #include <fonts/GeneratedFont.hpp> | ||||
|  | ||||
| FONT_TABLE_LOCATION_FLASH_PRAGMA | ||||
| KEEP extern const touchgfx::GlyphNode glyphs_verdana_20_4bpp[] FONT_TABLE_LOCATION_FLASH_ATTRIBUTE = | ||||
| { | ||||
|     {     0, 0x003F,   9,  14,  14,   1,  11,   0,   0, 0x00 } | ||||
| }; | ||||
|  | ||||
| // verdana_20_4bpp | ||||
| extern const touchgfx::GlyphNode glyphs_verdana_20_4bpp[]; | ||||
| extern const uint8_t unicodes_verdana_20_4bpp_0[]; | ||||
| extern const uint8_t* const unicodes_verdana_20_4bpp[] = | ||||
| { | ||||
|     unicodes_verdana_20_4bpp_0 | ||||
| }; | ||||
| extern const touchgfx::KerningNode kerning_verdana_20_4bpp[]; | ||||
|  | ||||
| touchgfx::GeneratedFont& getFont_verdana_20_4bpp(); | ||||
|  | ||||
| touchgfx::GeneratedFont& getFont_verdana_20_4bpp() | ||||
| { | ||||
|     static touchgfx::GeneratedFont verdana_20_4bpp(glyphs_verdana_20_4bpp, 1, 20, 0, 4, 1, 0, 0, unicodes_verdana_20_4bpp, kerning_verdana_20_4bpp, 63, 0, 0); | ||||
|     return verdana_20_4bpp; | ||||
| } | ||||
| @@ -0,0 +1,28 @@ | ||||
| // Autogenerated, do not edit | ||||
|  | ||||
| #include <fonts/GeneratedFont.hpp> | ||||
|  | ||||
| FONT_TABLE_LOCATION_FLASH_PRAGMA | ||||
| KEEP extern const touchgfx::GlyphNode glyphs_verdana_40_4bpp[] FONT_TABLE_LOCATION_FLASH_ATTRIBUTE = | ||||
| { | ||||
|     {     0, 0x002B,  25,  25,  26,   4,  33,   0,   0, 0x00 }, | ||||
|     {   325, 0x002D,  13,   4,  15,   3,  18,   0,   0, 0x00 }, | ||||
|     {   353, 0x003F,  17,  31,  31,   3,  22,   0,   0, 0x00 } | ||||
| }; | ||||
|  | ||||
| // verdana_40_4bpp | ||||
| extern const touchgfx::GlyphNode glyphs_verdana_40_4bpp[]; | ||||
| extern const uint8_t unicodes_verdana_40_4bpp_0[]; | ||||
| extern const uint8_t* const unicodes_verdana_40_4bpp[] = | ||||
| { | ||||
|     unicodes_verdana_40_4bpp_0 | ||||
| }; | ||||
| extern const touchgfx::KerningNode kerning_verdana_40_4bpp[]; | ||||
|  | ||||
| touchgfx::GeneratedFont& getFont_verdana_40_4bpp(); | ||||
|  | ||||
| touchgfx::GeneratedFont& getFont_verdana_40_4bpp() | ||||
| { | ||||
|     static touchgfx::GeneratedFont verdana_40_4bpp(glyphs_verdana_40_4bpp, 3, 40, 0, 4, 1, 0, 0, unicodes_verdana_40_4bpp, kerning_verdana_40_4bpp, 63, 0, 0); | ||||
|     return verdana_40_4bpp; | ||||
| } | ||||
| @@ -0,0 +1,148 @@ | ||||
| /* DO NOT EDIT THIS FILE */ | ||||
| /* This file is autogenerated by the text-database code generator */ | ||||
|  | ||||
| #include <fonts/UnmappedDataFont.hpp> | ||||
| #include <fonts/ApplicationFontProvider.hpp> | ||||
| #include <touchgfx/hal/FlashDataReader.hpp> | ||||
|  | ||||
| namespace touchgfx | ||||
| { | ||||
| GlyphNode UnmappedDataFont::glyphNodeBuffer; | ||||
|  | ||||
| UnmappedDataFont::UnmappedDataFont(const GlyphNode* list, const uint16_t* unicodeList, uint16_t size, uint16_t height, uint8_t pixBelowBase, uint8_t bitsPerPixel, uint8_t byteAlignRow, uint8_t maxLeft, uint8_t maxRight, const uint8_t* const* glyphDataList, const KerningNode* kerningList, const Unicode::UnicodeChar fallbackChar, const Unicode::UnicodeChar ellipsisChar, const uint16_t* const gsubData) : | ||||
|     Font(height, pixBelowBase, bitsPerPixel, byteAlignRow, maxLeft, maxRight, fallbackChar, ellipsisChar), | ||||
|     glyphList(list), | ||||
|     listSize(size), | ||||
|     unicodes(unicodeList), | ||||
|     glyphDataList(glyphDataList), | ||||
|     kerningData(kerningList), | ||||
|     gsubTable(gsubData) | ||||
| { | ||||
| } | ||||
|  | ||||
| const GlyphNode* UnmappedDataFont::getGlyph(Unicode::UnicodeChar unicode, const uint8_t*& pixelData, uint8_t& bitsPerPixel) const | ||||
| { | ||||
|     int index = lookupUnicode(unicode); | ||||
|  | ||||
|     if (index != -1) | ||||
|     { | ||||
|         //Read glyphNode from unmapped flash | ||||
|         touchgfx::FlashDataReader* const flashReader = ApplicationFontProvider::getFlashReader(); | ||||
|         flashReader->copyData(glyphList + index, &glyphNodeBuffer, sizeof(GlyphNode)); | ||||
|  | ||||
|         pixelData = getPixelData(const_cast<const GlyphNode*>(&glyphNodeBuffer)); | ||||
|         bitsPerPixel = getBitsPerPixel(); | ||||
|         return &glyphNodeBuffer; | ||||
|     } | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
| const uint8_t* UnmappedDataFont::getPixelData(const GlyphNode* glyph) const | ||||
| { | ||||
|     const uint8_t* const* table = (const uint8_t* const*)glyphDataList; | ||||
|     return &(table[glyph->unicode / 2048][glyph->dataOffset]); | ||||
| } | ||||
|  | ||||
| int8_t UnmappedDataFont::getKerning(Unicode::UnicodeChar prevChar, const GlyphNode* glyph) const | ||||
| { | ||||
|     if (!glyph || glyph->kerningTableSize == 0) | ||||
|     { | ||||
|         return 0; | ||||
|     } | ||||
|  | ||||
|     const KerningNode* kerndata = kerningData + glyph->kerningTablePos(); | ||||
|     for (uint16_t i = glyph->kerningTableSize; i > 0; i--, kerndata++) | ||||
|     { | ||||
|         if (prevChar == kerndata->unicodePrevChar) | ||||
|         { | ||||
|             return kerndata->distance; | ||||
|         } | ||||
|         if (prevChar < kerndata->unicodePrevChar) | ||||
|         { | ||||
|             break; | ||||
|         } | ||||
|     } | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
| int UnmappedDataFont::lookupUnicode(uint16_t unicode) const | ||||
| { | ||||
|     int32_t min = 0; | ||||
|     int32_t max = listSize - 1; | ||||
|  | ||||
|     int32_t mid = min + (unicode - unicodes[min]); // Linear up from [min].unicode | ||||
|     if (mid < min) | ||||
|     { | ||||
|         // Unicode < unicodes[min] => not found | ||||
|         return -1; | ||||
|     } | ||||
|     if (mid > max) | ||||
|     { | ||||
|         // Linear up ends too high | ||||
|         mid = max - (unicodes[max] - unicode); // Linear down from [max].unicode | ||||
|         if (mid > max) | ||||
|         { | ||||
|             // Unicode > unicodes[max] => not found | ||||
|             return -1; | ||||
|         } | ||||
|         if (mid < min) | ||||
|         { | ||||
|             // Linear down ends too low, take the middle element | ||||
|             mid = (min + max) / 2; | ||||
|         } | ||||
|     } | ||||
|     while (min <= max) | ||||
|     { | ||||
|         if (unicode == unicodes[mid]) | ||||
|         { | ||||
|             // Found at [mid] | ||||
|             return mid; | ||||
|         } | ||||
|         if (unicode < unicodes[mid]) | ||||
|         { | ||||
|             // Unicode is in lower half | ||||
|             max = mid - 1; | ||||
|             if (max < min) | ||||
|             { | ||||
|                 // Range is empty => not found | ||||
|                 break; | ||||
|             } | ||||
|             // We adjusted max, try linear down from [max].unicode | ||||
|             mid = max - (unicodes[max] - unicode); | ||||
|             if (mid > max) | ||||
|             { | ||||
|                 // Unicode > [max].unicode => not found | ||||
|                 break; | ||||
|             } | ||||
|             if (mid < min) | ||||
|             { | ||||
|                 // Linear down ends too low, take the middle element | ||||
|                 mid = (min + max) / 2; | ||||
|             } | ||||
|         } | ||||
|         else | ||||
|         { | ||||
|             // Unicode is in upper half | ||||
|             min = mid + 1; | ||||
|             if (min > max) | ||||
|             { | ||||
|                 // Range is empty => not found | ||||
|                 break; | ||||
|             } | ||||
|             // We adjusted min, try linear up from [min].unicode | ||||
|             mid = min + (unicode - unicodes[min]); | ||||
|             if (mid < min) | ||||
|             { | ||||
|                 // Unicode < [min].unicode => not found | ||||
|                 break; | ||||
|             } | ||||
|             if (mid > max) | ||||
|             { | ||||
|                 // Linear up ends too high, take the middle element | ||||
|                 mid = (min + max) / 2; | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|     return -1; | ||||
| } | ||||
| } // namespace touchgfx | ||||
| @@ -0,0 +1,30 @@ | ||||
| /*********************************************************************************/ | ||||
| /********** THIS FILE IS GENERATED BY TOUCHGFX DESIGNER, DO NOT MODIFY ***********/ | ||||
| /*********************************************************************************/ | ||||
| #ifndef FRONTENDAPPLICATIONBASE_HPP | ||||
| #define FRONTENDAPPLICATIONBASE_HPP | ||||
|  | ||||
| #include <mvp/MVPApplication.hpp> | ||||
| #include <gui/model/Model.hpp> | ||||
|  | ||||
| class FrontendHeap; | ||||
|  | ||||
| class FrontendApplicationBase : public touchgfx::MVPApplication | ||||
| { | ||||
| public: | ||||
|     FrontendApplicationBase(Model& m, FrontendHeap& heap); | ||||
|     virtual ~FrontendApplicationBase() { } | ||||
|  | ||||
|     // MainView | ||||
|     void gotoMainViewScreenNoTransition(); | ||||
|  | ||||
| protected: | ||||
|     touchgfx::Callback<FrontendApplicationBase> transitionCallback; | ||||
|     FrontendHeap& frontendHeap; | ||||
|     Model& model; | ||||
|  | ||||
|     // MainView | ||||
|     void gotoMainViewScreenNoTransitionImpl(); | ||||
| }; | ||||
|  | ||||
| #endif // FRONTENDAPPLICATIONBASE_HPP | ||||
| @@ -0,0 +1,87 @@ | ||||
| /*********************************************************************************/ | ||||
| /********** THIS FILE IS GENERATED BY TOUCHGFX DESIGNER, DO NOT MODIFY ***********/ | ||||
| /*********************************************************************************/ | ||||
| #ifndef FRONTENDHEAPBASE_HPP | ||||
| #define FRONTENDHEAPBASE_HPP | ||||
|  | ||||
| #include <common/Meta.hpp> | ||||
| #include <common/Partition.hpp> | ||||
| #include <mvp/MVPHeap.hpp> | ||||
|  | ||||
| #include <touchgfx/transitions/NoTransition.hpp> | ||||
| #include <gui/common/FrontendApplication.hpp> | ||||
| #include <gui/model/Model.hpp> | ||||
|  | ||||
| #include <gui/mainview_screen/MainViewView.hpp> | ||||
| #include <gui/mainview_screen/MainViewPresenter.hpp> | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * This class provides the memory that shall be used for memory allocations | ||||
|  * in the frontend. A single instance of the FrontendHeap is allocated once (in heap | ||||
|  * memory), and all other frontend objects such as views, presenters and data model are | ||||
|  * allocated within the scope of this FrontendHeap. As such, the RAM usage of the entire | ||||
|  * user interface is sizeof(FrontendHeap). | ||||
|  * | ||||
|  * @note The FrontendHeap reserves memory for the most memory-consuming presenter and | ||||
|  * view only. The largest of these classes are determined at compile-time using template | ||||
|  * magic. As such, it is important to add all presenters, views and transitions to the | ||||
|  * type lists in this class. | ||||
|  * | ||||
|  */ | ||||
| class FrontendHeapBase : public touchgfx::MVPHeap | ||||
| { | ||||
| public: | ||||
|     /** | ||||
|      * A list of all view types. Must end with meta::Nil. | ||||
|      * @note All view types used in the application MUST be added to this list! | ||||
|      */ | ||||
|     typedef touchgfx::meta::TypeList< MainViewView, | ||||
|             touchgfx::meta::Nil | ||||
|             > GeneratedViewTypes; | ||||
|  | ||||
|     /** | ||||
|      * Determine (compile time) the View type of largest size. | ||||
|      */ | ||||
|     typedef touchgfx::meta::select_type_maxsize< GeneratedViewTypes >::type MaxGeneratedViewType; | ||||
|  | ||||
|     /** | ||||
|      * A list of all presenter types. Must end with meta::Nil. | ||||
|      * @note All presenter types used in the application MUST be added to this list! | ||||
|      */ | ||||
|     typedef touchgfx::meta::TypeList< MainViewPresenter, | ||||
|             touchgfx::meta::Nil | ||||
|             > GeneratedPresenterTypes; | ||||
|  | ||||
|     /** | ||||
|      * Determine (compile time) the Presenter type of largest size. | ||||
|      */ | ||||
|     typedef touchgfx::meta::select_type_maxsize< GeneratedPresenterTypes >::type MaxGeneratedPresenterType; | ||||
|  | ||||
|     /** | ||||
|      * A list of all transition types. Must end with meta::Nil. | ||||
|      * @note All transition types used in the application MUST be added to this list! | ||||
|      */ | ||||
|     typedef touchgfx::meta::TypeList< touchgfx::NoTransition, | ||||
|             touchgfx::meta::Nil | ||||
|             > GeneratedTransitionTypes; | ||||
|  | ||||
|     /** | ||||
|      * Determine (compile time) the Transition type of largest size. | ||||
|      */ | ||||
|     typedef touchgfx::meta::select_type_maxsize< GeneratedTransitionTypes >::type MaxGeneratedTransitionType; | ||||
|  | ||||
|     virtual void gotoStartScreen(FrontendApplication& app) | ||||
|     { | ||||
|         app.gotoMainViewScreenNoTransition(); | ||||
|     } | ||||
| protected: | ||||
|     FrontendHeapBase(touchgfx::AbstractPartition& presenters, touchgfx::AbstractPartition& views, touchgfx::AbstractPartition& transitions, FrontendApplication& app) | ||||
|         : MVPHeap(presenters, views, transitions, app) | ||||
|     { | ||||
|  | ||||
|     } | ||||
|  | ||||
| }; | ||||
|  | ||||
| #endif // FRONTENDHEAPBASE_HPP | ||||
| @@ -0,0 +1,11 @@ | ||||
| /*********************************************************************************/ | ||||
| /********** THIS FILE IS GENERATED BY TOUCHGFX DESIGNER, DO NOT MODIFY ***********/ | ||||
| /*********************************************************************************/ | ||||
| #ifndef SIMCONSTANTS_HPP | ||||
| #define SIMCONSTANTS_HPP | ||||
|  | ||||
| static unsigned short SIM_WIDTH = 480; | ||||
| static unsigned short SIM_HEIGHT = 272; | ||||
| #define SIM_TITLE "STM32F746G_DISCO" | ||||
|  | ||||
| #endif // SIMCONSTANTS_HPP | ||||
| @@ -0,0 +1,101 @@ | ||||
| /*********************************************************************************/ | ||||
| /********** THIS FILE IS GENERATED BY TOUCHGFX DESIGNER, DO NOT MODIFY ***********/ | ||||
| /*********************************************************************************/ | ||||
| #ifndef MAINVIEWVIEWBASE_HPP | ||||
| #define MAINVIEWVIEWBASE_HPP | ||||
|  | ||||
| #include <gui/common/FrontendApplication.hpp> | ||||
| #include <mvp/View.hpp> | ||||
| #include <gui/mainview_screen/MainViewPresenter.hpp> | ||||
| #include <touchgfx/widgets/Box.hpp> | ||||
| #include <touchgfx/widgets/TextArea.hpp> | ||||
| #include <touchgfx/widgets/TextAreaWithWildcard.hpp> | ||||
| #include <touchgfx/widgets/graph/GraphWrapAndClear.hpp> | ||||
| #include <touchgfx/widgets/graph/GraphElements.hpp> | ||||
| #include <touchgfx/widgets/canvas/PainterRGB565.hpp> | ||||
| #include <touchgfx/widgets/Button.hpp> | ||||
| #include <touchgfx/widgets/Image.hpp> | ||||
|  | ||||
| class MainViewViewBase : public touchgfx::View<MainViewPresenter> | ||||
| { | ||||
| public: | ||||
|     MainViewViewBase(); | ||||
|     virtual ~MainViewViewBase() {} | ||||
|     virtual void setupScreen(); | ||||
|  | ||||
|     /* | ||||
|      * Virtual Action Handlers | ||||
|      */ | ||||
|     virtual void onBtnMinusPressed() | ||||
|     { | ||||
|         // Override and implement this function in MainView | ||||
|     } | ||||
|  | ||||
|     virtual void onBtnPlusPressed() | ||||
|     { | ||||
|         // Override and implement this function in MainView | ||||
|     } | ||||
|  | ||||
|     virtual void onCheckBoxTriggerPressed() | ||||
|     { | ||||
|         // Override and implement this function in MainView | ||||
|     } | ||||
|  | ||||
| protected: | ||||
|     FrontendApplication& application() { | ||||
|         return *static_cast<FrontendApplication*>(touchgfx::Application::getInstance()); | ||||
|     } | ||||
|  | ||||
|     /* | ||||
|      * Member Declarations | ||||
|      */ | ||||
|     touchgfx::Box __background; | ||||
|     touchgfx::Box bgView; | ||||
|     touchgfx::TextArea labelTitle; | ||||
|     touchgfx::Box bgSignal; | ||||
|     touchgfx::TextAreaWithTwoWildcards labelSignal; | ||||
|     touchgfx::TextAreaWithOneWildcard labelDivTime; | ||||
|     touchgfx::Box chartBG; | ||||
|     touchgfx::GraphWrapAndClear<460> chart; | ||||
|     touchgfx::GraphElementDiamonds chartDiamonds1; | ||||
|     touchgfx::PainterRGB565 chartDiamonds1Painter; | ||||
|     touchgfx::GraphElementGridX chartMajorXAxisGrid; | ||||
|     touchgfx::Button btnPlus; | ||||
|     touchgfx::Button btnMinus; | ||||
|     touchgfx::Button btnTrigger; | ||||
|     touchgfx::TextArea labelTrigger; | ||||
|     touchgfx::TextArea labelPlus; | ||||
|     touchgfx::TextArea labelMinus; | ||||
|     touchgfx::Image redLedEnable; | ||||
|     touchgfx::Image redLedDisable; | ||||
|  | ||||
|     /* | ||||
|      * Wildcard Buffers | ||||
|      */ | ||||
|     static const uint16_t LABELSIGNALBUFFER1_SIZE = 20; | ||||
|     touchgfx::Unicode::UnicodeChar labelSignalBuffer1[LABELSIGNALBUFFER1_SIZE]; | ||||
|     static const uint16_t LABELSIGNALBUFFER2_SIZE = 20; | ||||
|     touchgfx::Unicode::UnicodeChar labelSignalBuffer2[LABELSIGNALBUFFER2_SIZE]; | ||||
|     static const uint16_t LABELDIVTIME_SIZE = 20; | ||||
|     touchgfx::Unicode::UnicodeChar labelDivTimeBuffer[LABELDIVTIME_SIZE]; | ||||
|  | ||||
| private: | ||||
|  | ||||
|     /* | ||||
|      * Callback Declarations | ||||
|      */ | ||||
|     touchgfx::Callback<MainViewViewBase, const touchgfx::AbstractButton&> buttonCallback; | ||||
|  | ||||
|     /* | ||||
|      * Callback Handler Declarations | ||||
|      */ | ||||
|     void buttonCallbackHandler(const touchgfx::AbstractButton& src); | ||||
|  | ||||
|     /* | ||||
|      * Canvas Buffer Size | ||||
|      */ | ||||
|     static const uint16_t CANVAS_BUFFER_SIZE = 7200; | ||||
|     uint8_t canvasBuffer[CANVAS_BUFFER_SIZE]; | ||||
| }; | ||||
|  | ||||
| #endif // MAINVIEWVIEWBASE_HPP | ||||
| @@ -0,0 +1,43 @@ | ||||
| /*********************************************************************************/ | ||||
| /********** THIS FILE IS GENERATED BY TOUCHGFX DESIGNER, DO NOT MODIFY ***********/ | ||||
| /*********************************************************************************/ | ||||
| #include <new> | ||||
| #include <gui_generated/common/FrontendApplicationBase.hpp> | ||||
| #include <gui/common/FrontendHeap.hpp> | ||||
| #include <touchgfx/transitions/NoTransition.hpp> | ||||
| #include <texts/TextKeysAndLanguages.hpp> | ||||
| #include <touchgfx/Texts.hpp> | ||||
| #include <touchgfx/hal/HAL.hpp> | ||||
| #include <platform/driver/lcd/LCD16bpp.hpp> | ||||
| #include <gui/mainview_screen/MainViewView.hpp> | ||||
| #include <gui/mainview_screen/MainViewPresenter.hpp> | ||||
|  | ||||
| using namespace touchgfx; | ||||
|  | ||||
| FrontendApplicationBase::FrontendApplicationBase(Model& m, FrontendHeap& heap) | ||||
|     : touchgfx::MVPApplication(), | ||||
|       transitionCallback(), | ||||
|       frontendHeap(heap), | ||||
|       model(m) | ||||
| { | ||||
|     touchgfx::HAL::getInstance()->setDisplayOrientation(touchgfx::ORIENTATION_LANDSCAPE); | ||||
|     touchgfx::Texts::setLanguage(GB); | ||||
|     reinterpret_cast<touchgfx::LCD16bpp&>(touchgfx::HAL::lcd()).enableTextureMapperAll(); | ||||
| } | ||||
|  | ||||
| /* | ||||
|  * Screen Transition Declarations | ||||
|  */ | ||||
|  | ||||
| // MainView | ||||
|  | ||||
| void FrontendApplicationBase::gotoMainViewScreenNoTransition() | ||||
| { | ||||
|     transitionCallback = touchgfx::Callback<FrontendApplicationBase>(this, &FrontendApplication::gotoMainViewScreenNoTransitionImpl); | ||||
|     pendingScreenTransitionCallback = &transitionCallback; | ||||
| } | ||||
|  | ||||
| void FrontendApplicationBase::gotoMainViewScreenNoTransitionImpl() | ||||
| { | ||||
|     touchgfx::makeTransition<MainViewView, MainViewPresenter, touchgfx::NoTransition, Model >(¤tScreen, ¤tPresenter, frontendHeap, ¤tTransition, &model); | ||||
| } | ||||
| @@ -0,0 +1,624 @@ | ||||
| /*********************************************************************************/ | ||||
| /********** THIS FILE IS GENERATED BY TOUCHGFX DESIGNER, DO NOT MODIFY ***********/ | ||||
| /*********************************************************************************/ | ||||
| #include <gui_generated/mainview_screen/MainViewViewBase.hpp> | ||||
| #include <touchgfx/Color.hpp> | ||||
| #include <texts/TextKeysAndLanguages.hpp> | ||||
| #include "BitmapDatabase.hpp" | ||||
|  | ||||
| MainViewViewBase::MainViewViewBase() : | ||||
|     buttonCallback(this, &MainViewViewBase::buttonCallbackHandler) | ||||
| { | ||||
|  | ||||
|     touchgfx::CanvasWidgetRenderer::setupBuffer(canvasBuffer, CANVAS_BUFFER_SIZE); | ||||
|  | ||||
|     __background.setPosition(0, 0, 480, 272); | ||||
|     __background.setColor(touchgfx::Color::getColorFrom24BitRGB(0, 0, 0)); | ||||
|  | ||||
|     bgView.setPosition(0, 0, 480, 270); | ||||
|     bgView.setColor(touchgfx::Color::getColorFrom24BitRGB(255, 255, 255)); | ||||
|  | ||||
|     labelTitle.setXY(337, 254); | ||||
|     labelTitle.setColor(touchgfx::Color::getColorFrom24BitRGB(0, 0, 0)); | ||||
|     labelTitle.setLinespacing(0); | ||||
|     labelTitle.setRotation(touchgfx::TEXT_ROTATE_180); | ||||
|     labelTitle.setTypedText(touchgfx::TypedText(T_SINGLEUSEID1)); | ||||
|  | ||||
|     bgSignal.setPosition(225, 18, 150, 23); | ||||
|     bgSignal.setColor(touchgfx::Color::getColorFrom24BitRGB(20, 151, 197)); | ||||
|  | ||||
|     labelSignal.setPosition(232, 24, 137, 13); | ||||
|     labelSignal.setColor(touchgfx::Color::getColorFrom24BitRGB(0, 0, 0)); | ||||
|     labelSignal.setLinespacing(0); | ||||
|     labelSignal.setRotation(touchgfx::TEXT_ROTATE_180); | ||||
|     touchgfx::Unicode::snprintf(labelSignalBuffer1, LABELSIGNALBUFFER1_SIZE, "%s", touchgfx::TypedText(T_SINGLEUSEID3).getText()); | ||||
|     labelSignal.setWildcard1(labelSignalBuffer1); | ||||
|     touchgfx::Unicode::snprintf(labelSignalBuffer2, LABELSIGNALBUFFER2_SIZE, "%s", touchgfx::TypedText(T_SINGLEUSEID4).getText()); | ||||
|     labelSignal.setWildcard2(labelSignalBuffer2); | ||||
|     labelSignal.setTypedText(touchgfx::TypedText(T_SINGLEUSEID2)); | ||||
|  | ||||
|     labelDivTime.setPosition(125, 24, 70, 13); | ||||
|     labelDivTime.setColor(touchgfx::Color::getColorFrom24BitRGB(0, 0, 0)); | ||||
|     labelDivTime.setLinespacing(0); | ||||
|     labelDivTime.setRotation(touchgfx::TEXT_ROTATE_180); | ||||
|     Unicode::snprintf(labelDivTimeBuffer, LABELDIVTIME_SIZE, "%s", touchgfx::TypedText(T_SINGLEUSEID6).getText()); | ||||
|     labelDivTime.setWildcard(labelDivTimeBuffer); | ||||
|     labelDivTime.setTypedText(touchgfx::TypedText(T_SINGLEUSEID5)); | ||||
|  | ||||
|     chartBG.setPosition(10, 62, 460, 190); | ||||
|     chartBG.setColor(touchgfx::Color::getColorFrom24BitRGB(0, 0, 0)); | ||||
|  | ||||
|     chart.setScale(1); | ||||
|     chart.setPosition(10, 62, 460, 190); | ||||
|     chart.setGraphAreaMargin(0, 0, 0, 0); | ||||
|     chart.setGraphAreaPadding(0, 0, 0, 0); | ||||
|     chart.setGraphRangeY(0, 4000); | ||||
|  | ||||
|     chartMajorXAxisGrid.setScale(1); | ||||
|     chartMajorXAxisGrid.setColor(touchgfx::Color::getColorFrom24BitRGB(255, 255, 255)); | ||||
|     chartMajorXAxisGrid.setInterval(1000); | ||||
|     chartMajorXAxisGrid.setLineWidth(1); | ||||
|     chartMajorXAxisGrid.setAlpha(100); | ||||
|     chart.addGraphElement(chartMajorXAxisGrid); | ||||
|  | ||||
|     chartDiamonds1.setScale(1); | ||||
|     chartDiamonds1Painter.setColor(touchgfx::Color::getColorFrom24BitRGB(20, 151, 197)); | ||||
|     chartDiamonds1.setPainter(chartDiamonds1Painter); | ||||
|     chartDiamonds1.setDiamondWidth(2); | ||||
|     chart.addGraphElement(chartDiamonds1); | ||||
|  | ||||
|     chart.addDataPoint(2498.16152996877f); | ||||
|     chart.addDataPoint(2353.95011743646f); | ||||
|     chart.addDataPoint(2210.80821332167f); | ||||
|     chart.addDataPoint(2070.05481729737f); | ||||
|     chart.addDataPoint(1932.97153961643f); | ||||
|     chart.addDataPoint(1800.78814567344f); | ||||
|     chart.addDataPoint(1674.66882819202f); | ||||
|     chart.addDataPoint(1555.69916716249f); | ||||
|     chart.addDataPoint(1444.87411595045f); | ||||
|     chart.addDataPoint(1343.08698011751f); | ||||
|     chart.addDataPoint(1251.11972804461f); | ||||
|     chart.addDataPoint(1169.63449708926f); | ||||
|     chart.addDataPoint(1099.16662094741f); | ||||
|     chart.addDataPoint(1040.11906555873f); | ||||
|     chart.addDataPoint(992.758542289057f); | ||||
|     chart.addDataPoint(957.213121282826f); | ||||
|     chart.addDataPoint(933.471549578937f); | ||||
|     chart.addDataPoint(921.38424501381f); | ||||
|     chart.addDataPoint(920.665790167825f); | ||||
|     chart.addDataPoint(930.899187522654f); | ||||
|     chart.addDataPoint(951.541530336835f); | ||||
|     chart.addDataPoint(981.93123076167f); | ||||
|     chart.addDataPoint(1021.29663957473f); | ||||
|     chart.addDataPoint(1068.76586000854f); | ||||
|     chart.addDataPoint(1123.37796281667f); | ||||
|     chart.addDataPoint(1184.09489254652f); | ||||
|     chart.addDataPoint(1249.8145791573f); | ||||
|     chart.addDataPoint(1319.38467005141f); | ||||
|     chart.addDataPoint(1391.61679834098f); | ||||
|     chart.addDataPoint(1465.30135390912f); | ||||
|     chart.addDataPoint(1539.22239194769f); | ||||
|     chart.addDataPoint(1612.17263012064f); | ||||
|     chart.addDataPoint(1682.96846154533f); | ||||
|     chart.addDataPoint(1750.46432811646f); | ||||
|     chart.addDataPoint(1813.56696147545f); | ||||
|     chart.addDataPoint(1871.24883186929f); | ||||
|     chart.addDataPoint(1922.56077711325f); | ||||
|     chart.addDataPoint(1966.64374977601f); | ||||
|     chart.addDataPoint(2002.73940438593f); | ||||
|     chart.addDataPoint(2030.19950071225f); | ||||
|     chart.addDataPoint(2048.49403431417f); | ||||
|     chart.addDataPoint(2057.21777807045f); | ||||
|     chart.addDataPoint(2056.09550467788f); | ||||
|     chart.addDataPoint(2044.98552461555f); | ||||
|     chart.addDataPoint(2023.88166162241f); | ||||
|     chart.addDataPoint(1992.91358991483f); | ||||
|     chart.addDataPoint(1952.34552608547f); | ||||
|     chart.addDataPoint(1902.57327759355f); | ||||
|     chart.addDataPoint(1844.11977000313f); | ||||
|     chart.addDataPoint(1777.62897037958f); | ||||
|     chart.addDataPoint(1703.85838058905f); | ||||
|     chart.addDataPoint(1623.67014552512f); | ||||
|     chart.addDataPoint(1538.02089450502f); | ||||
|     chart.addDataPoint(1447.9504312774f); | ||||
|     chart.addDataPoint(1354.56943547979f); | ||||
|     chart.addDataPoint(1259.0461475607f); | ||||
|     chart.addDataPoint(1162.59262620909f); | ||||
|     chart.addDataPoint(1066.45017210997f); | ||||
|     chart.addDataPoint(971.874501447191f); | ||||
|     chart.addDataPoint(880.120711308616f); | ||||
|     chart.addDataPoint(792.428184160252f); | ||||
|     chart.addDataPoint(710.005681751191f); | ||||
|     chart.addDataPoint(634.016768675663f); | ||||
|     chart.addDataPoint(565.565601529158f); | ||||
|     chart.addDataPoint(505.68368954229f); | ||||
|     chart.addDataPoint(455.317158634531f); | ||||
|     chart.addDataPoint(415.315187263601f); | ||||
|     chart.addDataPoint(386.419490879107f); | ||||
|     chart.addDataPoint(369.255042057208f); | ||||
|     chart.addDataPoint(364.322200496632f); | ||||
|     chart.addDataPoint(371.990166717139f); | ||||
|     chart.addDataPoint(392.492133117652f); | ||||
|     chart.addDataPoint(425.921861841366f); | ||||
|     chart.addDataPoint(472.231936115555f); | ||||
|     chart.addDataPoint(531.233706073466f); | ||||
|     chart.addDataPoint(602.598789580077f); | ||||
|     chart.addDataPoint(685.862296500597f); | ||||
|     chart.addDataPoint(780.427567731731f); | ||||
|     chart.addDataPoint(885.572529669522f); | ||||
|     chart.addDataPoint(1000.45742275318f); | ||||
|     chart.addDataPoint(1124.13399219547f); | ||||
|     chart.addDataPoint(1255.55587422353f); | ||||
|     chart.addDataPoint(1393.59021511007f); | ||||
|     chart.addDataPoint(1537.03019411295f); | ||||
|     chart.addDataPoint(1684.60852006747f); | ||||
|     chart.addDataPoint(1835.01153347648f); | ||||
|     chart.addDataPoint(1986.89399779531f); | ||||
|     chart.addDataPoint(2138.89404077774f); | ||||
|     chart.addDataPoint(2289.64847189597f); | ||||
|     chart.addDataPoint(2437.80808073271f); | ||||
|     chart.addDataPoint(2582.05272647299f); | ||||
|     chart.addDataPoint(2721.10608771059f); | ||||
|     chart.addDataPoint(2853.74994882636f); | ||||
|     chart.addDataPoint(2978.83781807243f); | ||||
|     chart.addDataPoint(3095.30756984534f); | ||||
|     chart.addDataPoint(3202.19327671974f); | ||||
|     chart.addDataPoint(3298.63579179001f); | ||||
|     chart.addDataPoint(3383.89217684947f); | ||||
|     chart.addDataPoint(3457.34366964745f); | ||||
|     chart.addDataPoint(3518.50230180494f); | ||||
|     chart.addDataPoint(3567.01591958549f); | ||||
|     chart.addDataPoint(3602.67163395874f); | ||||
|     chart.addDataPoint(3625.39767053562f); | ||||
|     chart.addDataPoint(3635.26355411185f); | ||||
|     chart.addDataPoint(3632.47862876818f); | ||||
|     chart.addDataPoint(3617.38900991434f); | ||||
|     chart.addDataPoint(3590.47286387441f); | ||||
|     chart.addDataPoint(3552.33423363138f); | ||||
|     chart.addDataPoint(3503.69537303091f); | ||||
|     chart.addDataPoint(3445.38761143459f); | ||||
|     chart.addDataPoint(3378.3412081086f); | ||||
|     chart.addDataPoint(3303.57380212666f); | ||||
|     chart.addDataPoint(3222.17802057502f); | ||||
|     chart.addDataPoint(3135.30817200449f); | ||||
|     chart.addDataPoint(3044.166248269f); | ||||
|     chart.addDataPoint(2949.98745373155f); | ||||
|     chart.addDataPoint(2854.02518371323f); | ||||
|     chart.addDataPoint(2757.53615856496f); | ||||
|     chart.addDataPoint(2661.76522859386f); | ||||
|     chart.addDataPoint(2567.93050714519f); | ||||
|     chart.addDataPoint(2477.20883705247f); | ||||
|     chart.addDataPoint(2390.72175970029f); | ||||
|     chart.addDataPoint(2309.52218834859f); | ||||
|     chart.addDataPoint(2234.58193493706f); | ||||
|     chart.addDataPoint(2166.78013694806f); | ||||
|     chart.addDataPoint(2106.89301267804f); | ||||
|     chart.addDataPoint(2055.58465989646f); | ||||
|     chart.addDataPoint(2013.39932441127f); | ||||
|     chart.addDataPoint(1980.75508403971f); | ||||
|     chart.addDataPoint(1957.93907588148f); | ||||
|     chart.addDataPoint(1945.1042817061f); | ||||
|     chart.addDataPoint(1942.26794078699f); | ||||
|     chart.addDataPoint(1949.31162629146f); | ||||
|     chart.addDataPoint(1965.98289062426f); | ||||
|     chart.addDataPoint(1991.89859887366f); | ||||
|     chart.addDataPoint(2026.54977969581f); | ||||
|     chart.addDataPoint(2069.3080249602f); | ||||
|     chart.addDataPoint(2119.433335051f); | ||||
|     chart.addDataPoint(2176.08324500966f); | ||||
|     chart.addDataPoint(2238.32337033183f); | ||||
|     chart.addDataPoint(2305.13876941222f); | ||||
|     chart.addDataPoint(2375.44655479914f); | ||||
|     chart.addDataPoint(2448.10922594882f); | ||||
|     chart.addDataPoint(2521.94863912144f); | ||||
|     chart.addDataPoint(2595.76056303148f); | ||||
|     chart.addDataPoint(2668.32948177598f); | ||||
|     chart.addDataPoint(2738.4435797728f); | ||||
|     chart.addDataPoint(2804.90985277496f); | ||||
|     chart.addDataPoint(2866.56866627047f); | ||||
|     chart.addDataPoint(2922.30828770099f); | ||||
|     chart.addDataPoint(2971.07872543616f); | ||||
|     chart.addDataPoint(3011.90481544661f); | ||||
|     chart.addDataPoint(3043.89854139799f); | ||||
|     chart.addDataPoint(3066.27023498035f); | ||||
|     chart.addDataPoint(3078.33868226174f); | ||||
|     chart.addDataPoint(3079.54003172265f); | ||||
|     chart.addDataPoint(3069.43510535031f); | ||||
|     chart.addDataPoint(3047.71550665825f); | ||||
|     chart.addDataPoint(3014.20800126284f); | ||||
|     chart.addDataPoint(2968.87739554036f); | ||||
|     chart.addDataPoint(2911.82778837808f); | ||||
|     chart.addDataPoint(2843.30211356424f); | ||||
|     chart.addDataPoint(2763.68011441604f); | ||||
|     chart.addDataPoint(2673.4746622863f); | ||||
|     chart.addDataPoint(2573.32650786433f); | ||||
|     chart.addDataPoint(2463.99754642104f); | ||||
|     chart.addDataPoint(2346.362568763f); | ||||
|     chart.addDataPoint(2221.39977876022f); | ||||
|     chart.addDataPoint(2090.17997322145f); | ||||
|     chart.addDataPoint(1953.85471604644f); | ||||
|     chart.addDataPoint(1813.64340885993f); | ||||
|     chart.addDataPoint(1670.81975385948f); | ||||
|     chart.addDataPoint(1526.69735672767f); | ||||
|     chart.addDataPoint(1382.61496923895f); | ||||
|     chart.addDataPoint(1239.92132944347f); | ||||
|     chart.addDataPoint(1099.95995587542f); | ||||
|     chart.addDataPoint(964.053892264863f); | ||||
|     chart.addDataPoint(833.490758502282f); | ||||
|     chart.addDataPoint(709.508057423063f); | ||||
|     chart.addDataPoint(593.279270304739f); | ||||
|     chart.addDataPoint(485.900483250455f); | ||||
|     chart.addDataPoint(388.377965351926f); | ||||
|     chart.addDataPoint(301.616800551568f); | ||||
|     chart.addDataPoint(226.410680474746f); | ||||
|     chart.addDataPoint(163.43295501403f); | ||||
|     chart.addDataPoint(113.229075138452f); | ||||
|     chart.addDataPoint(76.2105749778991f); | ||||
|     chart.addDataPoint(52.6505180589065f); | ||||
|     chart.addDataPoint(42.6806035220837f); | ||||
|     chart.addDataPoint(46.2898714575933f); | ||||
|     chart.addDataPoint(63.3250931045901f); | ||||
|     chart.addDataPoint(93.4927744120464f); | ||||
|     chart.addDataPoint(136.362787286027f); | ||||
|     chart.addDataPoint(191.373643826556f); | ||||
|     chart.addDataPoint(257.839143167425f); | ||||
|     chart.addDataPoint(334.956595035294f); | ||||
|     chart.addDataPoint(421.816315070845f); | ||||
|     chart.addDataPoint(517.412361789622f); | ||||
|     chart.addDataPoint(620.654370745523f); | ||||
|     chart.addDataPoint(730.380356240368f); | ||||
|     chart.addDataPoint(845.37028959636f); | ||||
|     chart.addDataPoint(964.360467495699f); | ||||
|     chart.addDataPoint(1086.05808950723f); | ||||
|     chart.addDataPoint(1209.15640558989f); | ||||
|     chart.addDataPoint(1332.34988107002f); | ||||
|     chart.addDataPoint(1454.34932207031f); | ||||
|     chart.addDataPoint(1573.89676964443f); | ||||
|     chart.addDataPoint(1689.78000127185f); | ||||
|     chart.addDataPoint(1800.84653724104f); | ||||
|     chart.addDataPoint(1906.01670713524f); | ||||
|     chart.addDataPoint(2004.29605104954f); | ||||
|     chart.addDataPoint(2094.78654937146f); | ||||
|     chart.addDataPoint(2176.69675925518f); | ||||
|     chart.addDataPoint(2249.35059519109f); | ||||
|     chart.addDataPoint(2312.19479389216f); | ||||
|     chart.addDataPoint(2364.80485171087f); | ||||
|     chart.addDataPoint(2406.88943546893f); | ||||
|     chart.addDataPoint(2438.29320033238f); | ||||
|     chart.addDataPoint(2458.99798635566f); | ||||
|     chart.addDataPoint(2469.12234008041f); | ||||
|     chart.addDataPoint(2468.91947352481f); | ||||
|     chart.addDataPoint(2458.77351973709f); | ||||
|     chart.addDataPoint(2439.19432293755f); | ||||
|     chart.addDataPoint(2410.81068455502f); | ||||
|     chart.addDataPoint(2374.36208998218f); | ||||
|     chart.addDataPoint(2330.68937852645f); | ||||
|     chart.addDataPoint(2280.72391295925f); | ||||
|     chart.addDataPoint(2225.47586807717f); | ||||
|     chart.addDataPoint(2166.02149167661f); | ||||
|     chart.addDataPoint(2103.48957747199f); | ||||
|     chart.addDataPoint(2039.04741596675f); | ||||
|     chart.addDataPoint(1973.88602793813f); | ||||
|     chart.addDataPoint(1909.20552218248f); | ||||
|     chart.addDataPoint(1846.19997587994f); | ||||
|     chart.addDataPoint(1786.04253402068f); | ||||
|     chart.addDataPoint(1729.87080256671f); | ||||
|     chart.addDataPoint(1678.77255417956f); | ||||
|     chart.addDataPoint(1633.77213758327f); | ||||
|     chart.addDataPoint(1595.81758930656f); | ||||
|     chart.addDataPoint(1565.76855018638f); | ||||
|     chart.addDataPoint(1544.38551394646f); | ||||
|     chart.addDataPoint(1532.31997294539f); | ||||
|     chart.addDataPoint(1530.10597737818f); | ||||
|     chart.addDataPoint(1538.15313844642f); | ||||
|     chart.addDataPoint(1556.74101607895f); | ||||
|     chart.addDataPoint(1586.01515687331f); | ||||
|     chart.addDataPoint(1625.9846632246f); | ||||
|     chart.addDataPoint(1676.52140771814f); | ||||
|     chart.addDataPoint(1737.36092814148f); | ||||
|     chart.addDataPoint(1808.10487827696f); | ||||
|     chart.addDataPoint(1888.22516451379f); | ||||
|     chart.addDataPoint(1977.06958137832f); | ||||
|     chart.addDataPoint(2073.86894154431f); | ||||
|     chart.addDataPoint(2177.74563684763f); | ||||
|     chart.addDataPoint(2287.72354797896f); | ||||
|     chart.addDataPoint(2402.73899488014f); | ||||
|     chart.addDataPoint(2521.65291823011f); | ||||
|     chart.addDataPoint(2643.26388132495f); | ||||
|     chart.addDataPoint(2766.32189239938f); | ||||
|     chart.addDataPoint(2889.54278249335f); | ||||
|     chart.addDataPoint(3011.62306557547f); | ||||
|     chart.addDataPoint(3131.25499905342f); | ||||
|     chart.addDataPoint(3247.14188083541f); | ||||
|     chart.addDataPoint(3358.0129709998f); | ||||
|     chart.addDataPoint(3462.63841824187f); | ||||
|     chart.addDataPoint(3559.84359562074f); | ||||
|     chart.addDataPoint(3648.52285735013f); | ||||
|     chart.addDataPoint(3727.65250435361f); | ||||
|     chart.addDataPoint(3796.30282722524f); | ||||
|     chart.addDataPoint(3853.64905371093f); | ||||
|     chart.addDataPoint(3898.98117791971f); | ||||
|     chart.addDataPoint(3931.71229875958f); | ||||
|     chart.addDataPoint(3951.38572146587f); | ||||
|     chart.addDataPoint(3957.68045537062f); | ||||
|     chart.addDataPoint(3950.41517261464f); | ||||
|     chart.addDataPoint(3929.55055854869f); | ||||
|     chart.addDataPoint(3895.19000288732f); | ||||
|     chart.addDataPoint(3847.57864600903f); | ||||
|     chart.addDataPoint(3787.10080002096f); | ||||
|     chart.addDataPoint(3714.27573869891f); | ||||
|     chart.addDataPoint(3629.75195174718f); | ||||
|     chart.addDataPoint(3534.29986340332f); | ||||
|     chart.addDataPoint(3428.80319976948f); | ||||
|     chart.addDataPoint(3314.24898859747f); | ||||
|     chart.addDataPoint(3191.71643507156f); | ||||
|     chart.addDataPoint(3062.36461146352f); | ||||
|     chart.addDataPoint(2927.41944329348f); | ||||
|     chart.addDataPoint(2788.15972115477f); | ||||
|     chart.addDataPoint(2645.90264312584f); | ||||
|     chart.addDataPoint(2501.98884496645f); | ||||
|     chart.addDataPoint(2357.76726270145f); | ||||
|     chart.addDataPoint(2214.57983025488f); | ||||
|     chart.addDataPoint(2073.74636632937f); | ||||
|     chart.addDataPoint(1936.54960532935f); | ||||
|     chart.addDataPoint(1804.22089677646f); | ||||
|     chart.addDataPoint(1677.92634493268f); | ||||
|     chart.addDataPoint(1558.75377445362f); | ||||
|     chart.addDataPoint(1447.70067201258f); | ||||
|     chart.addDataPoint(1345.6632080031f); | ||||
|     chart.addDataPoint(1253.4264045126f); | ||||
|     chart.addDataPoint(1171.65566854496f); | ||||
|     chart.addDataPoint(1100.88976868054f); | ||||
|     chart.addDataPoint(1041.53524635275f); | ||||
|     chart.addDataPoint(993.862465092334f); | ||||
|     chart.addDataPoint(958.003180627205f); | ||||
|     chart.addDataPoint(933.949859564873f); | ||||
|     chart.addDataPoint(921.556530593503f); | ||||
|     chart.addDataPoint(920.541329289649f); | ||||
|     chart.addDataPoint(930.490704937062f); | ||||
|     chart.addDataPoint(950.864993196064f); | ||||
|     chart.addDataPoint(981.005649077371f); | ||||
|     chart.addDataPoint(1020.14382101058f); | ||||
|     chart.addDataPoint(1067.41015692803f); | ||||
|     chart.addDataPoint(1121.84589142383f); | ||||
|     chart.addDataPoint(1182.41487125746f); | ||||
|     chart.addDataPoint(1248.01652164594f); | ||||
|     chart.addDataPoint(1317.49969871034f); | ||||
|     chart.addDataPoint(1389.67677360021f); | ||||
|     chart.addDataPoint(1463.33850793239f); | ||||
|     chart.addDataPoint(1537.26893053666f); | ||||
|     chart.addDataPoint(1610.26036401239f); | ||||
|     chart.addDataPoint(1681.12832816866f); | ||||
|     chart.addDataPoint(1748.72606660092f); | ||||
|     chart.addDataPoint(1811.95881658905f); | ||||
|     chart.addDataPoint(1869.79709527656f); | ||||
|     chart.addDataPoint(1921.28951063418f); | ||||
|     chart.addDataPoint(1965.57448330145f); | ||||
|     chart.addDataPoint(2001.89086569557f); | ||||
|     chart.addDataPoint(2029.58740943056f); | ||||
|     chart.addDataPoint(2048.13084529744f); | ||||
|     chart.addDataPoint(2057.11257466468f); | ||||
|     chart.addDataPoint(2056.25388421828f); | ||||
|     chart.addDataPoint(2045.40950085282f); | ||||
|     chart.addDataPoint(2024.56964241742f); | ||||
|     chart.addDataPoint(1993.86038960647f); | ||||
|     chart.addDataPoint(1953.54241075325f); | ||||
|     chart.addDataPoint(1904.00809154626f); | ||||
|     chart.addDataPoint(1845.77705060754f); | ||||
|     chart.addDataPoint(1779.49015375888f); | ||||
|     chart.addDataPoint(1705.90196543066f); | ||||
|     chart.addDataPoint(1625.87199676958f); | ||||
|     chart.addDataPoint(1540.35451220129f); | ||||
|     chart.addDataPoint(1450.38726430556f); | ||||
|     chart.addDataPoint(1357.07919241112f); | ||||
|     chart.addDataPoint(1261.59723989917f); | ||||
|     chart.addDataPoint(1165.15249486225f); | ||||
|     chart.addDataPoint(1068.98560742878f); | ||||
|     chart.addDataPoint(974.352139779205f); | ||||
|     chart.addDataPoint(882.507398631334f); | ||||
|     chart.addDataPoint(794.691376751108f); | ||||
|     chart.addDataPoint(712.113841980428f); | ||||
|     chart.addDataPoint(635.939706871071f); | ||||
|     chart.addDataPoint(567.274941714921f); | ||||
|     chart.addDataPoint(507.15314312083f); | ||||
|     chart.addDataPoint(456.522808819327f); | ||||
|     chart.addDataPoint(416.235853959984f); | ||||
|     chart.addDataPoint(387.036969719073f); | ||||
|     chart.addDataPoint(369.55433315549f); | ||||
|     chart.addDataPoint(364.29169162753f); | ||||
|     chart.addDataPoint(371.621813962782f); | ||||
|     chart.addDataPoint(391.781540339122f); | ||||
|     chart.addDataPoint(424.868359468104f); | ||||
|     chart.addDataPoint(470.83860623253f); | ||||
|     chart.addDataPoint(529.507366880094f); | ||||
|     chart.addDataPoint(600.54993098868f); | ||||
|     chart.addDataPoint(683.504974994862f); | ||||
|     chart.addDataPoint(777.779276008702f); | ||||
|     chart.addDataPoint(882.653963300039f); | ||||
|     chart.addDataPoint(997.292285246845f); | ||||
|     chart.addDataPoint(1120.74875519554f); | ||||
|     chart.addDataPoint(1251.97946884273f); | ||||
|     chart.addDataPoint(1389.85370193824f); | ||||
|     chart.addDataPoint(1533.16642478815f); | ||||
|     chart.addDataPoint(1680.65177820295f); | ||||
|     chart.addDataPoint(1830.99715142559f); | ||||
|     chart.addDataPoint(1982.85791724914f); | ||||
|     chart.addDataPoint(2134.87243854262f); | ||||
|     chart.addDataPoint(2285.67742200897f); | ||||
|     chart.addDataPoint(2433.9230610023f); | ||||
|     chart.addDataPoint(2578.2882510653f); | ||||
|     chart.addDataPoint(2717.49532120618f); | ||||
|     chart.addDataPoint(2850.32435993187f); | ||||
|     chart.addDataPoint(2975.62675594322f); | ||||
|     chart.addDataPoint(3092.33801373674f); | ||||
|     chart.addDataPoint(3199.48949559456f); | ||||
|     chart.addDataPoint(3296.21913159931f); | ||||
|     chart.addDataPoint(3381.78077265175f); | ||||
|     chart.addDataPoint(3455.55227068475f); | ||||
|     chart.addDataPoint(3517.04211665236f); | ||||
|     chart.addDataPoint(3565.89450437512f); | ||||
|     chart.addDataPoint(3601.8928130386f); | ||||
|     chart.addDataPoint(3624.96153115415f); | ||||
|     chart.addDataPoint(3635.16642408051f); | ||||
|     chart.addDataPoint(3632.71317821097f); | ||||
|     chart.addDataPoint(3617.94432952306f); | ||||
|     chart.addDataPoint(3591.33461477786f); | ||||
|     chart.addDataPoint(3553.48483595369f); | ||||
|     chart.addDataPoint(3505.11418751151f); | ||||
|     chart.addDataPoint(3447.05128616496f); | ||||
|     chart.addDataPoint(3380.22391379834f); | ||||
|     chart.addDataPoint(3305.64749791147f); | ||||
|     chart.addDataPoint(3224.41286875589f); | ||||
|     chart.addDataPoint(3137.67287670428f); | ||||
|     chart.addDataPoint(3046.62843409265f); | ||||
|     chart.addDataPoint(2952.51402656411f); | ||||
|     chart.addDataPoint(2856.58281810206f); | ||||
|     chart.addDataPoint(2760.091608704f); | ||||
|     chart.addDataPoint(2664.28578438551f); | ||||
|     chart.addDataPoint(2570.38429951837f); | ||||
|     chart.addDataPoint(2479.56530457072f); | ||||
|     chart.addDataPoint(2392.95198315891f); | ||||
|     chart.addDataPoint(2311.59923422638f); | ||||
|     chart.addDataPoint(2236.48115524935f); | ||||
|     chart.addDataPoint(2168.47952031568f); | ||||
|     chart.addDataPoint(2108.37339412916f); | ||||
|     chart.addDataPoint(2056.82992602497f); | ||||
|     chart.addDataPoint(2014.39664288975f); | ||||
|     chart.addDataPoint(1981.495038458f); | ||||
|     chart.addDataPoint(1958.41577151333f); | ||||
|     chart.addDataPoint(1945.31540727837f); | ||||
|     chart.addDataPoint(1942.21480435281f); | ||||
|     chart.addDataPoint(1948.99910599523f); | ||||
|     chart.addDataPoint(1965.41937643595f); | ||||
|     chart.addDataPoint(1991.09591078094f); | ||||
|     chart.addDataPoint(2025.52299108748f); | ||||
|     chart.addDataPoint(2068.07528223298f); | ||||
|     chart.addDataPoint(2118.01563201244f); | ||||
|     chart.addDataPoint(2174.50418683294f); | ||||
|     chart.addDataPoint(2236.60881235034f); | ||||
|     chart.addDataPoint(2303.31656583111f); | ||||
|     chart.addDataPoint(2373.5461653903f); | ||||
|     chart.addDataPoint(2446.16143700458f); | ||||
|     chart.addDataPoint(2519.98510176538f); | ||||
|     chart.addDataPoint(2593.81343038455f); | ||||
|     chart.addDataPoint(2666.4310124983f); | ||||
|     chart.addDataPoint(2736.62576879968f); | ||||
|     chart.addDataPoint(2803.2039479659f); | ||||
|     chart.addDataPoint(2865.00483561013f); | ||||
|     chart.addDataPoint(2920.91532333287f); | ||||
|     chart.addDataPoint(2969.88356107525f); | ||||
|     chart.addDataPoint(3010.93224353809f); | ||||
|     chart.addDataPoint(3043.17089357408f); | ||||
|     chart.addDataPoint(3065.8070907262f); | ||||
|     chart.addDataPoint(3078.15665948738f); | ||||
|     chart.addDataPoint(3079.65248281779f); | ||||
|     chart.addDataPoint(3069.85200594073f); | ||||
|     chart.addDataPoint(3048.44331873356f); | ||||
|     chart.addDataPoint(3015.24954647983f); | ||||
|     chart.addDataPoint(2970.23181101964f); | ||||
|     chart.addDataPoint(2913.49051528455f); | ||||
|     chart.addDataPoint(2845.26492082728f); | ||||
|     chart.addDataPoint(2765.93119664907f); | ||||
|     chart.addDataPoint(2675.99873849282f); | ||||
|     chart.addDataPoint(2576.10500292531f); | ||||
|     chart.addDataPoint(2467.00874055675f); | ||||
|     chart.addDataPoint(2349.58187879895f); | ||||
|     chart.addDataPoint(2224.80001320788f); | ||||
|     chart.addDataPoint(2093.73163279017f); | ||||
|     chart.addDataPoint(1957.52629442287f); | ||||
|     chart.addDataPoint(1817.40182531075f); | ||||
|  | ||||
|     btnPlus.setXY(5, 1); | ||||
|     btnPlus.setBitmaps(touchgfx::Bitmap(BITMAP_BLUE_BUTTONS_SQUARE_ICON_BUTTON_ID), touchgfx::Bitmap(BITMAP_BLUE_BUTTONS_SQUARE_ICON_BUTTON_PRESSED_ID)); | ||||
|     btnPlus.setAction(buttonCallback); | ||||
|  | ||||
|     btnMinus.setXY(65, 1); | ||||
|     btnMinus.setBitmaps(touchgfx::Bitmap(BITMAP_BLUE_BUTTONS_SQUARE_ICON_BUTTON_ID), touchgfx::Bitmap(BITMAP_BLUE_BUTTONS_SQUARE_ICON_BUTTON_PRESSED_ID)); | ||||
|     btnMinus.setAction(buttonCallback); | ||||
|  | ||||
|     btnTrigger.setXY(415, 1); | ||||
|     btnTrigger.setBitmaps(touchgfx::Bitmap(BITMAP_BLUE_BUTTONS_SQUARE_ICON_BUTTON_ID), touchgfx::Bitmap(BITMAP_BLUE_BUTTONS_SQUARE_ICON_BUTTON_PRESSED_ID)); | ||||
|     btnTrigger.setAction(buttonCallback); | ||||
|  | ||||
|     labelTrigger.setXY(428, 24); | ||||
|     labelTrigger.setColor(touchgfx::Color::getColorFrom24BitRGB(255, 255, 255)); | ||||
|     labelTrigger.setLinespacing(0); | ||||
|     labelTrigger.setRotation(touchgfx::TEXT_ROTATE_180); | ||||
|     labelTrigger.setTypedText(touchgfx::TypedText(T_SINGLEUSEID7)); | ||||
|  | ||||
|     labelPlus.setXY(18, 2); | ||||
|     labelPlus.setColor(touchgfx::Color::getColorFrom24BitRGB(255, 255, 255)); | ||||
|     labelPlus.setLinespacing(0); | ||||
|     labelPlus.setTypedText(touchgfx::TypedText(T_SINGLEUSEID8)); | ||||
|  | ||||
|     labelMinus.setXY(85, 2); | ||||
|     labelMinus.setColor(touchgfx::Color::getColorFrom24BitRGB(255, 255, 255)); | ||||
|     labelMinus.setLinespacing(0); | ||||
|     labelMinus.setTypedText(touchgfx::TypedText(T_SINGLEUSEID9)); | ||||
|  | ||||
|     redLedEnable.setXY(388, 21); | ||||
|     redLedEnable.setBitmap(touchgfx::Bitmap(BITMAP_RED_LED_CIRCLE_01_ID)); | ||||
|  | ||||
|     redLedDisable.setXY(388, 21); | ||||
|     redLedDisable.setBitmap(touchgfx::Bitmap(BITMAP_RED_LED_CIRCLE_02_ID)); | ||||
|  | ||||
|     add(__background); | ||||
|     add(bgView); | ||||
|     add(labelTitle); | ||||
|     add(bgSignal); | ||||
|     add(labelSignal); | ||||
|     add(labelDivTime); | ||||
|     add(chartBG); | ||||
|     add(chart); | ||||
|     add(btnPlus); | ||||
|     add(btnMinus); | ||||
|     add(btnTrigger); | ||||
|     add(labelTrigger); | ||||
|     add(labelPlus); | ||||
|     add(labelMinus); | ||||
|     add(redLedEnable); | ||||
|     add(redLedDisable); | ||||
| } | ||||
|  | ||||
| void MainViewViewBase::setupScreen() | ||||
| { | ||||
|  | ||||
| } | ||||
|  | ||||
| void MainViewViewBase::buttonCallbackHandler(const touchgfx::AbstractButton& src) | ||||
| { | ||||
|     if (&src == &btnPlus) | ||||
|     { | ||||
|         //onPlusPush | ||||
|         //When btnPlus clicked call virtual function | ||||
|         //Call onBtnPlusPressed | ||||
|         onBtnPlusPressed(); | ||||
|     } | ||||
|     else if (&src == &btnMinus) | ||||
|     { | ||||
|         //onMinusPush | ||||
|         //When btnMinus clicked call virtual function | ||||
|         //Call onBtnMinusPressed | ||||
|         onBtnMinusPressed(); | ||||
|     } | ||||
|     else if (&src == &btnTrigger) | ||||
|     { | ||||
|         //onTriggerPush | ||||
|         //When btnTrigger clicked execute C++ code | ||||
|         //Execute C++ code | ||||
|         //When btnTrigger clicked toggle redLedDisable | ||||
|         if(redLedDisable.isVisible()){ | ||||
|         	redLedDisable.setVisible(false); | ||||
|         	redLedDisable.invalidate(); | ||||
|         } | ||||
|         else{ | ||||
|         	redLedDisable.setVisible(true); | ||||
|         	redLedDisable.invalidate(); | ||||
|         } | ||||
|  | ||||
|         //onTriggerCheckState | ||||
|         //When onTriggerPush completed call virtual function | ||||
|         //Call onCheckBoxTriggerPressed | ||||
|         onCheckBoxTriggerPressed(); | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,20 @@ | ||||
| // Generated by imageconverter. Please, do not edit! | ||||
|  | ||||
| #ifndef BITMAPDATABASE_HPP | ||||
| #define BITMAPDATABASE_HPP | ||||
|  | ||||
| #include <touchgfx/hal/Types.hpp> | ||||
| #include <touchgfx/Bitmap.hpp> | ||||
|  | ||||
| const uint16_t BITMAP_BLUE_BUTTONS_SQUARE_ICON_BUTTON_ID = 0; | ||||
| const uint16_t BITMAP_BLUE_BUTTONS_SQUARE_ICON_BUTTON_PRESSED_ID = 1; | ||||
| const uint16_t BITMAP_RED_LED_CIRCLE_01_ID = 2; | ||||
| const uint16_t BITMAP_RED_LED_CIRCLE_02_ID = 3; | ||||
|  | ||||
| namespace BitmapDatabase | ||||
| { | ||||
| const touchgfx::Bitmap::BitmapData* getInstance(); | ||||
| uint16_t getInstanceSize(); | ||||
| } | ||||
|  | ||||
| #endif | ||||
| @@ -0,0 +1,31 @@ | ||||
| // 4.16.1 0xe0e66494 | ||||
| // Generated by imageconverter. Please, do not edit! | ||||
|  | ||||
| #include <BitmapDatabase.hpp> | ||||
| #include <touchgfx/Bitmap.hpp> | ||||
|  | ||||
| extern const unsigned char image_blue_buttons_square_icon_button[]; // BITMAP_BLUE_BUTTONS_SQUARE_ICON_BUTTON_ID = 0, Size: 60x60 pixels | ||||
| extern const unsigned char image_blue_buttons_square_icon_button_pressed[]; // BITMAP_BLUE_BUTTONS_SQUARE_ICON_BUTTON_PRESSED_ID = 1, Size: 60x60 pixels | ||||
| extern const unsigned char image_red_led_circle_01[]; // BITMAP_RED_LED_CIRCLE_01_ID = 2, Size: 16x16 pixels | ||||
| extern const unsigned char image_red_led_circle_02[]; // BITMAP_RED_LED_CIRCLE_02_ID = 3, Size: 16x16 pixels | ||||
|  | ||||
| const touchgfx::Bitmap::BitmapData bitmap_database[] = | ||||
| { | ||||
|     { image_blue_buttons_square_icon_button, 0, 60, 60, 5, 4, 50, (uint8_t)(touchgfx::Bitmap::ARGB8888) >> 3, 50, (uint8_t)(touchgfx::Bitmap::ARGB8888) & 0x7 }, | ||||
|     { image_blue_buttons_square_icon_button_pressed, 0, 60, 60, 5, 4, 50, (uint8_t)(touchgfx::Bitmap::ARGB8888) >> 3, 50, (uint8_t)(touchgfx::Bitmap::ARGB8888) & 0x7 }, | ||||
|     { image_red_led_circle_01, 0, 16, 16, 3, 2, 10, (uint8_t)(touchgfx::Bitmap::ARGB8888) >> 3, 12, (uint8_t)(touchgfx::Bitmap::ARGB8888) & 0x7 }, | ||||
|     { image_red_led_circle_02, 0, 16, 16, 3, 2, 10, (uint8_t)(touchgfx::Bitmap::ARGB8888) >> 3, 12, (uint8_t)(touchgfx::Bitmap::ARGB8888) & 0x7 } | ||||
| }; | ||||
|  | ||||
| namespace BitmapDatabase | ||||
| { | ||||
| const touchgfx::Bitmap::BitmapData* getInstance() | ||||
| { | ||||
|     return bitmap_database; | ||||
| } | ||||
|  | ||||
| uint16_t getInstanceSize() | ||||
| { | ||||
|     return (uint16_t)(sizeof(bitmap_database) / sizeof(touchgfx::Bitmap::BitmapData)); | ||||
| } | ||||
| } | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -0,0 +1,95 @@ | ||||
| // 4.16.1 0x876f8c32 D2 AY R0 FARGB8888 U565 N0 SExtFlashSection | ||||
| // Generated by imageconverter. Please, do not edit! | ||||
|  | ||||
| #include <touchgfx/hal/Config.hpp> | ||||
|  | ||||
| LOCATION_PRAGMA("ExtFlashSection") | ||||
| KEEP extern const unsigned char image_red_led_circle_01[] LOCATION_ATTRIBUTE("ExtFlashSection") = // 16x16 ARGB8888 pixels. | ||||
| { | ||||
|     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||||
|     0x00, 0x00, 0x00, 0x00, 0xb0, 0xac, 0xb0, 0x2c, 0xb0, 0xac, 0xb0, 0x8e, | ||||
|     0xb0, 0xb0, 0xb0, 0xd3, 0xa8, 0xac, 0xa8, 0xf3, 0xa8, 0xac, 0xa8, 0xf3, | ||||
|     0xb0, 0xac, 0xb0, 0xd3, 0xb0, 0xac, 0xb0, 0x8e, 0xb0, 0xac, 0xb0, 0x2c, | ||||
|     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||||
|     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||||
|     0xa8, 0xa8, 0xa8, 0x04, 0xb0, 0xb4, 0xb0, 0x96, 0xa8, 0xa8, 0xa8, 0xfb, | ||||
|     0x90, 0x8c, 0x98, 0xff, 0x60, 0x60, 0xa8, 0xff, 0x60, 0x5c, 0xc0, 0xff, | ||||
|     0x58, 0x5c, 0xc0, 0xff, 0x60, 0x64, 0xa8, 0xff, 0x90, 0x90, 0x98, 0xff, | ||||
|     0xa8, 0xac, 0xa8, 0xfb, 0xb0, 0xb4, 0xb0, 0x92, 0xa8, 0xa8, 0xa8, 0x08, | ||||
|     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||||
|     0xa8, 0xa8, 0xa8, 0x04, 0xb8, 0xb8, 0xb8, 0xbe, 0x98, 0x9c, 0xa0, 0xff, | ||||
|     0x60, 0x60, 0xc0, 0xff, 0x98, 0x94, 0xf8, 0xff, 0xd0, 0xd4, 0xf8, 0xff, | ||||
|     0xe0, 0xe0, 0xf8, 0xff, 0xe0, 0xe0, 0xf8, 0xff, 0xd8, 0xd4, 0xf8, 0xff, | ||||
|     0x90, 0x94, 0xf8, 0xff, 0x60, 0x64, 0xc0, 0xff, 0xa0, 0xa0, 0xa0, 0xff, | ||||
|     0xb8, 0xb8, 0xb8, 0xba, 0xa8, 0xac, 0xa8, 0x04, 0x00, 0x00, 0x00, 0x00, | ||||
|     0x00, 0x00, 0x00, 0x00, 0xb8, 0xbc, 0xb8, 0x96, 0xa0, 0xa0, 0xa0, 0xff, | ||||
|     0x58, 0x58, 0xd8, 0xff, 0xc8, 0xc8, 0xf8, 0xff, 0xd0, 0xd4, 0xf8, 0xff, | ||||
|     0xd0, 0xd4, 0xf8, 0xff, 0xd0, 0xd4, 0xf8, 0xff, 0xd8, 0xd4, 0xf8, 0xff, | ||||
|     0xd0, 0xd4, 0xf8, 0xff, 0xd0, 0xd0, 0xf8, 0xff, 0xc8, 0xc4, 0xf8, 0xff, | ||||
|     0x58, 0x58, 0xd8, 0xff, 0xa8, 0xa8, 0xa8, 0xff, 0xb8, 0xbc, 0xb8, 0x92, | ||||
|     0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0x2c, 0xb8, 0xb4, 0xb8, 0xfb, | ||||
|     0x50, 0x50, 0xb8, 0xff, 0xa0, 0x9c, 0xf8, 0xff, 0xb8, 0xb8, 0xf8, 0xff, | ||||
|     0xb8, 0xb8, 0xf8, 0xff, 0xb8, 0xb8, 0xf8, 0xff, 0xb8, 0xb8, 0xf8, 0xff, | ||||
|     0xb8, 0xb8, 0xf8, 0xff, 0xb8, 0xb4, 0xf8, 0xff, 0xb8, 0xb4, 0xf8, 0xff, | ||||
|     0xb8, 0xb8, 0xf8, 0xff, 0x98, 0x98, 0xf8, 0xff, 0x58, 0x54, 0xc0, 0xff, | ||||
|     0xb8, 0xb8, 0xb8, 0xfb, 0xc0, 0xbc, 0xc0, 0x2c, 0xc0, 0xc4, 0xc0, 0x92, | ||||
|     0xa0, 0x9c, 0xa8, 0xff, 0x20, 0x1c, 0xf0, 0xff, 0x98, 0x9c, 0xf8, 0xff, | ||||
|     0x98, 0x9c, 0xf8, 0xff, 0xa0, 0x9c, 0xf8, 0xff, 0x98, 0x9c, 0xf8, 0xff, | ||||
|     0x98, 0x98, 0xf8, 0xff, 0x98, 0x98, 0xf8, 0xff, 0x98, 0x9c, 0xf8, 0xff, | ||||
|     0x98, 0x98, 0xf8, 0xff, 0x98, 0x98, 0xf8, 0xff, 0x98, 0x98, 0xf8, 0xff, | ||||
|     0x18, 0x1c, 0xf0, 0xff, 0xa8, 0xa4, 0xb0, 0xff, 0xc8, 0xc4, 0xc0, 0x8e, | ||||
|     0xc8, 0xc8, 0xc8, 0xd3, 0x70, 0x70, 0xb8, 0xff, 0x08, 0x0c, 0xf8, 0xff, | ||||
|     0x80, 0x7c, 0xf8, 0xff, 0x80, 0x80, 0xf8, 0xff, 0x80, 0x80, 0xf8, 0xff, | ||||
|     0x80, 0x80, 0xf8, 0xff, 0x80, 0x7c, 0xf8, 0xff, 0x80, 0x80, 0xf8, 0xff, | ||||
|     0x80, 0x80, 0xf8, 0xff, 0x80, 0x80, 0xf8, 0xff, 0x80, 0x7c, 0xf8, 0xff, | ||||
|     0x78, 0x7c, 0xf8, 0xff, 0x08, 0x08, 0xf8, 0xff, 0x78, 0x74, 0xb8, 0xff, | ||||
|     0xc8, 0xc8, 0xc8, 0xd3, 0xc8, 0xc8, 0xc8, 0xf3, 0x58, 0x58, 0xc8, 0xff, | ||||
|     0x00, 0x00, 0xf8, 0xff, 0x40, 0x40, 0xf8, 0xff, 0x60, 0x64, 0xf8, 0xff, | ||||
|     0x60, 0x64, 0xf8, 0xff, 0x60, 0x60, 0xf8, 0xff, 0x60, 0x60, 0xf8, 0xff, | ||||
|     0x60, 0x60, 0xf8, 0xff, 0x60, 0x60, 0xf8, 0xff, 0x60, 0x60, 0xf8, 0xff, | ||||
|     0x60, 0x60, 0xf8, 0xff, 0x40, 0x3c, 0xf8, 0xff, 0x00, 0x00, 0xf8, 0xff, | ||||
|     0x58, 0x5c, 0xc8, 0xff, 0xc8, 0xcc, 0xc8, 0xf3, 0xd0, 0xcc, 0xc8, 0xf3, | ||||
|     0x60, 0x5c, 0xc8, 0xff, 0x00, 0x00, 0xf8, 0xff, 0x08, 0x04, 0xf8, 0xff, | ||||
|     0x30, 0x30, 0xf8, 0xff, 0x48, 0x44, 0xf8, 0xff, 0x48, 0x48, 0xf8, 0xff, | ||||
|     0x48, 0x48, 0xf8, 0xff, 0x48, 0x48, 0xf8, 0xff, 0x48, 0x44, 0xf8, 0xff, | ||||
|     0x48, 0x44, 0xf8, 0xff, 0x30, 0x30, 0xf8, 0xff, 0x00, 0x04, 0xf8, 0xff, | ||||
|     0x00, 0x00, 0xf8, 0xff, 0x60, 0x64, 0xc8, 0xff, 0xd0, 0xd0, 0xd0, 0xf3, | ||||
|     0xd0, 0xd4, 0xd0, 0xd3, 0x80, 0x80, 0xc0, 0xff, 0x00, 0x00, 0xf8, 0xff, | ||||
|     0x00, 0x00, 0xf8, 0xff, 0x00, 0x00, 0xf8, 0xff, 0x10, 0x0c, 0xf8, 0xff, | ||||
|     0x18, 0x18, 0xf8, 0xff, 0x20, 0x20, 0xf8, 0xff, 0x20, 0x20, 0xf8, 0xff, | ||||
|     0x18, 0x18, 0xf8, 0xff, 0x08, 0x0c, 0xf8, 0xff, 0x00, 0x00, 0xf8, 0xff, | ||||
|     0x00, 0x00, 0xf8, 0xff, 0x00, 0x00, 0xf8, 0xff, 0x88, 0x84, 0xc0, 0xff, | ||||
|     0xd0, 0xd4, 0xd0, 0xd3, 0xd8, 0xd8, 0xd8, 0x92, 0xb8, 0xbc, 0xc0, 0xff, | ||||
|     0x10, 0x10, 0xf0, 0xff, 0x00, 0x00, 0xf8, 0xff, 0x00, 0x00, 0xf8, 0xff, | ||||
|     0x00, 0x00, 0xf8, 0xff, 0x00, 0x00, 0xf8, 0xff, 0x00, 0x00, 0xf8, 0xff, | ||||
|     0x00, 0x00, 0xf8, 0xff, 0x00, 0x00, 0xf8, 0xff, 0x00, 0x00, 0xf8, 0xff, | ||||
|     0x00, 0x00, 0xf8, 0xff, 0x00, 0x00, 0xf8, 0xff, 0x10, 0x10, 0xf0, 0xff, | ||||
|     0xc0, 0xc0, 0xc8, 0xff, 0xd8, 0xd8, 0xd8, 0x8e, 0xd8, 0xdc, 0xe0, 0x2c, | ||||
|     0xd8, 0xd8, 0xd8, 0xfb, 0x70, 0x70, 0xd0, 0xff, 0x00, 0x00, 0xf8, 0xff, | ||||
|     0x00, 0x00, 0xf8, 0xff, 0x00, 0x00, 0xf8, 0xff, 0x00, 0x00, 0xf8, 0xff, | ||||
|     0x00, 0x00, 0xf8, 0xff, 0x00, 0x00, 0xf0, 0xff, 0x00, 0x00, 0xf8, 0xff, | ||||
|     0x00, 0x00, 0xf8, 0xff, 0x00, 0x00, 0xf0, 0xff, 0x00, 0x00, 0xf8, 0xff, | ||||
|     0x78, 0x78, 0xd0, 0xff, 0xd8, 0xd8, 0xd8, 0xfb, 0xd8, 0xdc, 0xd8, 0x28, | ||||
|     0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0x92, 0xd0, 0xd0, 0xd0, 0xff, | ||||
|     0x58, 0x54, 0xe0, 0xff, 0x00, 0x00, 0xf8, 0xff, 0x00, 0x00, 0xf0, 0xff, | ||||
|     0x00, 0x00, 0xf8, 0xff, 0x00, 0x00, 0xf8, 0xff, 0x00, 0x00, 0xf8, 0xff, | ||||
|     0x00, 0x00, 0xf8, 0xff, 0x00, 0x00, 0xf8, 0xff, 0x00, 0x00, 0xf8, 0xff, | ||||
|     0x58, 0x58, 0xe0, 0xff, 0xd8, 0xd4, 0xd8, 0xff, 0xe0, 0xe0, 0xe0, 0x92, | ||||
|     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd8, 0xd4, 0xd8, 0x08, | ||||
|     0xe8, 0xe4, 0xe0, 0xba, 0xd8, 0xd8, 0xd8, 0xff, 0x80, 0x80, 0xd8, 0xff, | ||||
|     0x18, 0x18, 0xf0, 0xff, 0x00, 0x00, 0xf8, 0xff, 0x00, 0x00, 0xf8, 0xff, | ||||
|     0x00, 0x00, 0xf8, 0xff, 0x00, 0x00, 0xf8, 0xff, 0x18, 0x18, 0xf0, 0xff, | ||||
|     0x80, 0x84, 0xd8, 0xff, 0xd8, 0xd8, 0xd8, 0xff, 0xe8, 0xe4, 0xe8, 0xba, | ||||
|     0xd0, 0xcc, 0xc8, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||||
|     0x00, 0x00, 0x00, 0x00, 0xd0, 0xd4, 0xd8, 0x08, 0xe8, 0xec, 0xe8, 0x92, | ||||
|     0xe8, 0xe4, 0xe8, 0xfb, 0xd0, 0xd4, 0xd8, 0xff, 0xa0, 0xa4, 0xd8, 0xff, | ||||
|     0x80, 0x80, 0xd8, 0xff, 0x80, 0x80, 0xd8, 0xff, 0xa0, 0xa0, 0xd8, 0xff, | ||||
|     0xd8, 0xd8, 0xd8, 0xff, 0xe8, 0xe4, 0xe8, 0xfb, 0xe8, 0xec, 0xe8, 0x92, | ||||
|     0xf8, 0xfc, 0xf8, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||||
|     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||||
|     0x00, 0x00, 0x00, 0x00, 0xf0, 0xec, 0xe8, 0x2c, 0xf0, 0xf0, 0xf0, 0x8e, | ||||
|     0xf0, 0xec, 0xf0, 0xd3, 0xf0, 0xec, 0xe8, 0xf3, 0xf0, 0xec, 0xe8, 0xf3, | ||||
|     0xf0, 0xf0, 0xf0, 0xd3, 0xf0, 0xf0, 0xf0, 0x8e, 0xf0, 0xec, 0xe8, 0x2c, | ||||
|     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||||
|     0x00, 0x00, 0x00, 0x00 | ||||
| }; | ||||
| @@ -0,0 +1,95 @@ | ||||
| // 4.16.1 0xdefa7aca D2 AY R0 FARGB8888 U565 N0 SExtFlashSection | ||||
| // Generated by imageconverter. Please, do not edit! | ||||
|  | ||||
| #include <touchgfx/hal/Config.hpp> | ||||
|  | ||||
| LOCATION_PRAGMA("ExtFlashSection") | ||||
| KEEP extern const unsigned char image_red_led_circle_02[] LOCATION_ATTRIBUTE("ExtFlashSection") = // 16x16 ARGB8888 pixels. | ||||
| { | ||||
|     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||||
|     0x00, 0x00, 0x00, 0x00, 0xb0, 0xac, 0xb0, 0x2c, 0xb0, 0xac, 0xb0, 0x8e, | ||||
|     0xb0, 0xb0, 0xb0, 0xd3, 0xa8, 0xac, 0xa8, 0xf3, 0xa8, 0xac, 0xa8, 0xf3, | ||||
|     0xb0, 0xac, 0xb0, 0xd3, 0xb0, 0xac, 0xb0, 0x8e, 0xb0, 0xac, 0xb0, 0x2c, | ||||
|     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||||
|     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||||
|     0xa8, 0xa8, 0xa8, 0x04, 0xb0, 0xb4, 0xb0, 0x96, 0xa8, 0xa8, 0xa8, 0xfb, | ||||
|     0x90, 0x90, 0x90, 0xff, 0x80, 0x80, 0x88, 0xff, 0x88, 0x84, 0x98, 0xff, | ||||
|     0x88, 0x84, 0x98, 0xff, 0x80, 0x80, 0x88, 0xff, 0x90, 0x94, 0x98, 0xff, | ||||
|     0xa8, 0xac, 0xa8, 0xfb, 0xb0, 0xb4, 0xb0, 0x92, 0xa8, 0xa8, 0xa8, 0x08, | ||||
|     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||||
|     0xa8, 0xa8, 0xa8, 0x04, 0xb8, 0xb8, 0xb8, 0xbe, 0xa0, 0x9c, 0xa0, 0xff, | ||||
|     0x88, 0x88, 0x98, 0xff, 0xc0, 0xc0, 0xd0, 0xff, 0xe8, 0xe8, 0xf0, 0xff, | ||||
|     0xe8, 0xec, 0xf0, 0xff, 0xf0, 0xec, 0xf8, 0xff, 0xe8, 0xe8, 0xf0, 0xff, | ||||
|     0xc0, 0xc0, 0xd0, 0xff, 0x88, 0x8c, 0xa0, 0xff, 0xa0, 0xa4, 0xa0, 0xff, | ||||
|     0xb8, 0xb8, 0xb8, 0xba, 0xa8, 0xa8, 0xa8, 0x04, 0x00, 0x00, 0x00, 0x00, | ||||
|     0x00, 0x00, 0x00, 0x00, 0xb8, 0xbc, 0xb8, 0x96, 0xa0, 0xa0, 0xa0, 0xff, | ||||
|     0x90, 0x90, 0xa8, 0xff, 0xe0, 0xe0, 0xe8, 0xff, 0xe8, 0xe8, 0xf0, 0xff, | ||||
|     0xe8, 0xe4, 0xf0, 0xff, 0xe8, 0xe4, 0xf0, 0xff, 0xe0, 0xe8, 0xf0, 0xff, | ||||
|     0xe8, 0xe4, 0xf0, 0xff, 0xe8, 0xe8, 0xf0, 0xff, 0xe0, 0xdc, 0xe8, 0xff, | ||||
|     0x90, 0x90, 0xa8, 0xff, 0xa8, 0xa8, 0xa8, 0xff, 0xc0, 0xbc, 0xb8, 0x92, | ||||
|     0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0x2c, 0xb8, 0xb4, 0xb8, 0xfb, | ||||
|     0x80, 0x80, 0x98, 0xff, 0xc8, 0xc8, 0xd8, 0xff, 0xd8, 0xd8, 0xe8, 0xff, | ||||
|     0xd8, 0xd8, 0xe8, 0xff, 0xd8, 0xd8, 0xe8, 0xff, 0xd8, 0xd8, 0xe0, 0xff, | ||||
|     0xd8, 0xd8, 0xe8, 0xff, 0xd8, 0xd8, 0xe8, 0xff, 0xd8, 0xd8, 0xe0, 0xff, | ||||
|     0xd8, 0xd8, 0xe8, 0xff, 0xc8, 0xc4, 0xd8, 0xff, 0x88, 0x84, 0x98, 0xff, | ||||
|     0xb8, 0xb8, 0xb8, 0xfb, 0xc0, 0xc0, 0xc0, 0x2c, 0xc0, 0xc4, 0xc0, 0x92, | ||||
|     0xa0, 0xa0, 0xa8, 0xff, 0x80, 0x84, 0xb0, 0xff, 0xc8, 0xc8, 0xd8, 0xff, | ||||
|     0xc8, 0xc8, 0xe0, 0xff, 0xc8, 0xc8, 0xd8, 0xff, 0xc8, 0xcc, 0xd8, 0xff, | ||||
|     0xc8, 0xc8, 0xe0, 0xff, 0xc8, 0xc8, 0xd8, 0xff, 0xc8, 0xc8, 0xe0, 0xff, | ||||
|     0xc8, 0xcc, 0xe0, 0xff, 0xc8, 0xc8, 0xe0, 0xff, 0xc8, 0xc8, 0xe0, 0xff, | ||||
|     0x80, 0x84, 0xb0, 0xff, 0xa8, 0xa8, 0xa8, 0xff, 0xc0, 0xc4, 0xc8, 0x8e, | ||||
|     0xc8, 0xc8, 0xc8, 0xd3, 0x90, 0x94, 0xa0, 0xff, 0x80, 0x7c, 0xa8, 0xff, | ||||
|     0xc0, 0xbc, 0xd0, 0xff, 0xb8, 0xbc, 0xd8, 0xff, 0xc0, 0xbc, 0xd8, 0xff, | ||||
|     0xc0, 0xbc, 0xd8, 0xff, 0xb8, 0xbc, 0xd8, 0xff, 0xc0, 0xbc, 0xd0, 0xff, | ||||
|     0xc0, 0xbc, 0xd8, 0xff, 0xc0, 0xbc, 0xd8, 0xff, 0xc0, 0xbc, 0xd0, 0xff, | ||||
|     0xb8, 0xbc, 0xd8, 0xff, 0x80, 0x84, 0xb0, 0xff, 0x98, 0x98, 0xa8, 0xff, | ||||
|     0xc8, 0xc8, 0xc8, 0xd3, 0xc8, 0xc8, 0xc8, 0xf3, 0x90, 0x90, 0xa0, 0xff, | ||||
|     0x80, 0x80, 0xb0, 0xff, 0xa0, 0xa0, 0xc0, 0xff, 0xb0, 0xb0, 0xd0, 0xff, | ||||
|     0xb0, 0xb0, 0xd0, 0xff, 0xb0, 0xb0, 0xd0, 0xff, 0xb0, 0xb4, 0xd0, 0xff, | ||||
|     0xb0, 0xb0, 0xd0, 0xff, 0xb0, 0xb0, 0xd0, 0xff, 0xb0, 0xb4, 0xd0, 0xff, | ||||
|     0xb0, 0xb0, 0xd0, 0xff, 0xa0, 0xa0, 0xc0, 0xff, 0x80, 0x84, 0xb0, 0xff, | ||||
|     0x98, 0x98, 0xa8, 0xff, 0xc8, 0xcc, 0xc8, 0xf3, 0xd0, 0xcc, 0xd0, 0xf3, | ||||
|     0x98, 0x94, 0xa8, 0xff, 0x80, 0x84, 0xb0, 0xff, 0x88, 0x88, 0xb8, 0xff, | ||||
|     0x98, 0x9c, 0xc0, 0xff, 0xa8, 0xa8, 0xc8, 0xff, 0xa8, 0xa8, 0xc8, 0xff, | ||||
|     0xa8, 0xa8, 0xc8, 0xff, 0xa8, 0xa8, 0xc8, 0xff, 0xa8, 0xa8, 0xc8, 0xff, | ||||
|     0xa8, 0xa8, 0xc8, 0xff, 0xa0, 0x9c, 0xc0, 0xff, 0x88, 0x88, 0xb8, 0xff, | ||||
|     0x88, 0x88, 0xb8, 0xff, 0xa0, 0x9c, 0xb0, 0xff, 0xd0, 0xcc, 0xd0, 0xf3, | ||||
|     0xd0, 0xd4, 0xd8, 0xd3, 0xa0, 0xa4, 0xb0, 0xff, 0x88, 0x88, 0xb8, 0xff, | ||||
|     0x88, 0x88, 0xb8, 0xff, 0x88, 0x88, 0xb8, 0xff, 0x90, 0x90, 0xb8, 0xff, | ||||
|     0x98, 0x94, 0xc0, 0xff, 0x98, 0x98, 0xc0, 0xff, 0x98, 0x98, 0xc0, 0xff, | ||||
|     0x98, 0x98, 0xc0, 0xff, 0x90, 0x90, 0xc0, 0xff, 0x88, 0x8c, 0xb8, 0xff, | ||||
|     0x88, 0x8c, 0xc0, 0xff, 0x90, 0x8c, 0xc0, 0xff, 0xa8, 0xac, 0xb8, 0xff, | ||||
|     0xd0, 0xd4, 0xd0, 0xd3, 0xd8, 0xd8, 0xd8, 0x92, 0xc0, 0xbc, 0xc0, 0xff, | ||||
|     0x90, 0x94, 0xc0, 0xff, 0x90, 0x8c, 0xc0, 0xff, 0x90, 0x8c, 0xc0, 0xff, | ||||
|     0x90, 0x90, 0xc0, 0xff, 0x90, 0x90, 0xc0, 0xff, 0x90, 0x90, 0xc0, 0xff, | ||||
|     0x90, 0x90, 0xc0, 0xff, 0x90, 0x90, 0xc0, 0xff, 0x90, 0x90, 0xc0, 0xff, | ||||
|     0x90, 0x94, 0xc0, 0xff, 0x90, 0x90, 0xc0, 0xff, 0x98, 0x94, 0xc0, 0xff, | ||||
|     0xc8, 0xc4, 0xc8, 0xff, 0xd8, 0xd8, 0xd8, 0x8e, 0xe0, 0xdc, 0xd8, 0x2c, | ||||
|     0xd8, 0xd8, 0xd8, 0xfb, 0xa8, 0xac, 0xc0, 0xff, 0x98, 0x94, 0xc0, 0xff, | ||||
|     0x98, 0x94, 0xc8, 0xff, 0x90, 0x98, 0xc8, 0xff, 0x98, 0x94, 0xc8, 0xff, | ||||
|     0x98, 0x94, 0xc8, 0xff, 0x98, 0x98, 0xc8, 0xff, 0x98, 0x98, 0xc8, 0xff, | ||||
|     0x98, 0x98, 0xc8, 0xff, 0x98, 0x98, 0xc8, 0xff, 0x98, 0x98, 0xc8, 0xff, | ||||
|     0xb0, 0xb0, 0xc0, 0xff, 0xd8, 0xd8, 0xd8, 0xfb, 0xd8, 0xdc, 0xd8, 0x28, | ||||
|     0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0x92, 0xd0, 0xd0, 0xd0, 0xff, | ||||
|     0xa8, 0xac, 0xc8, 0xff, 0x98, 0x98, 0xc8, 0xff, 0x98, 0x9c, 0xc8, 0xff, | ||||
|     0x98, 0x9c, 0xc8, 0xff, 0xa0, 0x9c, 0xd0, 0xff, 0x98, 0x9c, 0xd0, 0xff, | ||||
|     0x98, 0x9c, 0xc8, 0xff, 0xa0, 0x9c, 0xd0, 0xff, 0xa0, 0x9c, 0xd0, 0xff, | ||||
|     0xb0, 0xb0, 0xc8, 0xff, 0xd8, 0xd4, 0xd8, 0xff, 0xe0, 0xe0, 0xe0, 0x92, | ||||
|     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd8, 0xd4, 0xd8, 0x08, | ||||
|     0xe8, 0xe4, 0xe8, 0xba, 0xd8, 0xd8, 0xd8, 0xff, 0xb8, 0xbc, 0xc8, 0xff, | ||||
|     0xa8, 0xa4, 0xd0, 0xff, 0xa0, 0xa0, 0xd0, 0xff, 0xa0, 0xa0, 0xd0, 0xff, | ||||
|     0xa0, 0xa0, 0xd0, 0xff, 0xa0, 0xa0, 0xd0, 0xff, 0xa8, 0xa4, 0xd0, 0xff, | ||||
|     0xb8, 0xbc, 0xc8, 0xff, 0xd8, 0xd8, 0xd8, 0xff, 0xe8, 0xe4, 0xe8, 0xba, | ||||
|     0xc8, 0xcc, 0xd0, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||||
|     0x00, 0x00, 0x00, 0x00, 0xd8, 0xd4, 0xd0, 0x08, 0xe8, 0xec, 0xe8, 0x92, | ||||
|     0xe8, 0xe4, 0xe8, 0xfb, 0xd8, 0xd4, 0xd8, 0xff, 0xc8, 0xc4, 0xd0, 0xff, | ||||
|     0xc0, 0xc0, 0xd0, 0xff, 0xc0, 0xbc, 0xd0, 0xff, 0xc8, 0xc4, 0xd0, 0xff, | ||||
|     0xd8, 0xd8, 0xd8, 0xff, 0xe8, 0xe8, 0xe8, 0xfb, 0xe8, 0xec, 0xe8, 0x92, | ||||
|     0xf8, 0xfc, 0xf8, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||||
|     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||||
|     0x00, 0x00, 0x00, 0x00, 0xe8, 0xec, 0xf0, 0x2c, 0xf0, 0xf0, 0xf0, 0x8e, | ||||
|     0xf0, 0xf0, 0xf0, 0xd3, 0xe8, 0xec, 0xe8, 0xf3, 0xe8, 0xec, 0xf0, 0xf3, | ||||
|     0xf0, 0xf0, 0xf0, 0xd3, 0xf0, 0xf0, 0xf0, 0x8e, 0xe8, 0xec, 0xf0, 0x2c, | ||||
|     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||||
|     0x00, 0x00, 0x00, 0x00 | ||||
| }; | ||||
| @@ -0,0 +1,9 @@ | ||||
| /*********************************************************************************/ | ||||
| /********** THIS FILE IS GENERATED BY TOUCHGFX DESIGNER, DO NOT MODIFY ***********/ | ||||
| /*********************************************************************************/ | ||||
| #include <touchgfx/hal/HAL.hpp> | ||||
| #include <touchgfx/lcd/LCD.hpp> | ||||
|  | ||||
| void setupSimulator(int argc, char** argv, touchgfx::HAL& hal); | ||||
|  | ||||
| touchgfx::LCD& setupLCD(); | ||||
| @@ -0,0 +1,31 @@ | ||||
| <?xml version="1.0" encoding="utf-8"?> | ||||
| <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | ||||
|   <ImportGroup Label="PropertySheets" /> | ||||
|   <PropertyGroup Label="UserMacros" /> | ||||
|   <PropertyGroup> | ||||
|     <DisableFastUpToDateCheck>true</DisableFastUpToDateCheck> | ||||
|   </PropertyGroup> | ||||
|   <PropertyGroup> | ||||
|     <LocalDebuggerEnvironment>PATH=$(TouchGFXReleasePath)\lib\sdl\win32</LocalDebuggerEnvironment> | ||||
|   </PropertyGroup> | ||||
|   <ItemDefinitionGroup> | ||||
|     <ClCompile> | ||||
|       <AdditionalIncludeDirectories>$(ApplicationRoot)\gui\include;$(ApplicationRoot)\generated\images\include;$(ApplicationRoot)\generated\bitmaps\include;$(ApplicationRoot)\generated\fonts\include;$(ApplicationRoot)\generated\texts\include;$(ApplicationRoot)\generated\gui_generated\include;$(ApplicationRoot)\generated\simulator\include;$(TouchGFXReleasePath)\framework\common\include;$(TouchGFXReleasePath)\framework\mvp\include;$(TouchGFXReleasePath)\framework\include\platform\hal\simulator\sdl\vendor\win32;$(TouchGFXReleasePath)\framework\platform\hal\simulator\sdl\3rdparty\sdl\include\win32;$(TouchGFXReleasePath)\framework\include</AdditionalIncludeDirectories> | ||||
|       <AdditionalOptions>$(UseBPPOption)</AdditionalOptions> | ||||
|       <PreprocessorDefinitions>SIMULATOR;_ITERATOR_DEBUG_LEVEL=0</PreprocessorDefinitions> | ||||
|       <DisableSpecificWarnings>4355</DisableSpecificWarnings> | ||||
|     </ClCompile> | ||||
|   </ItemDefinitionGroup> | ||||
|   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> | ||||
|     <Link> | ||||
|       <AdditionalDependencies>$(TouchGFXReleasePath)\lib\sdl\win32\SDL.lib;$(TouchGFXReleasePath)\lib\sdl\win32\SDLmain.lib;$(TouchGFXReleasePath)\lib\sdl\win32\SDL_image.lib;$(TouchGFXReleasePath)\lib\win\msvs\libtouchgfx_$(PlatformToolset)_debug.lib;user32.lib;shell32.lib</AdditionalDependencies> | ||||
|       <AdditionalOptions>/NODEFAULTLIB:msvcrt.lib</AdditionalOptions> | ||||
|     </Link> | ||||
|   </ItemDefinitionGroup> | ||||
|   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> | ||||
|     <Link> | ||||
|       <AdditionalDependencies>$(TouchGFXReleasePath)\lib\sdl\win32\SDL.lib;$(TouchGFXReleasePath)\lib\sdl\win32\SDLmain.lib;$(TouchGFXReleasePath)\lib\sdl\win32\SDL_image.lib;$(TouchGFXReleasePath)\lib\win\msvs\libtouchgfx_$(PlatformToolset).lib;user32.lib;shell32.lib</AdditionalDependencies> | ||||
|     </Link> | ||||
|   </ItemDefinitionGroup> | ||||
|   <ItemGroup /> | ||||
| </Project> | ||||
| @@ -0,0 +1,64 @@ | ||||
| <?xml version="1.0" encoding="utf-8"?> | ||||
| <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | ||||
|   <ItemGroup> | ||||
|     <AllGeneratedFiles Include="$(ApplicationRoot)\generated\fonts\**\*.*;$(ApplicationRoot)\generated\images\**\*.*;$(ApplicationRoot)\generated\texts\**\*.*" /> | ||||
|   </ItemGroup> | ||||
|  | ||||
|   <ItemGroup> | ||||
|     <ImageConvertExecutable Include="$(TouchGFXReleasePath)\framework\tools\imageconvert\build\msvs\ImageConvert.exe"/> | ||||
|   </ItemGroup> | ||||
|  | ||||
|   <PropertyGroup> | ||||
|     <UseBPPOption>/DUSE_BPP=$(UseBPP)</UseBPPOption> | ||||
|   </PropertyGroup> | ||||
|    | ||||
|   <PropertyGroup Condition="'$(LCD)'!=''"> | ||||
|     <LCDOption>/D$(LCD)</LCDOption> | ||||
|   </PropertyGroup> | ||||
|   <PropertyGroup Condition="'$(LCD)'==''"> | ||||
|     <LCDOption/> | ||||
|   </PropertyGroup> | ||||
|    | ||||
|   <PropertyGroup> | ||||
|     <touchgfx_env Condition="'$(TouchGFXEnvPath)'==''">$(TouchGFXReleasePath)\..\env</touchgfx_env> | ||||
|     <touchgfx_env Condition="'$(TouchGFXEnvPath)'!=''">$(TouchGFXEnvPath)</touchgfx_env> | ||||
|   </PropertyGroup> | ||||
|  | ||||
|   <Target Name="GenerateBitmapDatabaseFiles" BeforeTargets="ClCompile"> | ||||
|     <Message Text="Converting images"/> | ||||
|     <Exec Command="echo Converting images"/> | ||||
|     <Exec Command=""%(ImageConvertExecutable.FullPath)" -r assets\images -w generated\images" WorkingDirectory="$(ApplicationRoot)"/> | ||||
|   </Target> | ||||
|  | ||||
|   <Target Name="GenerateTextsAndFontsFiles" BeforeTargets="ClCompile"> | ||||
|     <Message Text="Converting texts and fonts" /> | ||||
|     <Exec Command="echo Converting texts and fonts"/> | ||||
|     <Exec Command=""$(touchgfx_env)\MinGW\msys\1.0\ruby193\bin\ruby.exe" "$(TouchGFXReleasePath)\framework\tools\textconvert\main.rb" "$(ApplicationRoot)\assets\texts\texts.xlsx" "$(TouchGFXReleasePath)\framework\tools\fontconvert\build\win\fontconvert.out" "$(ApplicationRoot)\generated\fonts" "$(ApplicationRoot)\generated\texts" "$(ApplicationRoot)\assets\fonts" "$(ApplicationRoot)""/> | ||||
|   </Target> | ||||
|  | ||||
|   <Target Name="CompileAllGeneratedFiles" BeforeTargets="ClCompile"> | ||||
|     <ItemGroup> | ||||
|       <AllGeneratedCompileFiles Include="$(ApplicationRoot)\generated\fonts\**\*.cpp;$(ApplicationRoot)\generated\images\**\*.cpp;$(ApplicationRoot)\generated\texts\**\*.cpp;" /> | ||||
|     </ItemGroup> | ||||
|     <Message Text="Creating compile items for all generated source files: @(AllGeneratedCompileFiles)"/> | ||||
|     <Exec Command="echo Creating compile items for all generated source files: @(AllGeneratedCompileFiles)"/> | ||||
|     <CreateItem Include="@(AllGeneratedCompileFiles)"> | ||||
|       <Output TaskParameter="Include" ItemName="ClCompile"/> | ||||
|     </CreateItem> | ||||
|   </Target> | ||||
|  | ||||
|   <Target Name="CleanupGeneratedFiles" AfterTargets="Clean"> | ||||
|     <Message Text="Clean-up generated files: @(AllGeneratedFiles)"/> | ||||
|     <Exec Command="echo Clean-up generated files: @(AllGeneratedFiles)"/> | ||||
|     <Delete Files="@(AllGeneratedFiles)"/> | ||||
|   </Target> | ||||
|  | ||||
|   <Target Name="PostBuild" AfterTargets="ClCompile"> | ||||
|     <Exec Command="copy $(TouchGFXReleasePath)\lib\sdl2\win32\SDL2.dll $(OutDir) > nul" /> | ||||
|     <Exec Command="copy $(TouchGFXReleasePath)\lib\sdl2\win32\SDL2_image.dll $(OutDir) > nul" /> | ||||
|     <Exec Command="copy $(TouchGFXReleasePath)\lib\sdl2\win32\libpng16-16.dll $(OutDir) > nul" /> | ||||
|     <Exec Command="copy $(TouchGFXReleasePath)\lib\sdl2\win32\zlib1.dll $(OutDir) > nul"/> | ||||
|     <Exec Command="if exist $(ApplicationRoot)\simulator\landscape.png copy /y $(ApplicationRoot)\simulator\landscape.png $(OutDir) > nul" /> | ||||
|     <Exec Command="if exist $(ApplicationRoot)\simulator\portrait.png copy /y $(ApplicationRoot)\simulator\portrait.png $(OutDir) > nul" /> | ||||
|   </Target> | ||||
| </Project> | ||||
| @@ -0,0 +1,31 @@ | ||||
| <?xml version="1.0" encoding="utf-8"?> | ||||
| <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | ||||
|   <ImportGroup Label="PropertySheets" /> | ||||
|   <PropertyGroup Label="UserMacros" /> | ||||
|   <PropertyGroup> | ||||
|     <DisableFastUpToDateCheck>true</DisableFastUpToDateCheck> | ||||
|   </PropertyGroup> | ||||
|   <PropertyGroup> | ||||
|     <LocalDebuggerEnvironment>PATH=$(TouchGFXReleasePath)\lib\sdl2\win32</LocalDebuggerEnvironment> | ||||
|   </PropertyGroup> | ||||
|   <ItemDefinitionGroup> | ||||
|     <ClCompile> | ||||
|       <AdditionalIncludeDirectories>$(ApplicationRoot)\gui\include;$(ApplicationRoot)\generated\images\include;$(ApplicationRoot)\generated\bitmaps\include;$(ApplicationRoot)\generated\fonts\include;$(ApplicationRoot)\generated\texts\include;$(ApplicationRoot)\generated\gui_generated\include;$(ApplicationRoot)\generated\simulator\include;$(TouchGFXReleasePath)\framework\common\include;$(TouchGFXReleasePath)\framework\mvp\include;$(TouchGFXReleasePath)\framework\include\platform\hal\simulator\sdl2\vendor;$(TouchGFXReleasePath)\framework\include</AdditionalIncludeDirectories> | ||||
|       <AdditionalOptions>$(UseBPPOption)</AdditionalOptions> | ||||
|       <PreprocessorDefinitions>SIMULATOR;_ITERATOR_DEBUG_LEVEL=0</PreprocessorDefinitions> | ||||
|       <DisableSpecificWarnings>4355</DisableSpecificWarnings> | ||||
|     </ClCompile> | ||||
|   </ItemDefinitionGroup> | ||||
|   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> | ||||
|     <Link> | ||||
|       <AdditionalDependencies>$(TouchGFXReleasePath)\lib\sdl2\win32\SDL2.lib;$(TouchGFXReleasePath)\lib\sdl2\win32\SDL2_image.lib;$(TouchGFXReleasePath)\lib\win\msvs\libtouchgfx_$(PlatformToolset)_debug.lib;user32.lib;shell32.lib</AdditionalDependencies> | ||||
|       <AdditionalOptions>/NODEFAULTLIB:msvcrt.lib</AdditionalOptions> | ||||
|     </Link> | ||||
|   </ItemDefinitionGroup> | ||||
|   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> | ||||
|     <Link> | ||||
|       <AdditionalDependencies>$(TouchGFXReleasePath)\lib\sdl2\win32\SDL2.lib;$(TouchGFXReleasePath)\lib\sdl2\win32\SDL2_image.lib;$(TouchGFXReleasePath)\lib\win\msvs\libtouchgfx_$(PlatformToolset).lib;user32.lib;shell32.lib</AdditionalDependencies> | ||||
|     </Link> | ||||
|   </ItemDefinitionGroup> | ||||
|   <ItemGroup /> | ||||
| </Project> | ||||
| @@ -0,0 +1,25 @@ | ||||
| /*********************************************************************************/ | ||||
| /********** THIS FILE IS GENERATED BY TOUCHGFX DESIGNER, DO NOT MODIFY ***********/ | ||||
| /*********************************************************************************/ | ||||
| #include <simulator/mainBase.hpp> | ||||
| #include <platform/hal/simulator/sdl2/HALSDL2.hpp> | ||||
| #include <common/TouchGFXInit.hpp> | ||||
| #include <platform/driver/lcd/LCD16bpp.hpp> | ||||
| #include <string.h> | ||||
|  | ||||
|  | ||||
| void setupSimulator(int argc, char** argv, touchgfx::HAL& hal) { | ||||
|   // Simulate hardware running at 60Hz generating a vsync every 16.6667 ms | ||||
|   static_cast<touchgfx::HALSDL2&>(hal).setVsyncInterval(16.6667f); | ||||
|   static_cast<touchgfx::HALSDL2&>(hal).setWindowTitle("STM32F746G_DISCO"); | ||||
|  | ||||
|   // Initialize SDL | ||||
|   bool sdl_init_result = static_cast<touchgfx::HALSDL2&>(hal).sdl_init(argc, argv); | ||||
|   assert(sdl_init_result && "Error during SDL initialization"); | ||||
|  | ||||
| } | ||||
|  | ||||
| touchgfx::LCD16bpp lcd; | ||||
| touchgfx::LCD& setupLCD() { | ||||
|   return lcd; | ||||
| } | ||||
							
								
								
									
										
											BIN
										
									
								
								ide-touchgfx-gen/TouchGFX/generated/simulator/touchgfx.ico
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								ide-touchgfx-gen/TouchGFX/generated/simulator/touchgfx.ico
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 97 KiB | 
| @@ -0,0 +1 @@ | ||||
| id ICON touchgfx.ico | ||||
							
								
								
									
										
											BIN
										
									
								
								ide-touchgfx-gen/TouchGFX/generated/simulator/touchgfx.res
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								ide-touchgfx-gen/TouchGFX/generated/simulator/touchgfx.res
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										1
									
								
								ide-touchgfx-gen/TouchGFX/generated/texts/cache/LanguageCpp_Gb.cache
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								ide-touchgfx-gen/TouchGFX/generated/texts/cache/LanguageCpp_Gb.cache
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| {"remap":"yes","language":"Gb","language_index":0,"indices":[["15","T_SingleUseId1"],["0","T_SingleUseId2"],["56","T_SingleUseId3"],["63","T_SingleUseId4"],["13","T_SingleUseId5"],["37","T_SingleUseId6"],["48","T_SingleUseId7"],["69","T_SingleUseId8"],["61","T_SingleUseId9"]]} | ||||
							
								
								
									
										1
									
								
								ide-touchgfx-gen/TouchGFX/generated/texts/cache/TextKeysAndLanguages.cache
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								ide-touchgfx-gen/TouchGFX/generated/texts/cache/TextKeysAndLanguages.cache
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| {"languages":["Gb"],"textids":["T_SingleUseId1","T_SingleUseId2","T_SingleUseId3","T_SingleUseId4","T_SingleUseId5","T_SingleUseId6","T_SingleUseId7","T_SingleUseId8","T_SingleUseId9"]} | ||||
							
								
								
									
										1
									
								
								ide-touchgfx-gen/TouchGFX/generated/texts/cache/TextsCpp.cache
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								ide-touchgfx-gen/TouchGFX/generated/texts/cache/TextsCpp.cache
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| {"remap":"yes","languages":["Gb"],"characters":[70,114,101,113,117,32,71,101,110,58,32,2,32,2,0,82,69,65,76,84,73,77,69,32,79,83,67,73,76,76,79,83,67,79,80,69,0,49,32,109,115,32,47,32,100,105,118,0,84,114,105,103,103,101,114,0,84,114,105,97,32,45,0,49,32,107,72,122,0,43,0]} | ||||
							
								
								
									
										1
									
								
								ide-touchgfx-gen/TouchGFX/generated/texts/cache/TypedTextDatabaseCpp.cache
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								ide-touchgfx-gen/TouchGFX/generated/texts/cache/TypedTextDatabaseCpp.cache
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| {"databases":{"DEFAULT":[[2,"LEFT","LTR"],[2,"LEFT","LTR"],[2,"LEFT","LTR"],[2,"LEFT","LTR"],[2,"LEFT","LTR"],[2,"LEFT","LTR"],[2,"LEFT","LTR"],[1,"LEFT","LTR"],[1,"LEFT","LTR"]]},"database_list":["DEFAULT"],"fonts":{"getFont_verdana_20_4bpp":0,"getFont_verdana_40_4bpp":1,"getFont_verdana_10_4bpp":2},"generate_font_format":"0"} | ||||
							
								
								
									
										0
									
								
								ide-touchgfx-gen/TouchGFX/generated/texts/cache/compile_time.cache
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								ide-touchgfx-gen/TouchGFX/generated/texts/cache/compile_time.cache
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
								
								
									
										1
									
								
								ide-touchgfx-gen/TouchGFX/generated/texts/cache/options.cache
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								ide-touchgfx-gen/TouchGFX/generated/texts/cache/options.cache
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| {"remap":"yes","data_format":"A4","binary_translations":"no","binary_fonts":"no","font_format":"0","framebuffer_bpp":"BPP16"} | ||||
| @@ -0,0 +1,29 @@ | ||||
| /* DO NOT EDIT THIS FILE */ | ||||
| /* This file is autogenerated by the text-database code generator */ | ||||
|  | ||||
| #ifndef TEXTKEYSANDLANGUAGES_HPP | ||||
| #define TEXTKEYSANDLANGUAGES_HPP | ||||
|  | ||||
|  | ||||
| typedef enum | ||||
| { | ||||
|     GB, | ||||
|     NUMBER_OF_LANGUAGES | ||||
| } LANGUAGES; | ||||
|  | ||||
|  | ||||
| typedef enum | ||||
| { | ||||
|     T_SINGLEUSEID1, | ||||
|     T_SINGLEUSEID2, | ||||
|     T_SINGLEUSEID3, | ||||
|     T_SINGLEUSEID4, | ||||
|     T_SINGLEUSEID5, | ||||
|     T_SINGLEUSEID6, | ||||
|     T_SINGLEUSEID7, | ||||
|     T_SINGLEUSEID8, | ||||
|     T_SINGLEUSEID9, | ||||
|     NUMBER_OF_TEXT_KEYS | ||||
| } TEXTS; | ||||
|  | ||||
| #endif // TEXTKEYSANDLANGUAGES_HPP | ||||
| @@ -0,0 +1,21 @@ | ||||
| /* DO NOT EDIT THIS FILE */ | ||||
| /* This file is autogenerated by the text-database code generator */ | ||||
|  | ||||
| #ifndef TYPEDTEXTDATABASE_HPP | ||||
| #define TYPEDTEXTDATABASE_HPP | ||||
|  | ||||
| #include <touchgfx/hal/Types.hpp> | ||||
| #include <touchgfx/TypedText.hpp> | ||||
|  | ||||
| namespace TypedTextDatabase | ||||
| { | ||||
| class TypedTextData; | ||||
| const touchgfx::TypedText::TypedTextData* getInstance(touchgfx::LanguageId id); | ||||
| const touchgfx::TypedText::TypedTextData* getInstance(); | ||||
| const touchgfx::Font** getFonts(); | ||||
| const touchgfx::Font* setFont(touchgfx::FontId fontId, const touchgfx::Font*); | ||||
| void resetFont(touchgfx::FontId fontId); | ||||
| uint16_t getInstanceSize(); | ||||
| } | ||||
|  | ||||
| #endif | ||||
							
								
								
									
										22
									
								
								ide-touchgfx-gen/TouchGFX/generated/texts/src/LanguageGb.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								ide-touchgfx-gen/TouchGFX/generated/texts/src/LanguageGb.cpp
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,22 @@ | ||||
| /* DO NOT EDIT THIS FILE */ | ||||
| /* This file is autogenerated by the text-database code generator */ | ||||
|  | ||||
| #include <stdint.h> | ||||
| #include <touchgfx/Unicode.hpp> | ||||
|  | ||||
| TEXT_LOCATION_FLASH_PRAGMA | ||||
| KEEP extern const uint32_t indicesGb[] TEXT_LOCATION_FLASH_ATTRIBUTE; | ||||
|  | ||||
| TEXT_LOCATION_FLASH_PRAGMA | ||||
| KEEP extern const uint32_t indicesGb[] TEXT_LOCATION_FLASH_ATTRIBUTE = | ||||
| { | ||||
|     15, // T_SingleUseId1 | ||||
|     0, // T_SingleUseId2 | ||||
|     56, // T_SingleUseId3 | ||||
|     63, // T_SingleUseId4 | ||||
|     13, // T_SingleUseId5 | ||||
|     37, // T_SingleUseId6 | ||||
|     48, // T_SingleUseId7 | ||||
|     69, // T_SingleUseId8 | ||||
|     61  // T_SingleUseId9 | ||||
| }; | ||||
							
								
								
									
										133
									
								
								ide-touchgfx-gen/TouchGFX/generated/texts/src/Texts.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										133
									
								
								ide-touchgfx-gen/TouchGFX/generated/texts/src/Texts.cpp
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,133 @@ | ||||
| /* DO NOT EDIT THIS FILE */ | ||||
| /* This file is autogenerated by the text-database code generator */ | ||||
|  | ||||
| #include <stdarg.h> | ||||
| #include <texts/TypedTextDatabase.hpp> | ||||
| #include <touchgfx/TextProvider.hpp> | ||||
| #include <touchgfx/Texts.hpp> | ||||
| #include <touchgfx/TypedText.hpp> | ||||
| #include <touchgfx/Unicode.hpp> | ||||
| #include <touchgfx/hal/HAL.hpp> | ||||
| #include <touchgfx/lcd/LCD.hpp> | ||||
|  | ||||
| uint16_t touchgfx::Font::getStringWidth(const touchgfx::Unicode::UnicodeChar* text, ...) const | ||||
| { | ||||
|     va_list pArg; | ||||
|     va_start(pArg, text); | ||||
|     uint16_t width = getStringWidthLTR(TEXT_DIRECTION_LTR, text, pArg); | ||||
|     va_end(pArg); | ||||
|     return width; | ||||
| } | ||||
|  | ||||
| uint16_t touchgfx::Font::getStringWidth(touchgfx::TextDirection textDirection, const touchgfx::Unicode::UnicodeChar* text, ...) const | ||||
| { | ||||
|     va_list pArg; | ||||
|     va_start(pArg, text); | ||||
|     uint16_t width = getStringWidthLTR(textDirection, text, pArg); | ||||
|     va_end(pArg); | ||||
|     return width; | ||||
| } | ||||
|  | ||||
| touchgfx::Unicode::UnicodeChar touchgfx::TextProvider::getNextLigature(TextDirection direction) | ||||
| { | ||||
|     if (fontGsubTable && nextCharacters.peekChar()) | ||||
|     { | ||||
|         substituteGlyphs(); | ||||
|         if (nextCharacters.peekChar(1) == 0x093F) //Hindi I-matra | ||||
|         { | ||||
|             nextCharacters.replaceAt1(nextCharacters.peekChar()); | ||||
|             nextCharacters.replaceAt0(0x093F); | ||||
|         } | ||||
|     } | ||||
|     return getNextChar(); | ||||
| } | ||||
|  | ||||
| void touchgfx::TextProvider::initializeInternal() | ||||
| { | ||||
|     fillInputBuffer(); | ||||
| } | ||||
|  | ||||
| void touchgfx::LCD::drawString(touchgfx::Rect widgetArea, const touchgfx::Rect& invalidatedArea, const touchgfx::LCD::StringVisuals& stringVisuals, const touchgfx::Unicode::UnicodeChar* format, ...) | ||||
| { | ||||
|     va_list pArg; | ||||
|     va_start(pArg, format); | ||||
|     drawStringLTR(widgetArea, invalidatedArea, stringVisuals, format, pArg); | ||||
|     va_end(pArg); | ||||
| } | ||||
|  | ||||
| //Default typed text database | ||||
| extern const touchgfx::TypedText::TypedTextData* const typedTextDatabaseArray[]; | ||||
|  | ||||
| TEXT_LOCATION_FLASH_PRAGMA | ||||
| KEEP extern const touchgfx::Unicode::UnicodeChar texts_all_languages[] TEXT_LOCATION_FLASH_ATTRIBUTE = | ||||
| { | ||||
|     0x46, 0x72, 0x65, 0x71, 0x75, 0x20, 0x47, 0x65, 0x6e, 0x3a, 0x20, 0x2, 0x20, 0x2, 0x0, // @0 "Frequ Gen: <> <>" | ||||
|     0x52, 0x45, 0x41, 0x4c, 0x54, 0x49, 0x4d, 0x45, 0x20, 0x4f, 0x53, 0x43, 0x49, 0x4c, 0x4c, 0x4f, 0x53, 0x43, 0x4f, 0x50, 0x45, 0x0, // @15 "REALTIME OSCILLOSCOPE" | ||||
|     0x31, 0x20, 0x6d, 0x73, 0x20, 0x2f, 0x20, 0x64, 0x69, 0x76, 0x0, // @37 "1 ms / div" | ||||
|     0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x0, // @48 "Trigger" | ||||
|     0x54, 0x72, 0x69, 0x61, 0x20, 0x2d, 0x0, // @56 "Tria -" | ||||
|     0x31, 0x20, 0x6b, 0x48, 0x7a, 0x0, // @63 "1 kHz" | ||||
|     0x2b, 0x0 // @69 "+" | ||||
| }; | ||||
| TEXT_LOCATION_FLASH_PRAGMA | ||||
| KEEP extern uint32_t const indicesGb[] TEXT_LOCATION_FLASH_ATTRIBUTE; | ||||
|  | ||||
| //array holding dynamically installed languages | ||||
| struct TranslationHeader | ||||
| { | ||||
|     uint32_t offset_to_texts; | ||||
|     uint32_t offset_to_indices; | ||||
|     uint32_t offset_to_typedtext; | ||||
| }; | ||||
| static const TranslationHeader* languagesArray[1] = { 0 }; | ||||
|  | ||||
| //Compiled and linked in languages | ||||
| static const uint32_t* const staticLanguageIndices[] = | ||||
| { | ||||
|     indicesGb | ||||
| }; | ||||
|  | ||||
| touchgfx::LanguageId touchgfx::Texts::currentLanguage = static_cast<touchgfx::LanguageId>(0); | ||||
| static const touchgfx::Unicode::UnicodeChar* currentLanguagePtr = 0; | ||||
| static const uint32_t* currentLanguageIndices = 0; | ||||
|  | ||||
| void touchgfx::Texts::setLanguage(touchgfx::LanguageId id) | ||||
| { | ||||
|     const touchgfx::TypedText::TypedTextData* currentLanguageTypedText = 0; | ||||
|     if (id < 1) | ||||
|     { | ||||
|         if (languagesArray[id] != 0) | ||||
|         { | ||||
|             //dynamic translation is added | ||||
|             const TranslationHeader* translation = languagesArray[id]; | ||||
|             currentLanguagePtr = (const touchgfx::Unicode::UnicodeChar*)(((const uint8_t*)translation) + translation->offset_to_texts); | ||||
|             currentLanguageIndices = (const uint32_t*)(((const uint8_t*)translation) + translation->offset_to_indices); | ||||
|             currentLanguageTypedText = (const touchgfx::TypedText::TypedTextData*)(((const uint8_t*)translation) + translation->offset_to_typedtext); | ||||
|         } | ||||
|         else | ||||
|         { | ||||
|             //compiled and linked in languages | ||||
|             currentLanguagePtr = texts_all_languages; | ||||
|             currentLanguageIndices = staticLanguageIndices[id]; | ||||
|             currentLanguageTypedText = typedTextDatabaseArray[id]; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     if (currentLanguageTypedText) | ||||
|     { | ||||
|         currentLanguage = id; | ||||
|         touchgfx::TypedText::registerTypedTextDatabase(currentLanguageTypedText, | ||||
|                                                        TypedTextDatabase::getFonts(), TypedTextDatabase::getInstanceSize()); | ||||
|     } | ||||
| } | ||||
|  | ||||
| void touchgfx::Texts::setTranslation(touchgfx::LanguageId id, const void* translation) | ||||
| { | ||||
|     languagesArray[id] = (const TranslationHeader*)translation; | ||||
| } | ||||
|  | ||||
| const touchgfx::Unicode::UnicodeChar* touchgfx::Texts::getText(TypedTextId id) const | ||||
| { | ||||
|     return ¤tLanguagePtr[currentLanguageIndices[id]]; | ||||
| } | ||||
|  | ||||
| @@ -0,0 +1,81 @@ | ||||
| /* DO NOT EDIT THIS FILE */ | ||||
| /* This file is autogenerated by the text-database code generator */ | ||||
|  | ||||
| #include <touchgfx/TypedText.hpp> | ||||
| #include <fonts/GeneratedFont.hpp> | ||||
| #include <texts/TypedTextDatabase.hpp> | ||||
|  | ||||
| extern touchgfx::GeneratedFont& getFont_verdana_20_4bpp(); | ||||
| extern touchgfx::GeneratedFont& getFont_verdana_40_4bpp(); | ||||
| extern touchgfx::GeneratedFont& getFont_verdana_10_4bpp(); | ||||
|  | ||||
| const touchgfx::Font* touchgfx_fonts[] = | ||||
| { | ||||
|     &(getFont_verdana_20_4bpp()), | ||||
|     &(getFont_verdana_40_4bpp()), | ||||
|     &(getFont_verdana_10_4bpp()) | ||||
| }; | ||||
|  | ||||
| extern const touchgfx::TypedText::TypedTextData typedText_database_DEFAULT[]; | ||||
| extern const touchgfx::TypedText::TypedTextData* const typedTextDatabaseArray[]; | ||||
|  | ||||
| TEXT_LOCATION_FLASH_PRAGMA | ||||
| const touchgfx::TypedText::TypedTextData typedText_database_DEFAULT[] TEXT_LOCATION_FLASH_ATTRIBUTE = | ||||
| { | ||||
|     { 2, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR }, | ||||
|     { 2, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR }, | ||||
|     { 2, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR }, | ||||
|     { 2, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR }, | ||||
|     { 2, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR }, | ||||
|     { 2, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR }, | ||||
|     { 2, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR }, | ||||
|     { 1, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR }, | ||||
|     { 1, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR } | ||||
| }; | ||||
|  | ||||
| TEXT_LOCATION_FLASH_PRAGMA | ||||
| const touchgfx::TypedText::TypedTextData* const typedTextDatabaseArray[] TEXT_LOCATION_FLASH_ATTRIBUTE = | ||||
| { | ||||
|     typedText_database_DEFAULT | ||||
| }; | ||||
|  | ||||
| namespace TypedTextDatabase | ||||
| { | ||||
| const touchgfx::TypedText::TypedTextData* getInstance(touchgfx::LanguageId id) | ||||
| { | ||||
|     return typedTextDatabaseArray[id]; | ||||
| } | ||||
|  | ||||
| uint16_t getInstanceSize() | ||||
| { | ||||
|     return sizeof(typedText_database_DEFAULT) / sizeof(touchgfx::TypedText::TypedTextData); | ||||
| } | ||||
|  | ||||
| const touchgfx::Font** getFonts() | ||||
| { | ||||
|     return touchgfx_fonts; | ||||
| } | ||||
|  | ||||
| const touchgfx::Font* setFont(touchgfx::FontId fontId, const touchgfx::Font* font) | ||||
| { | ||||
|     const touchgfx::Font* old = touchgfx_fonts[fontId]; | ||||
|     touchgfx_fonts[fontId] = font; | ||||
|     return old; | ||||
| } | ||||
|  | ||||
| void resetFont(touchgfx::FontId fontId) | ||||
| { | ||||
|     switch (fontId) | ||||
|     { | ||||
|     case 0: | ||||
|         touchgfx_fonts[0] = &(getFont_verdana_20_4bpp()); | ||||
|         break; | ||||
|     case 1: | ||||
|         touchgfx_fonts[1] = &(getFont_verdana_40_4bpp()); | ||||
|         break; | ||||
|     case 2: | ||||
|         touchgfx_fonts[2] = &(getFont_verdana_10_4bpp()); | ||||
|         break; | ||||
|     } | ||||
| } | ||||
| }  // namespace TypedTextDatabase | ||||
		Reference in New Issue
	
	Block a user