42 lines
810 B
Go
42 lines
810 B
Go
// Package providers
|
|
package providers
|
|
|
|
import (
|
|
"log/slog"
|
|
|
|
"esdi/providers/beamng"
|
|
"esdi/providers/iracing"
|
|
"esdi/telemetry"
|
|
|
|
"github.com/ESilva15/goirsdk"
|
|
)
|
|
|
|
// Make this be some kind of struct where we can access a function that returns
|
|
// the selected provider by its name
|
|
type Provider struct {
|
|
Name string
|
|
Provider telemetry.TelemetryProvider
|
|
}
|
|
|
|
var Providers = map[string]Provider{
|
|
beamng.NAME: {
|
|
Name: beamng.NAME,
|
|
},
|
|
iracing.NAME: {
|
|
Name: iracing.NAME,
|
|
},
|
|
}
|
|
|
|
func NewIRacingProvider(logger *slog.Logger, opts goirsdk.Options,
|
|
) telemetry.TelemetryProvider {
|
|
provider, _ := iracing.NewIRacingProvider(logger, opts)
|
|
|
|
return provider
|
|
}
|
|
|
|
func NewBeamNGProvider(ip string, port int) telemetry.TelemetryProvider {
|
|
provider, _ := beamng.NewBeamNGProvider(ip, port)
|
|
|
|
return provider
|
|
}
|