2021-10-16 23:40:38 -06:00
|
|
|
package main
|
2021-10-17 10:56:26 -06:00
|
|
|
|
|
|
|
import (
|
2021-10-16 23:40:38 -06:00
|
|
|
"strconv"
|
2021-10-17 10:56:26 -06:00
|
|
|
"strings"
|
2021-10-28 22:38:09 -06:00
|
|
|
"syscall"
|
|
|
|
"unsafe"
|
2021-10-16 23:40:38 -06:00
|
|
|
)
|
|
|
|
|
2021-10-28 22:38:09 -06:00
|
|
|
type winsize struct {
|
|
|
|
Row uint16
|
|
|
|
Col uint16
|
|
|
|
Xpixel uint16
|
|
|
|
Ypixel uint16
|
|
|
|
}
|
|
|
|
|
|
|
|
func getWidth() *winsize {
|
|
|
|
ws := &winsize{}
|
|
|
|
retCode, _, errno := syscall.Syscall(syscall.SYS_IOCTL,
|
|
|
|
uintptr(syscall.Stdin),
|
|
|
|
uintptr(syscall.TIOCGWINSZ),
|
|
|
|
uintptr(unsafe.Pointer(ws)))
|
|
|
|
|
|
|
|
if int(retCode) == -1 {
|
|
|
|
panic(errno)
|
|
|
|
}
|
|
|
|
return ws
|
|
|
|
}
|
|
|
|
|
|
|
|
func getFontWidth() (float32, float32) {
|
|
|
|
g := getWidth()
|
|
|
|
fw := (float32(g.Xpixel) / float32(g.Col))
|
|
|
|
fh := (float32(g.Ypixel) / float32(g.Row))
|
|
|
|
return fw, fh
|
|
|
|
}
|
|
|
|
|
2021-10-17 10:56:26 -06:00
|
|
|
func strTime(e float64) string {
|
2021-10-16 23:40:38 -06:00
|
|
|
a := int(e)
|
|
|
|
var min, seconds string
|
2021-10-17 10:56:26 -06:00
|
|
|
if a/60 < 10 {
|
2021-10-16 23:40:38 -06:00
|
|
|
min = "0"
|
2021-10-17 10:56:26 -06:00
|
|
|
min += strconv.Itoa(a / 60)
|
2021-10-16 23:40:38 -06:00
|
|
|
} else {
|
2021-10-17 10:56:26 -06:00
|
|
|
min = strconv.Itoa(a / 60)
|
2021-10-16 23:40:38 -06:00
|
|
|
}
|
2021-10-17 10:56:26 -06:00
|
|
|
if a%60 < 10 {
|
2021-10-16 23:40:38 -06:00
|
|
|
seconds = "0"
|
2021-10-17 10:56:26 -06:00
|
|
|
seconds += strconv.Itoa(a % 60)
|
|
|
|
} else {
|
|
|
|
seconds = strconv.Itoa(a % 60)
|
2021-10-16 23:40:38 -06:00
|
|
|
}
|
|
|
|
return min + ":" + seconds
|
|
|
|
}
|
|
|
|
|
2021-10-17 10:56:26 -06:00
|
|
|
func insertAt(inputString, stringTobeInserted string, index int) string {
|
|
|
|
s := inputString[:index] + stringTobeInserted + inputString[index:]
|
2021-10-16 23:40:38 -06:00
|
|
|
return s
|
|
|
|
}
|
|
|
|
|
2021-10-17 10:56:26 -06:00
|
|
|
func getText(width, percentage float64, eta string) string {
|
|
|
|
q := "[#000000:#ffffff:b]"
|
2021-10-16 23:40:38 -06:00
|
|
|
var a string
|
2021-10-17 10:56:26 -06:00
|
|
|
a += strings.Repeat(" ", int(width)-len(eta))
|
|
|
|
a = insertAt(a, eta, int(width/2)-10)
|
|
|
|
a = insertAt(a, "[-:-:-]", int(width*percentage/100))
|
2021-10-16 23:40:38 -06:00
|
|
|
q += a
|
|
|
|
return q
|
|
|
|
}
|
2021-10-17 01:45:52 -06:00
|
|
|
|
2021-11-28 11:02:32 -07:00
|
|
|
func ConvertToArray() []string {
|
|
|
|
var p []string
|
|
|
|
for k2, v := range ARTIST_TREE {
|
|
|
|
p = append(p, k2)
|
|
|
|
for k1, v1 := range v {
|
|
|
|
p = append(p, k1)
|
|
|
|
for k := range v1 {
|
|
|
|
p = append(p, k)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return p
|
|
|
|
}
|
|
|
|
|
2021-10-17 01:45:52 -06:00
|
|
|
func formatString(a interface{}) string {
|
|
|
|
if a == "play" {
|
|
|
|
return "Playing"
|
|
|
|
} else if a == "1" {
|
|
|
|
return "On"
|
|
|
|
} else if a == "0" {
|
|
|
|
return "Off"
|
|
|
|
} else if a == "stop" {
|
|
|
|
return "Stopped"
|
|
|
|
} else {
|
|
|
|
return "Paused"
|
|
|
|
}
|
|
|
|
}
|