diff --git a/radiomenu.go b/radiomenu.go index 4978929..ef6e2d2 100644 --- a/radiomenu.go +++ b/radiomenu.go @@ -6,24 +6,35 @@ import ( "os" ) +func Short( s string, i int ) string { + runes := []rune( s ) + if len( runes ) > i { + return string( runes[:i] ) + } + return s +} + + func Quit() { os.Exit(0) } func RadioMenu(stations []stationRecord) *wmenu.Menu { + fmt.Println("...Radio Menu...") menu := wmenu.NewMenu("What is your choice?") menu.Action( func (opts []wmenu.Opt) error { if opts[0].Text == "Quit"{Quit()} val := fmt.Sprintf("%s",opts[0].Value) - fmt.Printf("Streaming: '" + opts[0].Text + "' at url - "+ val +"\n") + fmt.Printf("Streaming: " + opts[0].Text + "\n") stdout, _ := subExecute(player(), options(), val) fmt.Println(stdout) menu.Run() return nil }) for _, station := range stations { - menu.Option(station.Name, station.Url, false, nil ) + stationListing := fmt.Sprintf("%-40s %-5s %-5s %s", Short(station.Name, 40), station.Codec, station.Bitrate, station.Url) + menu.Option(stationListing, station.Url, false, nil ) } menu.Option("Quit", nil, true, nil) return menu