Files
streamdeck-lets-go/internal/render/fontawesome_data.go
T
Maksim Totmin 41856e6aaa refactor: restructure to standard Go project layout (cmd/ + internal/)
- Move entry point to cmd/streamdeck-lets-go/
- Split package main into internal packages:
  - internal/deck: hardware control (Deck, events, brightness)
  - internal/render: key rendering, icons, fonts, PageManager
  - internal/web: HTTP API + embedded SPA
  - internal/daemon: event loop, autoswitch, screensaver, actions
- Add ConfigDir() to internal/config
- Export cross-package API (Deck, PageManager, WebServer, etc.)
- Move dist/arch/ → packaging/ with updated PKGBUILD/.SRCINFO
- Add Makefile (build, test, vet, fmt, install)
- Update README with new build commands and project structure
- Delete unused media.go stub
2026-08-26 10:35:20 +07:00

72 lines
1.5 KiB
Go

package render
import (
"embed"
"unicode"
"unicode/utf8"
)
//go:embed assets/Font_Awesome_7_BrandsRegular400.otf
//go:embed assets/Font_Awesome_7_FreeRegular400.otf
//go:embed assets/Font_Awesome_7_FreeSolid900.otf
var faFonts embed.FS
type faStyle int
const (
faSolid faStyle = iota
faRegular
faBrands
)
func (s faStyle) otfPath() string {
switch s {
case faSolid:
return "assets/Font_Awesome_7_FreeSolid900.otf"
case faRegular:
return "assets/Font_Awesome_7_FreeRegular400.otf"
case faBrands:
return "assets/Font_Awesome_7_BrandsRegular400.otf"
default:
return "assets/Font_Awesome_7_FreeSolid900.otf"
}
}
var faCodepoints map[faStyle]map[string]rune
func init() {
faCodepoints = make(map[faStyle]map[string]rune)
faCodepoints[faSolid] = buildFAMap(fa7Icons)
faCodepoints[faRegular] = buildFAMap(fa7Icons)
faCodepoints[faBrands] = buildFAMap(fa7BrandsIcons)
}
func buildFAMap(src map[string]string) map[string]rune {
m := make(map[string]rune, len(src))
for name, cp := range src {
r, _ := utf8.DecodeRuneInString(cp)
camel := camelToKebab(name)
m[name] = r
m[camel] = r
if lower := toLower(name); lower != name {
m[lower] = r
}
}
return m
}
func camelToKebab(s string) string {
var out []byte
for i, r := range s {
if unicode.IsUpper(r) && i > 0 {
out = append(out, '-')
}
out = append(out, byte(unicode.ToLower(r)))
}
return string(out)
}
func toLower(s string) string {
return string(unicode.ToLower(rune(s[0]))) + s[1:]
}