/*---------------------------------------------------------------------- Project: InsoL@b Author : user@B0 Tetalab.org File : bitmaps.h 2025-05-21 This work is copyrighted under CERN Open Hardware Licence Version 2 ------------------------------------------------------------------------ ----------------------------------------------------------------------*/ #ifndef _INSOLAB_BITMAP_H_ #define _INSOLAB_BITMAP_H_ #define LOGO_COLOR 1 // display SSD1306 black #define LOGO_X0 0 // logo bitmap width offset to center bitmap #define LOGO_Y0 0 // logo bitmap height offset to center bitmap #define LOGO_WIDTH 128 #define LOGO_HEIGHT 32 // logoBN128x32.png | 128x32 | 1-bit vertical bytes (LSB=top) const unsigned char logo_bmp[] PROGMEM = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x0f, 0xff, 0xff, 0xff, 0xe0, 0x0f, 0xa0, 0x02, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe8, 0x0f, 0xff, 0xff, 0xff, 0xe8, 0x0f, 0x80, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x0f, 0xff, 0xff, 0xff, 0xe0, 0x0f, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe3, 0x81, 0xff, 0xff, 0xff, 0xe3, 0x81, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe3, 0x81, 0xff, 0xff, 0xff, 0xe3, 0x81, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe3, 0x81, 0xff, 0xff, 0xff, 0xe3, 0x81, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe3, 0xf1, 0xff, 0xff, 0xff, 0xeb, 0xf1, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe3, 0xf1, 0xff, 0xff, 0xff, 0xe3, 0xf1, 0xfe, 0x3f, 0xc7, 0x00, 0x60, 0x00, 0x30, 0x38, 0x03, 0xe3, 0xf1, 0x80, 0x00, 0x03, 0xff, 0xf1, 0xfe, 0x3f, 0xd7, 0x01, 0x60, 0x00, 0xb0, 0xb8, 0x0b, 0xeb, 0xf1, 0xa0, 0x00, 0x0b, 0xff, 0xf1, 0xfe, 0x3f, 0xc7, 0x00, 0x60, 0x00, 0x30, 0x38, 0x03, 0xe3, 0xf1, 0x80, 0x00, 0x03, 0xff, 0xf1, 0xfe, 0x3f, 0xc7, 0x1c, 0x63, 0xfe, 0x31, 0xf8, 0xe3, 0xff, 0xf1, 0x8f, 0xff, 0xe3, 0xe3, 0x81, 0xfe, 0x3f, 0xc7, 0x1c, 0x6b, 0xfe, 0x31, 0xf8, 0xe3, 0xff, 0xf1, 0x8f, 0xff, 0xe3, 0xeb, 0x81, 0xfe, 0x3f, 0xc7, 0x1c, 0x63, 0xfe, 0x31, 0xf8, 0xe3, 0xff, 0xf1, 0x8f, 0xff, 0xe3, 0xe3, 0x81, 0xfe, 0x3f, 0xc0, 0x1c, 0x7f, 0xfe, 0x31, 0xf8, 0xe3, 0xe3, 0x81, 0x8e, 0x00, 0xe3, 0x00, 0x0f, 0xfe, 0x3f, 0xc0, 0x1c, 0x7f, 0xfe, 0x31, 0xfa, 0xe3, 0xeb, 0x81, 0x8e, 0x00, 0xe3, 0x40, 0x0f, 0xfe, 0x3f, 0xc0, 0x1c, 0x7f, 0xfe, 0x31, 0xf8, 0xe3, 0xe3, 0x81, 0x8e, 0x00, 0xe3, 0x00, 0x0f, 0xfe, 0x3f, 0xc7, 0xfc, 0x60, 0x00, 0x31, 0xff, 0xe3, 0x00, 0x0f, 0x8e, 0x38, 0xe3, 0xe3, 0xff, 0xfe, 0x3f, 0xc7, 0xfc, 0x60, 0x00, 0x31, 0xff, 0xe3, 0x40, 0x0f, 0x8e, 0x38, 0xe3, 0xe3, 0xff, 0xfe, 0x3f, 0xc7, 0xfc, 0x60, 0x00, 0x31, 0xff, 0xe3, 0x00, 0x0f, 0x8e, 0x38, 0xe3, 0xe3, 0xff, 0xfe, 0x3f, 0xc7, 0xfc, 0x63, 0xff, 0xf1, 0xff, 0xe3, 0xe3, 0xff, 0x8e, 0x00, 0x03, 0xe3, 0x81, 0xfe, 0x3f, 0xc7, 0xfc, 0x63, 0xff, 0xf1, 0xff, 0xe3, 0xe3, 0xff, 0x8e, 0x00, 0x03, 0xe3, 0x85, 0xfe, 0x3f, 0xc7, 0xfc, 0x63, 0xff, 0xf1, 0xff, 0xe3, 0xe3, 0xff, 0x8e, 0x00, 0x03, 0xe3, 0x81, 0xfe, 0x3f, 0xc7, 0xfc, 0x63, 0xfe, 0x31, 0xff, 0xe3, 0xe3, 0xf1, 0x8f, 0xff, 0xff, 0xe3, 0x8f, 0xfe, 0x3f, 0xc7, 0xfc, 0x63, 0xfe, 0xb1, 0xff, 0xe3, 0xe3, 0xf5, 0x8f, 0xff, 0xff, 0xe3, 0x8f, 0xfe, 0x3f, 0xc7, 0xfc, 0x63, 0xfe, 0x31, 0xff, 0xe3, 0xe3, 0xf1, 0x8f, 0xff, 0xff, 0xe3, 0x8f, 0x80, 0x00, 0xc7, 0xfc, 0x60, 0x00, 0x30, 0x00, 0x03, 0xe0, 0x01, 0x80, 0x00, 0x03, 0xe0, 0x0f, 0xa0, 0x02, 0xd7, 0xfd, 0x68, 0x00, 0x34, 0x00, 0x0b, 0xe8, 0x01, 0xa0, 0x00, 0x0b, 0xe8, 0x0f, 0x80, 0x00, 0xc7, 0xfc, 0x60, 0x00, 0x30, 0x00, 0x03, 0xe0, 0x01, 0x80, 0x00, 0x03, 0xe0, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; // RTTTL sounds #include #include #include const char * _missip1_= "mip:d=16,o=6,b=95:32d,32d#,32d,32d#,32d,32d#,32d,32d#,32d,32d,32d#,32e,32f,32f#,32g,g,8p,g,8p,a#,p,c7,p,g,8p,g,8p,f,p,f#,p,g,8p,g,8p,a#,p,c7,p,g,8p,g,8p,f"; const char * _count_= "Pacman:d=32,o=6,b=112:b.5,b.,f#.,d#.,b.,f#.,16p,16d#,c.,c.7,g.,e.,c.7,g.,16p,16e,b.5,b.,f#.,d#.,b.,f#."; const char * _finish_= "LightMyFire:d=4,o=5,b=140:8b,16g,16a,8b,8d6,8c6,8b,8a,8g,8a,16f,16a,8c6,8f6,16d6,16c6,16a#,16g,8g#,8g,8g#,16g,16a,8b,8c#6,16b,16a,16g,16f,8e,8f,1a,a"; const char * _logo_ = "Star Trek:o=5,d=16,b=63,b=63:8f.,a#,4d#6.,8d6,a#.,g.,c6.,4f6"; const char * _neon_ = "Neonligh:d=4,o=5,b=100:8e#7,16p,16d#7,8d#7,8p,16c#7,8c#6,16a#6,8e#7,16p,16d#7,8d#7,8p,8c#7,16a#6,8e#7,16p,16a#6,8a#6,8p,16c#7,8d#7,16e#7,8e#7,16p,8d#7"; const char * _com_ = "Communic:d=4,o=5,b=100:16g#7,8a#7,16a#7,16a#7,8f#7"; const char * _pop_ = "Popcorn:d=1,o=5,b=800:8c6,8a#,8c6,8g,8d#,8g,c6"; const char * _clk_ = "clock:d=16,o=8,b=420:b7,32p,c"; void playRTTTL (screen_t itune){ //#ifdef SOUND_ON switch (itune) { // ugly code to manage SOUND off case sNONE : noTone(PIEZO); // PIEZO defined in main return; case sLOGO : anyrtttl::blocking::play(PIEZO, _logo_); break; case sTITRE : ; break; //rtune = _missip1_ case sCHOIX : anyrtttl::blocking::play(PIEZO, _com_); break; case sEXPOS : anyrtttl::blocking::play(PIEZO, _finish_); break; case sREGLE : ; break; //tune = _count_ default : ; break; } } void playPop(){ anyrtttl::blocking::play(PIEZO, _pop_);} void playClk(){ anyrtttl::blocking::play(PIEZO, _clk_);} // Snooze screen saver #define ICON_HEIGHT 16 #define ICON_WIDTH 16 const unsigned char flake_bmp [] PROGMEM = { 0x00, 0x00, 0x00, 0x70, 0x38, 0x70, 0x38, 0x70, 0x3c, 0xe0, 0x0e, 0xee, 0x07, 0xce, 0x1f, 0xfe, 0x7f, 0xf0, 0x73, 0xc0, 0x77, 0xe0, 0x07, 0x78, 0x0f, 0x78, 0x0e, 0x38, 0x0e, 0x00, 0x00, 0x00 }; // 'smiley', 16x16px const unsigned char smiley_bmp [] PROGMEM = { 0x07, 0xc0, 0x1f, 0xf0, 0x3f, 0xf8, 0x7f, 0xfc, 0x63, 0x8c, 0xdd, 0x76, 0xd3, 0x96, 0xe7, 0xce, 0xff, 0xfe, 0xfd, 0x7e, 0x67, 0xcc, 0x70, 0x1c, 0x3c, 0x78, 0x1f, 0xf0, 0x07, 0xc0, 0x00, 0x00 }; // 'frown', 16x16px const unsigned char frown_bmp [] PROGMEM = { 0x07, 0xc0, 0x1f, 0xf0, 0x3f, 0xf8, 0x67, 0xcc, 0x53, 0x94, 0xdd, 0x76, 0xd9, 0x36, 0xe1, 0x0e, 0xff, 0xfe, 0xff, 0xfe, 0x78, 0x3c, 0x73, 0x9c, 0x37, 0xd8, 0x1f, 0xf0, 0x07, 0xc0, 0x00, 0x00 }; // 'neutral', 16x16px const unsigned char neutral_bmp [] PROGMEM = { 0x07, 0xc0, 0x1f, 0xf0, 0x3f, 0xf8, 0x67, 0xcc, 0x53, 0x94, 0xdd, 0x76, 0xd9, 0x36, 0xe1, 0x0e, 0xff, 0xfe, 0xfd, 0x7e, 0x7f, 0xfc, 0x70, 0x1c, 0x3f, 0xf8, 0x1f, 0xf0, 0x07, 0xc0, 0x00, 0x00 }; #endif // _INSOLAB_BITMAP_H_