aboutsummaryrefslogtreecommitdiff
path: root/unicorn/Unicorn2.go
diff options
context:
space:
mode:
authorMartin Ashby <martin@martin-laptop.lan>2018-05-28 11:40:30 +0100
committerMartin Ashby <martin@martin-laptop.lan>2018-05-28 11:40:30 +0100
commit4ec7e493520d558dd05e911b58ea354d25f33f45 (patch)
tree0097c34ae8ba15c2d812e1da4ab42aad7d5097d0 /unicorn/Unicorn2.go
parente6060fb69c32dcdf5904793e61e4b272bbd79de2 (diff)
downloadunicornpaint-4ec7e493520d558dd05e911b58ea354d25f33f45.tar.gz
unicornpaint-4ec7e493520d558dd05e911b58ea354d25f33f45.tar.bz2
unicornpaint-4ec7e493520d558dd05e911b58ea354d25f33f45.tar.xz
unicornpaint-4ec7e493520d558dd05e911b58ea354d25f33f45.zip
Started animated implementation
Diffstat (limited to 'unicorn/Unicorn2.go')
-rw-r--r--unicorn/Unicorn2.go32
1 files changed, 32 insertions, 0 deletions
diff --git a/unicorn/Unicorn2.go b/unicorn/Unicorn2.go
new file mode 100644
index 0000000..716fe4d
--- /dev/null
+++ b/unicorn/Unicorn2.go
@@ -0,0 +1,32 @@
+// Version 2 of unicorn, uses gif.GIF as store of pixels
+// & a separate goroutine to render it so it can do
+// animated GIFs
+package unicorn
+
+import (
+ "image/gif"
+)
+
+// Unicorn2 ...
+// Interface for interacting with the Unicorn HAT HD
+// Implemented by both real & fake unicorns.
+type Unicorn2 interface {
+ GetGif() *gif.GIF
+ SetGif(*gif.GIF)
+
+ StartRender()
+ // Required for os to not think we're stuck
+ MainLoop()
+}
+
+type BaseUnicorn2 struct {
+ g *gif.GIF
+}
+
+func (u *BaseUnicorn2) GetGif() *gif.GIF {
+ return u.g
+}
+
+func (u *BaseUnicorn2) SetGif(g *gif.GIF) {
+ u.g = g
+}