72 lines
1.2 KiB
Go
72 lines
1.2 KiB
Go
package display
|
|
|
|
import (
|
|
rgbmatrix "git.dvdt.dev/david/bitcoin-ticker-pi/go-rpi-rgb-led-matrix"
|
|
)
|
|
|
|
type display struct {
|
|
canvas *rgbmatrix.Canvas
|
|
|
|
tl, tr, c, bl, br *Slot
|
|
}
|
|
|
|
func New(canvas *rgbmatrix.Canvas, tl, tr, c, bl, br *Slot) *display {
|
|
return &display{
|
|
canvas: canvas,
|
|
tl: tl,
|
|
tr: tr,
|
|
c: c,
|
|
bl: bl,
|
|
br: br,
|
|
}
|
|
}
|
|
|
|
func (d *display) UpdateTopLeft(text []Segment) error {
|
|
err := d.tl.Update(text)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
d.tl.Draw(d.canvas)
|
|
return nil
|
|
}
|
|
|
|
func (d *display) UpdateTopRight(text []Segment) error {
|
|
err := d.tr.Update(text)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
d.tr.Draw(d.canvas)
|
|
return nil
|
|
}
|
|
|
|
func (d *display) UpdateCenter(text []Segment) error {
|
|
err := d.c.Update(text)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
d.c.Draw(d.canvas)
|
|
return nil
|
|
}
|
|
|
|
func (d *display) UpdateBottomLeft(text []Segment) error {
|
|
err := d.bl.Update(text)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
d.bl.Draw(d.canvas)
|
|
return nil
|
|
}
|
|
|
|
func (d *display) UpdateBottomRight(text []Segment) error {
|
|
err := d.br.Update(text)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
d.bl.Draw(d.canvas)
|
|
return nil
|
|
}
|
|
|
|
func (d *display) Render() error {
|
|
return d.canvas.Render()
|
|
}
|