1package playlistfs23import (4 "fmt"5 "strconv"6)78type Control struct {9 Name string10 Arg *int11}1213func CtlCmd(buf []byte) (*Control, error) {14 var cmd Control1516 fields, err := parseFields(buf, 1, 2)17 if err != nil {18 return nil, err19 }2021 for _, field := range fields {22 for i := 0; i < len(field); i++ {23 data := field[i]24 switch i {25 case 0:26 cmd.Name = data27 case 1:28 arg, err := strconv.Atoi(data)29 if err != nil {30 return nil, err31 }32 cmd.Arg = &arg33 }34 }35 }3637 return &cmd, nil38}3940func (c *Control) String() string {41 return fmt.Sprintf("%s %d", c.Name, *c.Arg)42}