Commit 392aec88 authored by Birte Kristina Friesel's avatar Birte Kristina Friesel
Browse files

framebuffer: add drawBattery function

parent 91910f80
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ class Framebuffer : public OutputStream
		void scroll();
		void fillBox(unsigned int x, unsigned int y, unsigned int w, unsigned int h);
		void drawAt(unsigned int x, unsigned int y, unsigned int w, unsigned int h, unsigned char *image);
		void drawBattery(unsigned int x, unsigned int y, unsigned char percent);
		void setFont(const glyph_t *font) { this->font = font; }
		void setPos(unsigned int newX, unsigned int newY) { fontX = newX; fontY = newY; }
		virtual void put(char c) override;
+11 −0
Original line number Diff line number Diff line
@@ -71,6 +71,17 @@ void Framebuffer::drawAt(unsigned int x, unsigned int y, unsigned int w, unsigne
	}
}

void Framebuffer::drawBattery(unsigned int x, unsigned int y, unsigned char percent)
{
	for (unsigned char i = 0; i < 13; i++) {
		data[(x+i) * (height/8) + y] = 0x81 | (0xff * (percent >= (i*8)));
	}
	data[(x+11) * (height/8) + y/8] |= 0xe7;
	data[(x+12) * (height/8) + y/8] &= ~0x81;
	data[(x+12) * (height/8) + y/8] |= 0x24;
	data[(x+13) * (height/8) + y/8] = 0x3c;
}

void Framebuffer::scroll()
{
	for (unsigned int pos_x = 0; pos_x < width; pos_x++) {