summaryrefslogtreecommitdiff
path: root/src/kernel/dev/display.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/kernel/dev/display.h')
-rw-r--r--src/kernel/dev/display.h38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/kernel/dev/display.h b/src/kernel/dev/display.h
new file mode 100644
index 0000000..04a6d67
--- /dev/null
+++ b/src/kernel/dev/display.h
@@ -0,0 +1,38 @@
+#ifndef DEF_DEV_DISPLAY_H
+#define DEF_DEV_DISPLAY_H
+
+#include <vfs/node.h>
+
+#define TC_BLACK 0
+#define TC_BLUE 1
+#define TC_GREEN 2
+#define TC_TURQUOISE 3
+#define TC_RED 4
+#define TC_PURPLE 5
+#define TC_BROWN 6
+#define TC_LIGHTGRAY 7
+#define TC_WHITE 15
+
+class vt;
+class display : public node {
+
+ public:
+ vt *connected_vt;
+
+ display(node* parent) : node(parent, FT_DEV) {
+ dev_type = DT_DISPLAY;
+ connected_vt = 0;
+ }
+ virtual ~display() {}
+
+ virtual display* as_display() { return this; }
+
+ virtual int text_w() = 0;
+ virtual int text_h() = 0;
+ virtual void text_setcsr(int l, int c, bool visible) = 0;
+ virtual void text_put(int l, int c, int ch, uint8_t fgcolor, uint8_t bgcolor) = 0;
+ virtual void text_scroll(int n, uint8_t fgcolor, uint8_t bgcolor) = 0;
+};
+
+#endif
+