From 0befafaac02ccf2aca7ab0e6a6a6ac03f2ea5950 Mon Sep 17 00:00:00 2001
From: Stanley Huang <stanleyhuangyc@gmail.com>
Date: Wed, 17 Sep 2014 19:04:14 +1000
Subject: move MicroLCD library files to libraries folder

---
 libraries/MicroLCD/MicroLCD.h | 119 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 119 insertions(+)
 create mode 100644 libraries/MicroLCD/MicroLCD.h

(limited to 'libraries/MicroLCD/MicroLCD.h')

diff --git a/libraries/MicroLCD/MicroLCD.h b/libraries/MicroLCD/MicroLCD.h
new file mode 100644
index 0000000..51781ab
--- /dev/null
+++ b/libraries/MicroLCD/MicroLCD.h
@@ -0,0 +1,119 @@
+/*************************************************************************
+* Arduino Text & Bitmap Display Library for multiple models of monochrome LCD display
+* Distributed under GPL v2.0
+* Copyright (c) 2013-2014 Stanley Huang <stanleyhuangyc@gmail.com>
+* All rights reserved.
+* For more information, please visit http://arduinodev.com
+*************************************************************************/
+
+#include <Arduino.h>
+
+//#define MEMORY_SAVING
+
+typedef enum {
+    FONT_SIZE_SMALL = 0,
+    FONT_SIZE_MEDIUM,
+    FONT_SIZE_LARGE,
+    FONT_SIZE_XLARGE
+} FONT_SIZE;
+
+#define FLAG_PAD_ZERO 1
+#define FLAG_PIXEL_DOUBLE_H 2
+#define FLAG_PIXEL_DOUBLE_V 4
+#define FLAG_PIXEL_DOUBLE (FLAG_PIXEL_DOUBLE_H | FLAG_PIXEL_DOUBLE_V)
+
+extern const PROGMEM unsigned char font5x8[][5];
+extern const PROGMEM unsigned char digits8x8[][8] ;
+extern const PROGMEM unsigned char digits16x16[][32];
+extern const PROGMEM unsigned char digits16x24[][48];
+extern const PROGMEM unsigned char font8x16_doslike[][16];
+extern const PROGMEM unsigned char font8x16_terminal[][16];
+
+class LCD_Common
+{
+public:
+    LCD_Common():m_font(FONT_SIZE_SMALL),m_flags(0) {}
+    void setFontSize(FONT_SIZE size) { m_font = size; }
+    void setFlags(byte flags) { m_flags = flags; }
+    virtual void backlight(bool on) {}
+    virtual void draw(const PROGMEM byte* buffer, byte width, byte height) {}
+    void printInt(uint16_t value, int8_t padding = -1);
+    void printLong(uint32_t value, int8_t padding = -1);
+protected:
+    virtual void writeDigit(byte n) {}
+    byte m_font;
+    byte m_flags;
+};
+
+class LCD_Null : public LCD_Common, public Print
+{
+public:
+    byte getLines() { return 0; }
+    byte getCols() { return 0; }
+    void clearLine(byte line) {}
+    void clear() {}
+    void begin() {}
+    void setCursor(byte column, byte line) {}
+    size_t write(uint8_t c) { return 0; }
+};
+
+#include "SSD1306.h"
+
+class LCD_SSD1306 : public LCD_Common, public SSD1306, public Print
+{
+public:
+    void setCursor(byte column, byte line);
+	void setContrast(byte Contrast);
+    void draw(const PROGMEM byte* buffer, byte width, byte height);
+    size_t write(uint8_t c);
+    void clear(byte x = 0, byte y = 0, byte width = 128, byte height = 64);
+    void clearLine(byte line);
+    byte getLines() { return 21; }
+    byte getCols() { return 8; }
+private:
+    void writeDigit(byte n);
+    byte m_col;
+    byte m_row;
+};
+
+class LCD_SH1106 : public LCD_Common, public Print
+{
+public:
+    void begin();
+    void setCursor(byte column, byte line);
+    void draw(const PROGMEM byte* buffer, byte width, byte height);
+    size_t write(uint8_t c);
+    void clear(byte x = 0, byte y = 0, byte width = 128, byte height = 64);
+    void clearLine(byte line);
+    byte getLines() { return 21; }
+    byte getCols() { return 8; }
+private:
+    void WriteCommand(unsigned char ins);
+    void WriteData(unsigned char dat);
+    void writeDigit(byte n);
+    byte m_col;
+    byte m_row;
+};
+
+#include "PCD8544.h"
+
+class LCD_PCD8544 : public LCD_Common, public PCD8544
+{
+public:
+    byte getLines() { return 6; }
+    byte getCols() { return 14; }
+    void backlight(bool on)
+    {
+        pinMode(7, OUTPUT);
+        digitalWrite(7, on ? HIGH : LOW);
+    }
+    void clearLine(byte line)
+    {
+        setCursor(0, line);
+        for (byte i = 14; i > 0; i--) write(' ');
+    }
+    void draw(const PROGMEM byte* buffer, byte width, byte height);
+private:
+    void writeDigit(byte n);
+};
+
-- 
cgit v1.2.3