From 7df4020194bfb08c4e2749baa7a0599991bdca28 Mon Sep 17 00:00:00 2001 From: Nathan Wagner Date: Fri, 20 Oct 2023 01:56:04 +0000 Subject: [PATCH] removed submodule, adding rt_options --- .devcontainer/devcontainer.json | 25 +++++++++++++++++++++++ go.mod | 22 +++++++++++++++++++- go.sum | 36 +++++++++++++++++++++++++++++++++ matrix.go | 20 ++++++++++++++---- vendor/rpi-rgb-led-matrix | 1 - 5 files changed, 98 insertions(+), 6 deletions(-) create mode 100644 .devcontainer/devcontainer.json create mode 100644 go.sum delete mode 160000 vendor/rpi-rgb-led-matrix diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 0000000..f3d39f7 --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,25 @@ +// For format details, see https://aka.ms/devcontainer.json. For config options, see the +// README at: https://github.com/devcontainers/templates/tree/main/src/go +{ + "name": "Go", + // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile + "image": "mcr.microsoft.com/devcontainers/go:1-1.21-bullseye", + "features": { + "ghcr.io/devcontainers/features/docker-in-docker:2": {} + } + + // Features to add to the dev container. More info: https://containers.dev/features. + // "features": {}, + + // Use 'forwardPorts' to make a list of ports inside the container available locally. + // "forwardPorts": [], + + // Use 'postCreateCommand' to run commands after the container is created. + // "postCreateCommand": "go version", + + // Configure tool-specific properties. + // "customizations": {}, + + // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. + // "remoteUser": "root" +} diff --git a/go.mod b/go.mod index a4e6eab..0ee29bd 100644 --- a/go.mod +++ b/go.mod @@ -1,3 +1,23 @@ module gitea.wagshome.duckdns.org/publicWagsHome/go-rpi-rgb-led-matrix -go 1.17 +go 1.21.2 + +require ( + github.com/disintegration/imaging v1.6.2 + github.com/fogleman/gg v1.3.0 + golang.org/x/exp/shiny v0.0.0-20231006140011-7918f672742d + golang.org/x/mobile v0.0.0-20231006135142-2b44d11868fe + gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c +) + +require ( + dmitri.shuralyov.com/gpu/mtl v0.0.0-20221208032759-85de2813cf6b // indirect + github.com/go-gl/glfw/v3.3/glfw v0.0.0-20221017161538-93cebf72946b // indirect + github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 // indirect + github.com/jezek/xgb v1.1.0 // indirect + github.com/kr/pretty v0.3.1 // indirect + github.com/kr/text v0.2.0 // indirect + github.com/rogpeppe/go-internal v1.11.0 // indirect + golang.org/x/image v0.13.0 // indirect + golang.org/x/sys v0.13.0 // indirect +) diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..b5a3698 --- /dev/null +++ b/go.sum @@ -0,0 +1,36 @@ +dmitri.shuralyov.com/gpu/mtl v0.0.0-20221208032759-85de2813cf6b h1:a26Bdkl2B9PmYN6vGXnnfB2UGKjz0Moif1aEg+xTd7M= +dmitri.shuralyov.com/gpu/mtl v0.0.0-20221208032759-85de2813cf6b/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/disintegration/imaging v1.6.2 h1:w1LecBlG2Lnp8B3jk5zSuNqd7b4DXhcjwek1ei82L+c= +github.com/disintegration/imaging v1.6.2/go.mod h1:44/5580QXChDfwIclfc/PCwrr44amcmDAg8hxG0Ewe4= +github.com/fogleman/gg v1.3.0 h1:/7zJX8F6AaYQc57WQCyN9cAIz+4bCJGO9B+dyW29am8= +github.com/fogleman/gg v1.3.0/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20221017161538-93cebf72946b h1:GgabKamyOYguHqHjSkDACcgoPIz3w0Dis/zJ1wyHHHU= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20221017161538-93cebf72946b/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 h1:DACJavvAHhabrF08vX0COfcOBJRhZ8lUbR+ZWIs0Y5g= +github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= +github.com/jezek/xgb v1.1.0 h1:wnpxJzP1+rkbGclEkmwpVFQWpuE2PUGNUzP8SbfFobk= +github.com/jezek/xgb v1.1.0/go.mod h1:nrhwO0FX/enq75I7Y7G8iN1ubpSGZEiA3v9e9GyRFlk= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= +github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= +golang.org/x/exp/shiny v0.0.0-20231006140011-7918f672742d h1:grE48C8cjIY0aiHVmFyYgYxxSARQWBABLXKZfQPrBhY= +golang.org/x/exp/shiny v0.0.0-20231006140011-7918f672742d/go.mod h1:UH99kUObWAZkDnWqppdQe5ZhPYESUw8I0zVV1uWBR+0= +golang.org/x/image v0.0.0-20191009234506-e7c1f5e7dbb8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.13.0 h1:3cge/F/QTkNLauhf2QoE9zp+7sr+ZcL4HnoZmdwg9sg= +golang.org/x/image v0.13.0/go.mod h1:6mmbMOeV28HuMTgA6OSRkdXKYw/t5W9Uwn2Yv1r3Yxk= +golang.org/x/mobile v0.0.0-20231006135142-2b44d11868fe h1:lrXv4yHeD9FA8PSJATWowP1QvexpyAPWmPia+Kbzql8= +golang.org/x/mobile v0.0.0-20231006135142-2b44d11868fe/go.mod h1:BrnXpEObnFxpaT75Jo9hsCazwOWcp7nVIa8NNuH5cuA= +golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= +golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= diff --git a/matrix.go b/matrix.go index 1f71569..6e89776 100644 --- a/matrix.go +++ b/matrix.go @@ -1,8 +1,8 @@ package rgbmatrix /* -#cgo CFLAGS: -std=c99 -I${SRCDIR}/vendor/rpi-rgb-led-matrix/include -DSHOW_REFRESH_RATE -#cgo LDFLAGS: -lrgbmatrix -L${SRCDIR}/vendor/rpi-rgb-led-matrix/lib -lstdc++ -lm +#cgo CFLAGS: -std=c99 -I${SRCDIR}/depends/rpi-rgb-led-matrix/include -DSHOW_REFRESH_RATE +#cgo LDFLAGS: -lrgbmatrix -L${SRCDIR}/depends/rpi-rgb-led-matrix/lib -lstdc++ -lm #include void led_matrix_swap(struct RGBLedMatrix *matrix, struct LedCanvas *offscreen_canvas, @@ -35,6 +35,7 @@ void set_disable_hardware_pulsing(struct RGBLedMatrixOptions *o, int disable_har void set_inverse_colors(struct RGBLedMatrixOptions *o, int inverse_colors) { o->inverse_colors = inverse_colors != 0 ? 1 : 0; } + */ import "C" import ( @@ -58,6 +59,10 @@ var DefaultConfig = HardwareConfig{ ScanMode: Progressive, } +type RunTimeConfig struct { + gpio_slowdown int +} + // HardwareConfig rgb-led-matrix configuration type HardwareConfig struct { // Rows the number of rows supported by the display, so 32 or 16. @@ -103,6 +108,12 @@ func (c *HardwareConfig) geometry() (width, height int) { return c.Cols * c.ChainLength, c.Rows * c.Parallel } +func (c *RunTimeConfig) rt_options() *C.struct_RGBLedRuntimeOptions { + rt := &C.struct_RGBLedRuntimeOptions{} + rt.gpio_slowdown = C.int(c.gpio_slowdown) + + return rt +} func (c *HardwareConfig) toC() *C.struct_RGBLedMatrixOptions { o := &C.struct_RGBLedMatrixOptions{} o.rows = C.int(c.Rows) @@ -157,7 +168,7 @@ type RGBLedMatrix struct { const MatrixEmulatorENV = "MATRIX_EMULATOR" // NewRGBLedMatrix returns a new matrix using the given size and config -func NewRGBLedMatrix(config *HardwareConfig) (c Matrix, err error) { +func NewRGBLedMatrix(config *HardwareConfig, rt *RunTimeConfig) (c Matrix, err error) { defer func() { if r := recover(); r != nil { var ok bool @@ -173,7 +184,8 @@ func NewRGBLedMatrix(config *HardwareConfig) (c Matrix, err error) { } w, h := config.geometry() - m := C.led_matrix_create_from_options(config.toC(), nil, nil) + //m := C.led_matrix_create_from_options(config.toC(), nil, nil) + m := C.led_matrix_create_from_options_and_rt_options(config.toC(), rt.rt_options()) b := C.led_matrix_create_offscreen_canvas(m) c = &RGBLedMatrix{ Config: config, diff --git a/vendor/rpi-rgb-led-matrix b/vendor/rpi-rgb-led-matrix deleted file mode 160000 index 0a4f8f9..0000000 --- a/vendor/rpi-rgb-led-matrix +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 0a4f8f9a9ea46dbb74f068afea8d07b5aeb72244