mirror of https://github.com/JorjBauer/aiie.git
abstracting images
This commit is contained in:
parent
7464e05578
commit
a7f6307174
|
@ -62,26 +62,35 @@ void AppleUI::drawBatteryStatus(uint8_t percent)
|
|||
// the area around the apple is 12 wide; it's exactly 11 high the
|
||||
// color is 210/202/159
|
||||
|
||||
float watermark = ((float)percent / 100.0) * 11;
|
||||
static const uint8_t *img = NULL;
|
||||
static uint16_t h,w;
|
||||
if (!img) {
|
||||
if (!getImageInfoAndData(IMG_APPLEBATTERY, &w, &h, &img)) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
for (int y=0; y<11; y++) {
|
||||
float watermark = ((float)percent / 100.0) * h;
|
||||
|
||||
for (int y=0; y<h; y++) {
|
||||
uint8_t bgr = 210;
|
||||
uint8_t bgg = 202;
|
||||
uint8_t bgb = 159;
|
||||
|
||||
if (11-y > watermark) {
|
||||
if ((h-y) > watermark) {
|
||||
// black...
|
||||
bgr = bgg = bgb = 0;
|
||||
}
|
||||
|
||||
for (int x=0; x<10; x++) {
|
||||
uint16_t w = w;
|
||||
for (int x=0; x<w; x++) {
|
||||
#ifdef TEENSYDUINO
|
||||
uint8_t r = pgm_read_byte(&appleBitmap[(y * 10 + x)*4 + 0]);
|
||||
uint8_t g = pgm_read_byte(&appleBitmap[(y * 10 + x)*4 + 1]);
|
||||
uint8_t b = pgm_read_byte(&appleBitmap[(y * 10 + x)*4 + 2]);
|
||||
uint8_t a = pgm_read_byte(&appleBitmap[(y * 10 + x)*4 + 3]);
|
||||
uint8_t r = pgm_read_byte(&img[(y * w + x)*4 + 0]);
|
||||
uint8_t g = pgm_read_byte(&img[(y * w + x)*4 + 1]);
|
||||
uint8_t b = pgm_read_byte(&img[(y * w + x)*4 + 2]);
|
||||
uint8_t a = pgm_read_byte(&img[(y * w + x)*4 + 3]);
|
||||
#else
|
||||
const uint8_t *p = &appleBitmap[(y * 10 + (x-1))*4];
|
||||
const uint8_t *p = &img[(y * w + (x-1))*4];
|
||||
uint8_t r, g, b, a;
|
||||
r = p[0];
|
||||
g = p[1];
|
||||
|
@ -103,20 +112,43 @@ void AppleUI::drawBatteryStatus(uint8_t percent)
|
|||
|
||||
void AppleUI::blit()
|
||||
{
|
||||
static const uint8_t *bg_img = NULL;
|
||||
static uint16_t bg_h,bg_w;
|
||||
if (!bg_img) {
|
||||
if (!getImageInfoAndData(IMG_SHELL, &bg_w, &bg_h, &bg_img))
|
||||
return;
|
||||
}
|
||||
|
||||
if (redrawFrame) {
|
||||
redrawFrame = false;
|
||||
g_display->drawImageOfSizeAt(displayBitmap, DBITMAP_WIDTH, DBITMAP_HEIGHT, 0, 0);
|
||||
g_display->drawImageOfSizeAt(bg_img, bg_w, bg_h, 0, 0);
|
||||
}
|
||||
|
||||
if (redrawDriveLatches) {
|
||||
redrawDriveLatches = false;
|
||||
const uint8_t *img;
|
||||
static const uint8_t *d1open_img = NULL;
|
||||
static const uint8_t *d1closed_img = NULL;
|
||||
static const uint16_t d1_w, d1_h;
|
||||
static const uint8_t *d2open_img = NULL;
|
||||
static const uint8_t *d2closed_img = NULL;
|
||||
static const uint16_t d2_w, d2_h;
|
||||
|
||||
img = driveInserted[0] ? drive1LatchOpen : drive1LatchClosed;
|
||||
g_display->drawImageOfSizeAt(img, LATCH_WIDTH, LATCH_HEIGHT, LATCH_X, LATCH1_Y);
|
||||
if (!d1open_img && !getImageInfoAndData(IMG_D1OPEN, &d1_w, &d1_h, &d1open_img))
|
||||
return;
|
||||
|
||||
img = driveInserted[1] ? drive2LatchOpen : drive2LatchClosed;
|
||||
g_display->drawImageOfSizeAt(img, LATCH_WIDTH, LATCH_HEIGHT, LATCH_X, LATCH2_Y);
|
||||
if (!d1closed_img && !getImageInfoAndData(IMG_D1CLOSED, &d1_w, &d1_h, &d1closed_img))
|
||||
return;
|
||||
|
||||
if (!d2open_img && !getImageInfoAndData(IMG_D2OPEN, &d2_w, &d2_h, &d2open_img))
|
||||
return;
|
||||
|
||||
if (!d2closed_img && !getImageInfoAndData(IMG_D2CLOSED, &d2_w, &d2_h, &d2closed_img))
|
||||
return;
|
||||
|
||||
// assumes all the latch images are the same width/height
|
||||
g_display->drawImageOfSizeAt(driveInserted[0] ? d1closed_img : d1open_img, d1_w, d1_h, LATCH_X, LATCH1_Y);
|
||||
|
||||
g_display->drawImageOfSizeAt(driveInserted[1] ? d2closed_img : d2open_img, d2_w, d2_h, LATCH_X, LATCH1_Y);
|
||||
}
|
||||
|
||||
if (redrawDriveActivity) {
|
||||
|
|
|
@ -0,0 +1,58 @@
|
|||
const static uint8_t image_8875_apple[] PROGMEM = {
|
||||
0xA7, 0xD7, 0x98, 0x00, 0x87, 0xCC, 0x72, 0x00,
|
||||
0x7B, 0xC1, 0x65, 0x00, 0x9D, 0xD0, 0x8D, 0x00,
|
||||
0xBF, 0xE0, 0xB7, 0x00, 0x81, 0xC9, 0x6A, 0x6F,
|
||||
0x68, 0xC0, 0x4B, 0xC0, 0x95, 0xCF, 0x83, 0x05,
|
||||
0x96, 0xCE, 0x84, 0x00, 0x95, 0xCE, 0x83, 0x00,
|
||||
0xA7, 0xD6, 0x98, 0x00, 0x88, 0xCC, 0x73, 0x00,
|
||||
0x7E, 0xC2, 0x69, 0x00, 0x8E, 0xCA, 0x7B, 0x00,
|
||||
0x96, 0xD0, 0x84, 0x42, 0x59, 0xBB, 0x38, 0xFF,
|
||||
0x7D, 0xC6, 0x65, 0x81, 0x95, 0xCE, 0x84, 0x00,
|
||||
0x8C, 0xCD, 0x77, 0x00, 0xCC, 0xE7, 0xC3, 0x00,
|
||||
0xA6, 0xD8, 0x9D, 0x00, 0x7F, 0xCB, 0x6E, 0x1C,
|
||||
0x6D, 0xC0, 0x59, 0x67, 0x73, 0xC3, 0x5F, 0x4E,
|
||||
0x7A, 0xC8, 0x68, 0x70, 0x66, 0xC2, 0x4F, 0xA1,
|
||||
0x73, 0xC3, 0x60, 0x61, 0x70, 0xC2, 0x5D, 0x60,
|
||||
0x80, 0xCB, 0x6D, 0x15, 0xDB, 0xEF, 0xD5, 0x00,
|
||||
0xA7, 0xD1, 0x81, 0x32, 0x72, 0xBD, 0x3A, 0xE7,
|
||||
0x6D, 0xBC, 0x34, 0xFF, 0x6E, 0xBC, 0x35, 0xFF,
|
||||
0x73, 0xBE, 0x3C, 0xED, 0x72, 0xBD, 0x3B, 0xE6,
|
||||
0x6D, 0xBC, 0x35, 0xFF, 0x6C, 0xBB, 0x31, 0xFF,
|
||||
0x70, 0xBF, 0x3F, 0xCF, 0xD5, 0xEE, 0xD4, 0x0C,
|
||||
0xF5, 0xC0, 0x19, 0xB9, 0xF7, 0xBB, 0x00, 0xFF,
|
||||
0xF7, 0xBC, 0x03, 0xFF, 0xF7, 0xBC, 0x03, 0xFF,
|
||||
0xF7, 0xBC, 0x02, 0xFF, 0xF7, 0xBC, 0x02, 0xFF,
|
||||
0xF7, 0xBC, 0x03, 0xFF, 0xF9, 0xBB, 0x00, 0xFF,
|
||||
0xE4, 0xC6, 0x42, 0x67, 0xE2, 0xE8, 0xBF, 0x00,
|
||||
0xFC, 0x99, 0x02, 0xE9, 0xFD, 0x99, 0x00, 0xFF,
|
||||
0xFD, 0x99, 0x00, 0xFF, 0xFD, 0x99, 0x00, 0xFF,
|
||||
0xFD, 0x99, 0x00, 0xFF, 0xFD, 0x99, 0x00, 0xFF,
|
||||
0xFD, 0x98, 0x00, 0xFF, 0xFD, 0x9D, 0x09, 0xE9,
|
||||
0xFB, 0xB6, 0x5A, 0x11, 0xF9, 0xB5, 0x5C, 0x00,
|
||||
0xF2, 0x6D, 0x10, 0xE6, 0xF2, 0x6B, 0x0E, 0xFF,
|
||||
0xF2, 0x6B, 0x0E, 0xFF, 0xF2, 0x6B, 0x0E, 0xFF,
|
||||
0xF2, 0x6B, 0x0E, 0xFF, 0xF2, 0x6B, 0x0E, 0xFF,
|
||||
0xF2, 0x6A, 0x0D, 0xFF, 0xF2, 0x6D, 0x13, 0xF4,
|
||||
0xF0, 0x8E, 0x53, 0x23, 0xF5, 0xB8, 0x92, 0x00,
|
||||
0xE1, 0x46, 0x4D, 0xBD, 0xE0, 0x32, 0x39, 0xFF,
|
||||
0xE0, 0x35, 0x3C, 0xFF, 0xE0, 0x35, 0x3C, 0xFF,
|
||||
0xE0, 0x35, 0x3C, 0xFF, 0xE0, 0x35, 0x3C, 0xFF,
|
||||
0xE0, 0x35, 0x3C, 0xFF, 0xE0, 0x33, 0x3A, 0xFF,
|
||||
0xE0, 0x3F, 0x45, 0xAF, 0xEF, 0xA6, 0xAA, 0x15,
|
||||
0xBE, 0x67, 0x9F, 0x64, 0xA9, 0x2F, 0x83, 0xFF,
|
||||
0xAD, 0x32, 0x85, 0xFF, 0xAD, 0x32, 0x85, 0xFF,
|
||||
0xAD, 0x32, 0x85, 0xFF, 0xAD, 0x32, 0x85, 0xFF,
|
||||
0xAD, 0x32, 0x85, 0xFF, 0xAD, 0x32, 0x85, 0xFF,
|
||||
0xA6, 0x29, 0x7E, 0xFF, 0xCF, 0x8D, 0xBA, 0x52,
|
||||
0x8E, 0x9F, 0xD2, 0x06, 0x5F, 0x71, 0xC0, 0xC4,
|
||||
0x48, 0x66, 0xBC, 0xFF, 0x4C, 0x68, 0xBD, 0xFF,
|
||||
0x49, 0x67, 0xBD, 0xFF, 0x49, 0x67, 0xBD, 0xFF,
|
||||
0x4B, 0x68, 0xBD, 0xFF, 0x46, 0x65, 0xBC, 0xFF,
|
||||
0x68, 0x77, 0xC2, 0xAE, 0x97, 0xA5, 0xD3, 0x00,
|
||||
0x62, 0xC7, 0xEE, 0x00, 0x42, 0xC0, 0xEC, 0x23,
|
||||
0x01, 0xA6, 0xE4, 0xC8, 0x01, 0xA4, 0xE4, 0xDB,
|
||||
0x12, 0xAA, 0xE3, 0x90, 0x11, 0xAA, 0xE3, 0x93,
|
||||
0x00, 0xA4, 0xE4, 0xE0, 0x06, 0xA8, 0xE5, 0xBA,
|
||||
0x5C, 0xC8, 0xEC, 0x15, 0x77, 0xCC, 0xEC, 0x00
|
||||
};
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
145148
images.cpp
145148
images.cpp
File diff suppressed because it is too large
Load Diff
28
images.h
28
images.h
|
@ -1,3 +1,6 @@
|
|||
#ifndef __IMAGES_H
|
||||
#define __IMAGES_H
|
||||
|
||||
#ifdef TEENSYDUINO
|
||||
#include <Arduino.h>
|
||||
#else
|
||||
|
@ -22,20 +25,15 @@
|
|||
#define LED1_Y 68
|
||||
#define LED2_Y 117
|
||||
|
||||
// RGB
|
||||
extern const uint8_t displayBitmap[];
|
||||
enum {
|
||||
IMG_SHELL = 0, // previously displayBitmap
|
||||
IMG_D1OPEN = 1,
|
||||
IMG_D1CLOSED = 2,
|
||||
IMG_D2OPEN = 3,
|
||||
IMG_D2CLOSED = 4,
|
||||
IMG_APPLEBATTERY = 5
|
||||
};
|
||||
|
||||
// RGB
|
||||
extern const uint8_t drive1LatchClosed[];
|
||||
const bool getImageInfoAndData(uint8_t imgnum, uint16_t *width, uint16_t *height, const uint8_t **dataptr);
|
||||
|
||||
// RGB
|
||||
extern const uint8_t drive1LatchOpen[];
|
||||
|
||||
// RGB
|
||||
extern const uint8_t drive2LatchClosed[];
|
||||
|
||||
// RGB
|
||||
extern const uint8_t drive2LatchOpen[];
|
||||
|
||||
// 10 x 11, RGBA
|
||||
extern const uint8_t appleBitmap[];
|
||||
#endif
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
../image-8875-apple.h
|
|
@ -0,0 +1 @@
|
|||
../image-8875-bg.h
|
|
@ -0,0 +1 @@
|
|||
../image-8875-drivelatches.h
|
Loading…
Reference in New Issue