// -------------------------------------------------------------------------------------------------------------------- /// \file wordclock.h /// \brief File description // -------------------------------------------------------------------------------------------------------------------- // // vbchaos software design // // -------------------------------------------------------------------------------------------------------------------- /// $Revision: $ /// $Author: $ /// $Date: $ // (c) 2023 vbchaos // -------------------------------------------------------------------------------------------------------------------- #ifndef MAIN_INC_WORDCLOCK_H_ #define MAIN_INC_WORDCLOCK_H_ /** * wordclock implementation * \defgroup wordclock * \brief {group_description} * \addtogroup {Layer} * * Detailed description * @{ */ // -------------------------------------------------------------------------------------------------------------------- // Include files // -------------------------------------------------------------------------------------------------------------------- // CompilerIncludes // All include files that are provided by the compiler directly // ProjectIncludes // All include files that are provided by the project #include "ledmatrix.h" #include "clock.h" // -------------------------------------------------------------------------------------------------------------------- // Constant and macro definitions // -------------------------------------------------------------------------------------------------------------------- // -------------------------------------------------------------------------------------------------------------------- // Type definitions. // -------------------------------------------------------------------------------------------------------------------- // -------------------------------------------------------------------------------------------------------------------- // Function declarations // -------------------------------------------------------------------------------------------------------------------- class Wordclock { public: enum language { NL = 0, EN, NumberOfLanguages }; Wordclock(LEDMatrix* matrix); void update(Clock::TimeStructure* timestructure); private: LEDMatrix* matrix; language language; struct word { LEDMatrix::coordinate position; int length; }; struct wordmap { struct word prefix; struct word prefix_additional; struct word almost; struct word five; struct word ten; struct word quarter; struct word before; struct word after; struct word half; struct word hour[12]; struct word hourPostfix; }; struct wordmap languagemaps[NumberOfLanguages] { { // prefix {0,0,3}, {4,0,2}, // almost {0,0,0}, // five/ten/quarter {7,0,4}, {0,1,4}, {6,2,5}, // before/after {7,1,4}, {0,2,4}, // {0,4,4}, {7,3,4}, // half {0,3,4}, // hours {{7,4,3},{0,5,4},{7,5,4},{0,6,4},{4,6,4},{6,8,3},{0,7,5},{0,8,4},{6,7,5},{4,8,4},{8,8,3},{0,9,6}}, // hour postfix {8,9,3} } }; }; /** @} */ #endif /* MAIN_INC_WORDCLOCK_H_ */