display

package
v0.0.0-...-8df2434 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 4, 2024 License: GPL-3.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrScreenNotFound is an error to represent when a screen is selected
	// that doesnt exist
	ErrScreenNotFound = errors.New("no screen found with that name")
	// ErrNoInitialRender is an error to represent when rendering a screen fails
	ErrNoInitialRender = errors.New("screen failed to perform initial render")
)

Functions

This section is empty.

Types

type Display

type Display interface {
	// SetScreen will set the current screen of the display
	// `name` must be on the of the strings returned from [GetScreens]
	SetScreen(name string) error
	// GetScreens will list all possible screen values
	GetScreens() []string
	// CurrentScreen will return the current [Screen] that is being rendered
	// and its formatted name
	CurrentScreen() (Screen, string, bool)
	// ClearScreen will stop the current [Screen] being rendered and reset it
	// to black
	ClearScreen() error
	// SetScreenConfig will update the configuration of a given [Screen]
	SetScreenConfig(name string, cfg map[string]string) error
}

Display is the interface for setting the current Screen of the matrix display

func NewDisplay

func NewDisplay(r *gin.RouterGroup, canvas *rgbmatrix.Canvas, screens []Screen) Display

NewDisplay will construct a new Display. it will run the [Screen.Init] for each Screen, allowing them to register custom HTTP routes in the gin.RouterGroup

type HTMLAttribute

type HTMLAttribute interface {
	GenerateHTML() template.HTML
}

HTMLAttribute represents an HTML element to be rendered on the dashboard

type HTMLLink struct {
	// Text is the text the link should display
	Text string
	// Href is the HRef of the link
	Href string
}

HTMLLink represents an `<a>` link in HTML

func (HTMLLink) GenerateHTML

func (l HTMLLink) GenerateHTML() template.HTML

type HTMLText

type HTMLText struct {
	Content string
}

HTMLText renders plain HTML `<p>` to the screen

func (HTMLText) GenerateHTML

func (t HTMLText) GenerateHTML() template.HTML

type Screen

type Screen interface {
	// Init allows the screen to initialize and register custom
	// HTTP routes in the given [gin.RouterGroup]. This method
	// should return a string that represents the formatted name
	// for this screen
	Init(r *gin.RouterGroup) (string, error)
	// Render will produce an [image.Image] to be displayed onto
	// the LED matrix. the [time.Duration] returned represents how
	// long the display should wait before calling again to update.
	// Values of [time.Duration] that are 0 or less will result in no
	// more update calls being made
	Render() (image.Image, time.Duration, error)
	// GetConfig returns the current configuration of the Screen
	GetConfig() map[string]string
	// UpdateConfig will update the configuration for the Screen
	UpdateConfig(map[string]string) error
	// GetHTMLPage returns the HTMLAtrributes that should
	// be rendered on the home page for control of the Screen
	GetHTMLPage() []HTMLAttribute
}

Screen represents a service that produces an image.Image to be rendered to the LED matrix

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL