Windows. Everything now is implemented in Windows. ;-) (Okay, just the drawing stuff. And defnititely nothing by Microsoft.)
This commit is contained in:
@ -34,6 +34,7 @@ it contains only one entry and .individual_delays will be false.
|
||||
#include <Arduino.h>
|
||||
#include "prototypes.h"
|
||||
#include "my_fastled.h"
|
||||
#include "Window.h"
|
||||
|
||||
class Animation {
|
||||
protected:
|
||||
@ -50,8 +51,8 @@ protected:
|
||||
uint8_t endFrame;
|
||||
|
||||
virtual CRGB* getColor(uint8_t color_index);
|
||||
void drawFrame(uint8_t frame_index);
|
||||
void drawPixel(int index, CRGB* color);
|
||||
void drawFrame(Window* w, uint8_t frame_index);
|
||||
void drawPixel(Window* w, int index, CRGB* color);
|
||||
uint16_t getFrameDelay(int frame);
|
||||
public:
|
||||
Animation(AnimationData* d);
|
||||
@ -64,7 +65,7 @@ public:
|
||||
void setFrameRange(uint8_t sf, uint8_t ef);
|
||||
void setSingleFrame(uint8_t frame);
|
||||
virtual ~Animation();
|
||||
void draw();
|
||||
void drawFrame();
|
||||
void draw(Window* w);
|
||||
void drawFrame(Window* w);
|
||||
virtual bool advance();
|
||||
};
|
||||
|
@ -1,19 +1,19 @@
|
||||
#ifndef Effect_H
|
||||
#define Effect_H
|
||||
|
||||
#include "prototypes.h"
|
||||
#include "Window.h"
|
||||
#include "config.h"
|
||||
#include <Arduino.h>
|
||||
|
||||
class Effect {
|
||||
protected:
|
||||
Window window = {0, 0, LED_WIDTH, LED_HEIGHT}; // Use a full screen window per default.
|
||||
Window* window = Window::getFullWindow(); // Use a full screen window per default.
|
||||
public:
|
||||
virtual void loop() = 0;
|
||||
boolean supports_window = false;
|
||||
virtual boolean can_be_shown_with_clock() { return false; };
|
||||
virtual boolean clock_as_mask() { return false; };
|
||||
void setWindow(Window win) {
|
||||
void setWindow(Window* win) {
|
||||
window = win;
|
||||
};
|
||||
virtual void start() {}
|
||||
|
26
include/Window.h
Normal file
26
include/Window.h
Normal file
@ -0,0 +1,26 @@
|
||||
#pragma once
|
||||
#include "my_fastled.h"
|
||||
#include "config.h"
|
||||
#include "prototypes.h"
|
||||
|
||||
class Window {
|
||||
public:
|
||||
const uint8_t x, y;
|
||||
const uint8_t width, height;
|
||||
static Window* getFullWindow();
|
||||
|
||||
Window(): Window(0, 0, LED_WIDTH, LED_HEIGHT) {};
|
||||
Window(uint8_t x, uint8_t y) : Window(x, y, LED_WIDTH-x, LED_HEIGHT-y) {};
|
||||
Window(uint8_t x, uint8_t y, uint8_t width, uint8_t height) : x(x), y(y), width(width), height(height) {};
|
||||
|
||||
void clear();
|
||||
void clear(CRGB* color);
|
||||
void setPixel(uint8_t x, uint8_t y, CRGB* color);
|
||||
void setPixelByIndex(uint16_t index, CRGB* color);
|
||||
void line(uint8_t x1, uint8_t y1, uint8_t x2, uint8_t y2, CRGB* color, bool antialias=false);
|
||||
uint16_t coordsToGlobalIndex(uint8_t x, uint8_t y);
|
||||
uint16_t localToGlobalIndex(uint16_t);
|
||||
void drawChar(Font* f, uint8_t x, uint8_t y, const char c, CRGB* color, bool mask=false);
|
||||
void addPixelColor(uint16_t index, CRGB* color);
|
||||
void fadeToBlackBy(fract8 speed);
|
||||
};
|
@ -1,17 +1,15 @@
|
||||
#ifndef effect_clock_H
|
||||
#define effect_clock_H
|
||||
#pragma once
|
||||
|
||||
#include "Effect.h"
|
||||
#include "prototypes.h"
|
||||
#include <FastLED.h>
|
||||
#include "my_fastled.h"
|
||||
#include "Window.h"
|
||||
|
||||
class ClockEffect : public Effect {
|
||||
private:
|
||||
Window window = {0, LED_HEIGHT - 6, LED_WIDTH, 6};
|
||||
Window* window = new Window(0, LED_HEIGHT - 6, LED_WIDTH, 6);
|
||||
|
||||
public:
|
||||
void loop();
|
||||
void loop(boolean invert, CRGB fg_color, CRGB bg_color);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -10,7 +10,6 @@ private:
|
||||
uint8_t direction = 1;
|
||||
uint8_t hue = 0;
|
||||
uint8_t run = 0;
|
||||
Window window = {0, 0, LED_WIDTH, LED_HEIGHT-6};
|
||||
bool is_turn_needed();
|
||||
void turn_random();
|
||||
bool turn_right();
|
||||
|
5
include/fonts.h
Normal file
5
include/fonts.h
Normal file
@ -0,0 +1,5 @@
|
||||
#pragma once
|
||||
#include "prototypes.h"
|
||||
|
||||
extern Font font_numbers3x5;
|
||||
extern Font font_numbers4x7;
|
@ -7,20 +7,6 @@
|
||||
|
||||
uint16_t XYsafe(int x, int y);
|
||||
|
||||
void setPixel(int x, int y, CRGB color);
|
||||
|
||||
void setPixel(int i, CRGB color);
|
||||
|
||||
void setPixel(Window win, int x, int y, CRGB color);
|
||||
|
||||
void addPixelColor(int i, CRGB color);
|
||||
|
||||
void clear(Window window, CRGB color);
|
||||
|
||||
void clear(Window window);
|
||||
|
||||
void clear();
|
||||
|
||||
void blur(fract8 blur_amount);
|
||||
|
||||
void blur_row(uint8_t row_index, fract8 blur_amount);
|
||||
|
@ -1,5 +1,4 @@
|
||||
#ifndef prototypes_H
|
||||
#define prototypes_H
|
||||
#pragma once
|
||||
|
||||
#include <Arduino.h>
|
||||
|
||||
@ -16,11 +15,12 @@ typedef struct {
|
||||
} AnimationData;
|
||||
|
||||
typedef struct {
|
||||
uint8_t x;
|
||||
uint8_t y;
|
||||
uint8_t w;
|
||||
uint8_t h;
|
||||
} Window;
|
||||
uint8_t width;
|
||||
uint8_t height;
|
||||
const uint8_t *data;
|
||||
bool (*isCharAllowed)(const char);
|
||||
uint16_t (*getCharPosition)(const char);
|
||||
} Font;
|
||||
|
||||
typedef struct Vector {
|
||||
double x1;
|
||||
@ -40,5 +40,3 @@ typedef struct {
|
||||
} Coords;
|
||||
|
||||
extern uint8_t baseHue;
|
||||
|
||||
#endif
|
||||
|
139
include/text.h
139
include/text.h
@ -1,139 +0,0 @@
|
||||
#ifndef text_H
|
||||
#define text_H
|
||||
|
||||
#include "functions.h"
|
||||
|
||||
const unsigned char font5x7[] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00,// (space)
|
||||
0x00, 0x00, 0x5F, 0x00, 0x00,// !
|
||||
0x00, 0x07, 0x00, 0x07, 0x00,// "
|
||||
0x14, 0x7F, 0x14, 0x7F, 0x14,// #
|
||||
0x24, 0x2A, 0x7F, 0x2A, 0x12,// $
|
||||
0x23, 0x13, 0x08, 0x64, 0x62,// %
|
||||
0x36, 0x49, 0x55, 0x22, 0x50,// &
|
||||
0x00, 0x05, 0x03, 0x00, 0x00,// '
|
||||
0x00, 0x1C, 0x22, 0x41, 0x00,// (
|
||||
0x00, 0x41, 0x22, 0x1C, 0x00,// )
|
||||
0x08, 0x2A, 0x1C, 0x2A, 0x08,// *
|
||||
0x08, 0x08, 0x3E, 0x08, 0x08,// +
|
||||
0x00, 0x50, 0x30, 0x00, 0x00,// ,
|
||||
0x08, 0x08, 0x08, 0x08, 0x08,// -
|
||||
0x00, 0x60, 0x60, 0x00, 0x00,// .
|
||||
0x20, 0x10, 0x08, 0x04, 0x02,// /
|
||||
0x3E, 0x51, 0x49, 0x45, 0x3E,// 0
|
||||
0x00, 0x42, 0x7F, 0x40, 0x00,// 1
|
||||
0x42, 0x61, 0x51, 0x49, 0x46,// 2
|
||||
0x21, 0x41, 0x45, 0x4B, 0x31,// 3
|
||||
0x18, 0x14, 0x12, 0x7F, 0x10,// 4
|
||||
0x27, 0x45, 0x45, 0x45, 0x39,// 5
|
||||
0x3C, 0x4A, 0x49, 0x49, 0x30,// 6
|
||||
0x01, 0x71, 0x09, 0x05, 0x03,// 7
|
||||
0x36, 0x49, 0x49, 0x49, 0x36,// 8
|
||||
0x06, 0x49, 0x49, 0x29, 0x1E,// 9
|
||||
0x00, 0x36, 0x36, 0x00, 0x00,// :
|
||||
0x00, 0x56, 0x36, 0x00, 0x00,// ;
|
||||
0x00, 0x08, 0x14, 0x22, 0x41,// <
|
||||
0x14, 0x14, 0x14, 0x14, 0x14,// =
|
||||
0x41, 0x22, 0x14, 0x08, 0x00,// >
|
||||
0x02, 0x01, 0x51, 0x09, 0x06,// ?
|
||||
0x32, 0x49, 0x79, 0x41, 0x3E,// @
|
||||
0x7E, 0x11, 0x11, 0x11, 0x7E,// A
|
||||
0x7F, 0x49, 0x49, 0x49, 0x36,// B
|
||||
0x3E, 0x41, 0x41, 0x41, 0x22,// C
|
||||
0x7F, 0x41, 0x41, 0x22, 0x1C,// D
|
||||
0x7F, 0x49, 0x49, 0x49, 0x41,// E
|
||||
0x7F, 0x09, 0x09, 0x01, 0x01,// F
|
||||
0x3E, 0x41, 0x41, 0x51, 0x32,// G
|
||||
0x7F, 0x08, 0x08, 0x08, 0x7F,// H
|
||||
0x00, 0x41, 0x7F, 0x41, 0x00,// I
|
||||
0x20, 0x40, 0x41, 0x3F, 0x01,// J
|
||||
0x7F, 0x08, 0x14, 0x22, 0x41,// K
|
||||
0x7F, 0x40, 0x40, 0x40, 0x40,// L
|
||||
0x7F, 0x02, 0x04, 0x02, 0x7F,// M
|
||||
0x7F, 0x04, 0x08, 0x10, 0x7F,// N
|
||||
0x3E, 0x41, 0x41, 0x41, 0x3E,// O
|
||||
0x7F, 0x09, 0x09, 0x09, 0x06,// P
|
||||
0x3E, 0x41, 0x51, 0x21, 0x5E,// Q
|
||||
0x7F, 0x09, 0x19, 0x29, 0x46,// R
|
||||
0x46, 0x49, 0x49, 0x49, 0x31,// S
|
||||
0x01, 0x01, 0x7F, 0x01, 0x01,// T
|
||||
0x3F, 0x40, 0x40, 0x40, 0x3F,// U
|
||||
0x1F, 0x20, 0x40, 0x20, 0x1F,// V
|
||||
0x7F, 0x20, 0x18, 0x20, 0x7F,// W
|
||||
0x63, 0x14, 0x08, 0x14, 0x63,// X
|
||||
0x03, 0x04, 0x78, 0x04, 0x03,// Y
|
||||
0x61, 0x51, 0x49, 0x45, 0x43,// Z
|
||||
0x00, 0x00, 0x7F, 0x41, 0x41,// [
|
||||
0x02, 0x04, 0x08, 0x10, 0x20,// "\"
|
||||
0x41, 0x41, 0x7F, 0x00, 0x00,// ]
|
||||
0x04, 0x02, 0x01, 0x02, 0x04,// ^
|
||||
0x40, 0x40, 0x40, 0x40, 0x40,// _
|
||||
0x00, 0x01, 0x02, 0x04, 0x00,// `
|
||||
0x20, 0x54, 0x54, 0x54, 0x78,// a
|
||||
0x7F, 0x48, 0x44, 0x44, 0x38,// b
|
||||
0x38, 0x44, 0x44, 0x44, 0x20,// c
|
||||
0x38, 0x44, 0x44, 0x48, 0x7F,// d
|
||||
0x38, 0x54, 0x54, 0x54, 0x18,// e
|
||||
0x08, 0x7E, 0x09, 0x01, 0x02,// f
|
||||
0x08, 0x14, 0x54, 0x54, 0x3C,// g
|
||||
0x7F, 0x08, 0x04, 0x04, 0x78,// h
|
||||
0x00, 0x44, 0x7D, 0x40, 0x00,// i
|
||||
0x20, 0x40, 0x44, 0x3D, 0x00,// j
|
||||
0x00, 0x7F, 0x10, 0x28, 0x44,// k
|
||||
0x00, 0x41, 0x7F, 0x40, 0x00,// l
|
||||
0x7C, 0x04, 0x18, 0x04, 0x78,// m
|
||||
0x7C, 0x08, 0x04, 0x04, 0x78,// n
|
||||
0x38, 0x44, 0x44, 0x44, 0x38,// o
|
||||
0x7C, 0x14, 0x14, 0x14, 0x08,// p
|
||||
0x08, 0x14, 0x14, 0x18, 0x7C,// q
|
||||
0x7C, 0x08, 0x04, 0x04, 0x08,// r
|
||||
0x48, 0x54, 0x54, 0x54, 0x20,// s
|
||||
0x04, 0x3F, 0x44, 0x40, 0x20,// t
|
||||
0x3C, 0x40, 0x40, 0x20, 0x7C,// u
|
||||
0x1C, 0x20, 0x40, 0x20, 0x1C,// v
|
||||
0x3C, 0x40, 0x30, 0x40, 0x3C,// w
|
||||
0x44, 0x28, 0x10, 0x28, 0x44,// x
|
||||
0x0C, 0x50, 0x50, 0x50, 0x3C,// y
|
||||
0x44, 0x64, 0x54, 0x4C, 0x44,// z
|
||||
0x00, 0x08, 0x36, 0x41, 0x00,// {
|
||||
0x00, 0x00, 0x7F, 0x00, 0x00,// |
|
||||
0x00, 0x41, 0x36, 0x08, 0x00,// }
|
||||
0x08, 0x08, 0x2A, 0x1C, 0x08,// ->
|
||||
0x08, 0x1C, 0x2A, 0x08, 0x08 // <-
|
||||
};
|
||||
|
||||
const unsigned char numbers4x7[] = {
|
||||
0x3E, 0x51, 0x45, 0x3E,// 0
|
||||
0x00, 0x42, 0x7F, 0x40,// 1
|
||||
0x42, 0x61, 0x49, 0x46,// 2
|
||||
0x21, 0x45, 0x4B, 0x31,// 3
|
||||
0x18, 0x14, 0x7F, 0x10,// 4
|
||||
0x27, 0x45, 0x45, 0x39,// 5
|
||||
0x3C, 0x4A, 0x49, 0x30,// 6
|
||||
0x01, 0x71, 0x09, 0x05,// 7
|
||||
0x36, 0x49, 0x49, 0x36,// 8
|
||||
0x06, 0x49, 0x29, 0x1E // 9
|
||||
};
|
||||
|
||||
const unsigned char numbers3x5[] = {
|
||||
B01110, B10001, B01110, // 0
|
||||
B01000, B11111, B00000, // 1
|
||||
B01001, B10011, B01101, // 2
|
||||
B10001, B10101, B01010, // 3
|
||||
B11100, B00100, B11111, // 4
|
||||
B11101, B10101, B10111, // 5
|
||||
B01110, B10101, B10110, // 6
|
||||
B10000, B10011, B11100, // 7
|
||||
B11111, B10101, B11111, // 8
|
||||
B11101, B10101, B11111, // 9
|
||||
};
|
||||
|
||||
void drawTextSprite(Window window, const unsigned char* sprite, int w, int h, int xPos, int yPos, CRGB color, boolean invert);
|
||||
|
||||
void drawChar(Window window, const unsigned char* font, int w, int h, int x, int y, char c, CRGB color);
|
||||
|
||||
void drawDigit(Window window, const unsigned char* font, int w, int h, int x, int y, int digit, CRGB color, boolean invert);
|
||||
|
||||
void drawText(Window window, const char *font, int w, int h, char *text, int x, int y, CRGB color);
|
||||
|
||||
#endif
|
Reference in New Issue
Block a user