diff --git a/main.go b/main.go index de89b14..03893b5 100644 --- a/main.go +++ b/main.go @@ -12,12 +12,10 @@ import ( ) /* - TODO: - -1. Color backdrop to album cover (some sort of sampling?) -2. Transition effect when swapping songs -3. Has/Get code in parse could probably be done with an interface instead? (is it worth it?) -4. Document functions +TODO: +1. Transition effect when swapping songs +2. Has/Get code in parse could probably be done with an interface instead? (is it worth it?) +3. Document functions */ var password string @@ -77,7 +75,19 @@ func main() { } art, err := retrieveArt(path) + if err != nil { + log.Fatal(err) + } artFile, err := writeArtFile(art) + if err != nil { + log.Printf("could not parse the art file, using default.jpg unprocessed.") + artFile = "./default.jpg" + } + color, err := processBGColor(artFile) + if err != nil { + log.Printf("Could not determine color, setting to default color.\n%v", err) + color = 0xff424242 + } for i := range scil.SceneItems { if scil.SceneItems[i].SourceName == "Artist" { updateItem(client, scil.SceneItems[i], artist, "text") @@ -91,6 +101,9 @@ func main() { if scil.SceneItems[i].SourceName == "Art" { updateItem(client, scil.SceneItems[i], artFile, "file") } + if scil.SceneItems[i].SourceName == "Color" { + updateItem(client, scil.SceneItems[i], color, "color") + } } } time.Sleep(time.Duration(sleepTime) * time.Second) @@ -98,7 +111,7 @@ func main() { } } -func updateItem(client *goobs.Client, sI *typedefs.SceneItem, value string, key string) { +func updateItem(client *goobs.Client, sI *typedefs.SceneItem, value any, key string) { params := inputs.NewSetInputSettingsParams().WithInputName(sI.SourceName).WithInputUuid(sI.SourceUuid) params.InputSettings = make(map[string]any) params.InputSettings[key] = value