gomp/utils.go

111 lines
2.0 KiB
Go

package main
import (
"io/ioutil"
"strconv"
"strings"
"syscall"
"unsafe"
)
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
}
func strTime(e float64) string {
a := int(e)
var min, seconds string
if a/60 < 10 {
min = "0"
min += strconv.Itoa(a / 60)
} else {
min = strconv.Itoa(a / 60)
}
if a%60 < 10 {
seconds = "0"
seconds += strconv.Itoa(a % 60)
} else {
seconds = strconv.Itoa(a % 60)
}
return min + ":" + seconds
}
func insertAt(inputString, stringTobeInserted string, index int) string {
s := inputString[:index] + stringTobeInserted + inputString[index:]
return s
}
func getText(width, percentage float64, eta string) string {
q := "[#000000:#ffffff:b]"
var a string
a += strings.Repeat(" ", int(width)-len(eta))
a = insertAt(a, eta, int(width/2)-10)
a = insertAt(a, "[-:-:-]", int(width*percentage/100))
q += a
return q
}
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
}
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"
}
}
func Copy(sourceImage, destinationImage string) error {
source, err := ioutil.ReadFile(sourceImage)
if err != nil {
return err
} else {
err = ioutil.WriteFile(destinationImage, source, 0644)
if err != nil {
return err
}
return nil
}
}