move init functions to top of file

This commit is contained in:
Joel Wetzell
2026-05-22 17:45:03 -05:00
parent fb3c775765
commit 4323a21015
67 changed files with 1706 additions and 1706 deletions
+11 -11
View File
@@ -14,17 +14,6 @@ import (
_ "modernc.org/sqlite"
)
type DbSqlite struct {
config config.ModuleConfig
Dsn string
ctx context.Context
inputHandler common.InputHandler
db *sql.DB
logger *slog.Logger
dbMu sync.Mutex
cancel context.CancelFunc
}
func init() {
RegisterModule(ModuleRegistration{
Type: "db.sqlite",
@@ -53,6 +42,17 @@ func init() {
})
}
type DbSqlite struct {
config config.ModuleConfig
Dsn string
ctx context.Context
inputHandler common.InputHandler
db *sql.DB
logger *slog.Logger
dbMu sync.Mutex
cancel context.CancelFunc
}
func (dbs *DbSqlite) Id() string {
return dbs.config.Id
}
+28 -28
View File
@@ -16,6 +16,34 @@ import (
"github.com/jwetzell/showbridge-go/internal/processor"
)
func init() {
RegisterModule(ModuleRegistration{
Type: "http.server",
Title: "HTTP Server",
ParamsSchema: &jsonschema.Schema{
Type: "object",
Properties: map[string]*jsonschema.Schema{
"port": {
Title: "Port",
Type: "integer",
Minimum: jsonschema.Ptr[float64](1024),
Maximum: jsonschema.Ptr[float64](65535),
},
},
Required: []string{"port"},
AdditionalProperties: &jsonschema.Schema{Not: &jsonschema.Schema{}},
},
New: func(config config.ModuleConfig) (common.Module, error) {
params := config.Params
portNum, err := params.GetInt("port")
if err != nil {
return nil, fmt.Errorf("http.server port error: %w", err)
}
return &HTTPServer{Port: uint16(portNum), config: config, logger: CreateLogger(config)}, nil
},
})
}
type HTTPServer struct {
config config.ModuleConfig
Port uint16
@@ -55,34 +83,6 @@ func (hsrw *HTTPServerResponseWriter) Write(data []byte) (int, error) {
return hsrw.ResponseWriter.Write(data)
}
func init() {
RegisterModule(ModuleRegistration{
Type: "http.server",
Title: "HTTP Server",
ParamsSchema: &jsonschema.Schema{
Type: "object",
Properties: map[string]*jsonschema.Schema{
"port": {
Title: "Port",
Type: "integer",
Minimum: jsonschema.Ptr[float64](1024),
Maximum: jsonschema.Ptr[float64](65535),
},
},
Required: []string{"port"},
AdditionalProperties: &jsonschema.Schema{Not: &jsonschema.Schema{}},
},
New: func(config config.ModuleConfig) (common.Module, error) {
params := config.Params
portNum, err := params.GetInt("port")
if err != nil {
return nil, fmt.Errorf("http.server port error: %w", err)
}
return &HTTPServer{Port: uint16(portNum), config: config, logger: CreateLogger(config)}, nil
},
})
}
func (hs *HTTPServer) Id() string {
return hs.config.Id
}
+10 -10
View File
@@ -14,16 +14,6 @@ import (
_ "gitlab.com/gomidi/midi/v2/drivers/rtmididrv"
)
type MIDIInput struct {
config config.ModuleConfig
ctx context.Context
inputHandler common.InputHandler
Port string
logger *slog.Logger
cancel context.CancelFunc
stop func()
}
func init() {
RegisterModule(ModuleRegistration{
Type: "midi.input",
@@ -51,6 +41,16 @@ func init() {
})
}
type MIDIInput struct {
config config.ModuleConfig
ctx context.Context
inputHandler common.InputHandler
Port string
logger *slog.Logger
cancel context.CancelFunc
stop func()
}
func (mi *MIDIInput) Id() string {
return mi.config.Id
}
+11 -11
View File
@@ -16,17 +16,6 @@ import (
_ "gitlab.com/gomidi/midi/v2/drivers/rtmididrv"
)
type MIDIOutput struct {
config config.ModuleConfig
ctx context.Context
inputHandler common.InputHandler
Port string
sendFunc func(midi.Message) error
logger *slog.Logger
cancel context.CancelFunc
sendFuncMu sync.Mutex
}
func init() {
RegisterModule(ModuleRegistration{
Type: "midi.output",
@@ -55,6 +44,17 @@ func init() {
})
}
type MIDIOutput struct {
config config.ModuleConfig
ctx context.Context
inputHandler common.InputHandler
Port string
sendFunc func(midi.Message) error
logger *slog.Logger
cancel context.CancelFunc
sendFuncMu sync.Mutex
}
func (mo *MIDIOutput) Id() string {
return mo.config.Id
}
+15 -15
View File
@@ -14,21 +14,6 @@ import (
"github.com/jwetzell/showbridge-go/internal/config"
)
type MQTTClient struct {
config config.ModuleConfig
ctx context.Context
inputHandler common.InputHandler
Broker string
ClientID string
Topic string
QoS byte
Retained bool
client mqtt.Client
logger *slog.Logger
cancel context.CancelFunc
clientMu sync.Mutex
}
func init() {
RegisterModule(ModuleRegistration{
Type: "mqtt.client",
@@ -109,6 +94,21 @@ func init() {
})
}
type MQTTClient struct {
config config.ModuleConfig
ctx context.Context
inputHandler common.InputHandler
Broker string
ClientID string
Topic string
QoS byte
Retained bool
client mqtt.Client
logger *slog.Logger
cancel context.CancelFunc
clientMu sync.Mutex
}
func (mc *MQTTClient) Id() string {
return mc.config.Id
}
+14 -14
View File
@@ -12,20 +12,6 @@ import (
"github.com/nats-io/nats.go"
)
type NATSClient struct {
config config.ModuleConfig
ctx context.Context
inputHandler common.InputHandler
URL string
Subject string
client *nats.Conn
logger *slog.Logger
cancel context.CancelFunc
sub *nats.Subscription
subMu sync.Mutex
clientMu sync.Mutex
}
func init() {
RegisterModule(ModuleRegistration{
Type: "nats.client",
@@ -63,6 +49,20 @@ func init() {
})
}
type NATSClient struct {
config config.ModuleConfig
ctx context.Context
inputHandler common.InputHandler
URL string
Subject string
client *nats.Conn
logger *slog.Logger
cancel context.CancelFunc
sub *nats.Subscription
subMu sync.Mutex
clientMu sync.Mutex
}
func (nc *NATSClient) Id() string {
return nc.config.Id
}
+12 -12
View File
@@ -16,18 +16,6 @@ import (
"github.com/nats-io/nats-server/v2/server"
)
type NATSServer struct {
config config.ModuleConfig
ctx context.Context
Ip string
Port int
inputHandler common.InputHandler
server *server.Server
logger *slog.Logger
cancel context.CancelFunc
serverMu sync.Mutex
}
func init() {
RegisterModule(ModuleRegistration{
Type: "nats.server",
@@ -80,6 +68,18 @@ func init() {
})
}
type NATSServer struct {
config config.ModuleConfig
ctx context.Context
Ip string
Port int
inputHandler common.InputHandler
server *server.Server
logger *slog.Logger
cancel context.CancelFunc
serverMu sync.Mutex
}
func (ns *NATSServer) Id() string {
return ns.config.Id
}
+10 -10
View File
@@ -12,6 +12,16 @@ import (
"github.com/jwetzell/showbridge-go/internal/config"
)
func init() {
RegisterModule(ModuleRegistration{
Type: "psn.client",
Title: "PosiStageNet Client",
New: func(config config.ModuleConfig) (common.Module, error) {
return &PSNClient{config: config, decoder: psn.NewDecoder(), logger: CreateLogger(config)}, nil
},
})
}
type PSNClient struct {
config config.ModuleConfig
conn *net.UDPConn
@@ -23,16 +33,6 @@ type PSNClient struct {
connMu sync.Mutex
}
func init() {
RegisterModule(ModuleRegistration{
Type: "psn.client",
Title: "PosiStageNet Client",
New: func(config config.ModuleConfig) (common.Module, error) {
return &PSNClient{config: config, decoder: psn.NewDecoder(), logger: CreateLogger(config)}, nil
},
})
}
func (pc *PSNClient) Id() string {
return pc.config.Id
}
+12 -12
View File
@@ -13,18 +13,6 @@ import (
"github.com/redis/go-redis/v9"
)
type RedisClient struct {
config config.ModuleConfig
ctx context.Context
inputHandler common.InputHandler
Host string
Port uint16
client *redis.Client
logger *slog.Logger
cancel context.CancelFunc
clientMu sync.Mutex
}
func init() {
RegisterModule(ModuleRegistration{
Type: "redis.client",
@@ -62,6 +50,18 @@ func init() {
})
}
type RedisClient struct {
config config.ModuleConfig
ctx context.Context
inputHandler common.InputHandler
Host string
Port uint16
client *redis.Client
logger *slog.Logger
cancel context.CancelFunc
clientMu sync.Mutex
}
func (rc *RedisClient) Id() string {
return rc.config.Id
}
+13 -13
View File
@@ -17,19 +17,6 @@ import (
"go.bug.st/serial"
)
type SerialClient struct {
config config.ModuleConfig
ctx context.Context
inputHandler common.InputHandler
Port string
Framer framer.Framer
Mode *serial.Mode
port serial.Port
logger *slog.Logger
cancel context.CancelFunc
portMu sync.Mutex
}
func init() {
RegisterModule(ModuleRegistration{
Type: "serial.client",
@@ -86,6 +73,19 @@ func init() {
})
}
type SerialClient struct {
config config.ModuleConfig
ctx context.Context
inputHandler common.InputHandler
Port string
Framer framer.Framer
Mode *serial.Mode
port serial.Port
logger *slog.Logger
cancel context.CancelFunc
portMu sync.Mutex
}
func (sc *SerialClient) Id() string {
return sc.config.Id
}
+25 -25
View File
@@ -21,31 +21,6 @@ import (
"github.com/jwetzell/showbridge-go/internal/processor"
)
type SIPCallServer struct {
config config.ModuleConfig
ctx context.Context
inputHandler common.InputHandler
IP string
Port int
Transport string
UserAgent string
logger *slog.Logger
cancel context.CancelFunc
ua *sipgo.UserAgent
uaMu sync.Mutex
}
type SIPCallMessage struct {
To string
}
type SIPCall struct {
inDialog *diago.DialogServerSession
lock sync.Mutex
}
type sipCallContextKey string
func init() {
RegisterModule(ModuleRegistration{
Type: "sip.call.server",
@@ -124,6 +99,31 @@ func init() {
})
}
type SIPCallServer struct {
config config.ModuleConfig
ctx context.Context
inputHandler common.InputHandler
IP string
Port int
Transport string
UserAgent string
logger *slog.Logger
cancel context.CancelFunc
ua *sipgo.UserAgent
uaMu sync.Mutex
}
type SIPCallMessage struct {
To string
}
type SIPCall struct {
inDialog *diago.DialogServerSession
lock sync.Mutex
}
type sipCallContextKey string
func (scs *SIPCallServer) Id() string {
return scs.config.Id
}
+25 -25
View File
@@ -22,31 +22,6 @@ import (
"github.com/jwetzell/showbridge-go/internal/processor"
)
type SIPDTMFServer struct {
config config.ModuleConfig
ctx context.Context
inputHandler common.InputHandler
IP string
Port int
Transport string
UserAgent string
Separator string
logger *slog.Logger
cancel context.CancelFunc
ua *sipgo.UserAgent
uaMu sync.Mutex
}
type SIPDTMFMessage struct {
To string
Digits string
}
type SIPDTMFCall struct {
inDialog *diago.DialogServerSession
lock sync.Mutex
}
func init() {
RegisterModule(ModuleRegistration{
Type: "sip.dtmf.server",
@@ -144,6 +119,31 @@ func init() {
})
}
type SIPDTMFServer struct {
config config.ModuleConfig
ctx context.Context
inputHandler common.InputHandler
IP string
Port int
Transport string
UserAgent string
Separator string
logger *slog.Logger
cancel context.CancelFunc
ua *sipgo.UserAgent
uaMu sync.Mutex
}
type SIPDTMFMessage struct {
To string
Digits string
}
type SIPDTMFCall struct {
inDialog *diago.DialogServerSession
lock sync.Mutex
}
func (sds *SIPDTMFServer) Id() string {
return sds.config.Id
}
+12 -12
View File
@@ -15,18 +15,6 @@ import (
"github.com/jwetzell/showbridge-go/internal/framer"
)
type TCPClient struct {
config config.ModuleConfig
framer framer.Framer
conn *net.TCPConn
ctx context.Context
inputHandler common.InputHandler
Addr *net.TCPAddr
logger *slog.Logger
cancel context.CancelFunc
connMu sync.Mutex
}
func init() {
RegisterModule(ModuleRegistration{
Type: "net.tcp.client",
@@ -85,6 +73,18 @@ func init() {
})
}
type TCPClient struct {
config config.ModuleConfig
framer framer.Framer
conn *net.TCPConn
ctx context.Context
inputHandler common.InputHandler
Addr *net.TCPAddr
logger *slog.Logger
cancel context.CancelFunc
connMu sync.Mutex
}
func (tc *TCPClient) Id() string {
return tc.config.Id
}
+15 -15
View File
@@ -19,21 +19,6 @@ import (
"github.com/jwetzell/showbridge-go/internal/framer"
)
type TCPServer struct {
config config.ModuleConfig
Addr *net.TCPAddr
Framer framer.Framer
ctx context.Context
inputHandler common.InputHandler
wg sync.WaitGroup
connections []*net.TCPConn
connectionsMu sync.RWMutex
logger *slog.Logger
cancel context.CancelFunc
listener *net.TCPListener
listenerMu sync.Mutex
}
func init() {
RegisterModule(ModuleRegistration{
Type: "net.tcp.server",
@@ -97,6 +82,21 @@ func init() {
})
}
type TCPServer struct {
config config.ModuleConfig
Addr *net.TCPAddr
Framer framer.Framer
ctx context.Context
inputHandler common.InputHandler
wg sync.WaitGroup
connections []*net.TCPConn
connectionsMu sync.RWMutex
logger *slog.Logger
cancel context.CancelFunc
listener *net.TCPListener
listenerMu sync.Mutex
}
func (ts *TCPServer) Id() string {
return ts.config.Id
}
+10 -10
View File
@@ -11,16 +11,6 @@ import (
"github.com/jwetzell/showbridge-go/internal/config"
)
type TimeInterval struct {
config config.ModuleConfig
Duration uint32
ctx context.Context
inputHandler common.InputHandler
ticker *time.Ticker
logger *slog.Logger
cancel context.CancelFunc
}
func init() {
RegisterModule(ModuleRegistration{
Type: "time.interval",
@@ -49,6 +39,16 @@ func init() {
})
}
type TimeInterval struct {
config config.ModuleConfig
Duration uint32
ctx context.Context
inputHandler common.InputHandler
ticker *time.Ticker
logger *slog.Logger
cancel context.CancelFunc
}
func (i *TimeInterval) Id() string {
return i.config.Id
}
+10 -10
View File
@@ -11,16 +11,6 @@ import (
"github.com/jwetzell/showbridge-go/internal/config"
)
type TimeTimer struct {
config config.ModuleConfig
Duration uint32
ctx context.Context
inputHandler common.InputHandler
timer *time.Timer
logger *slog.Logger
cancel context.CancelFunc
}
func init() {
RegisterModule(ModuleRegistration{
Type: "time.timer",
@@ -50,6 +40,16 @@ func init() {
})
}
type TimeTimer struct {
config config.ModuleConfig
Duration uint32
ctx context.Context
inputHandler common.InputHandler
timer *time.Timer
logger *slog.Logger
cancel context.CancelFunc
}
func (t *TimeTimer) Id() string {
return t.config.Id
}
+12 -12
View File
@@ -13,18 +13,6 @@ import (
"github.com/jwetzell/showbridge-go/internal/config"
)
type UDPClient struct {
config config.ModuleConfig
Addr *net.UDPAddr
Port uint16
conn *net.UDPConn
ctx context.Context
inputHandler common.InputHandler
logger *slog.Logger
cancel context.CancelFunc
connMu sync.Mutex
}
func init() {
RegisterModule(ModuleRegistration{
Type: "net.udp.client",
@@ -67,6 +55,18 @@ func init() {
})
}
type UDPClient struct {
config config.ModuleConfig
Addr *net.UDPAddr
Port uint16
conn *net.UDPConn
ctx context.Context
inputHandler common.InputHandler
logger *slog.Logger
cancel context.CancelFunc
connMu sync.Mutex
}
func (uc *UDPClient) Id() string {
return uc.config.Id
}
+11 -11
View File
@@ -14,17 +14,6 @@ import (
"github.com/jwetzell/showbridge-go/internal/config"
)
type UDPMulticast struct {
config config.ModuleConfig
conn *net.UDPConn
ctx context.Context
inputHandler common.InputHandler
Addr *net.UDPAddr
logger *slog.Logger
cancel context.CancelFunc
connMu sync.Mutex
}
func init() {
RegisterModule(ModuleRegistration{
Type: "net.udp.multicast",
@@ -67,6 +56,17 @@ func init() {
})
}
type UDPMulticast struct {
config config.ModuleConfig
conn *net.UDPConn
ctx context.Context
inputHandler common.InputHandler
Addr *net.UDPAddr
logger *slog.Logger
cancel context.CancelFunc
connMu sync.Mutex
}
func (um *UDPMulticast) Id() string {
return um.config.Id
}
+12 -12
View File
@@ -15,18 +15,6 @@ import (
"github.com/jwetzell/showbridge-go/internal/config"
)
type UDPServer struct {
Addr *net.UDPAddr
BufferSize int
config config.ModuleConfig
ctx context.Context
inputHandler common.InputHandler
logger *slog.Logger
cancel context.CancelFunc
listener *net.UDPConn
listenerMu sync.Mutex
}
func init() {
RegisterModule(ModuleRegistration{
Type: "net.udp.server",
@@ -90,6 +78,18 @@ func init() {
})
}
type UDPServer struct {
Addr *net.UDPAddr
BufferSize int
config config.ModuleConfig
ctx context.Context
inputHandler common.InputHandler
logger *slog.Logger
cancel context.CancelFunc
listener *net.UDPConn
listenerMu sync.Mutex
}
func (us *UDPServer) Id() string {
return us.config.Id
}
+11 -11
View File
@@ -16,17 +16,6 @@ import (
"github.com/jwetzell/showbridge-go/internal/config"
)
type WebSocketClient struct {
config config.ModuleConfig
URL url.URL
ctx context.Context
conn *websocket.Conn
inputHandler common.InputHandler
logger *slog.Logger
cancel context.CancelFunc
connMu sync.Mutex
}
func init() {
RegisterModule(ModuleRegistration{
Type: "websocket.client",
@@ -63,6 +52,17 @@ func init() {
})
}
type WebSocketClient struct {
config config.ModuleConfig
URL url.URL
ctx context.Context
conn *websocket.Conn
inputHandler common.InputHandler
logger *slog.Logger
cancel context.CancelFunc
connMu sync.Mutex
}
func (wc *WebSocketClient) Id() string {
return wc.config.Id
}