1package id3 2 3import ( 4 "github.com/wader/fq/format" 5 "github.com/wader/fq/format/registry" 6 "github.com/wader/fq/pkg/decode" 7 "github.com/wader/fq/pkg/scalar" 8) 9 10func init() { 11 registry.MustRegister(decode.Format{ 12 Name: format.ID3V11, 13 Description: "ID3v1.1 metadata", 14 DecodeFn: id3v11Decode, 15 }) 16} 17 18func id3v11Decode(d *decode.D, in interface{}) interface{} { 19 d.AssertAtLeastBitsLeft(128 * 8) 20 d.FieldUTF8("magic", 4, d.AssertStr("TAG+")) 21 d.FieldUTF8("title", 60) 22 d.FieldUTF8("artist", 60) 23 d.FieldUTF8("album", 60) 24 d.FieldU8("speed", scalar.UToSymStr{ 25 0: "unset", 26 1: "slow", 27 2: "medium", 28 3: "fast", 29 4: "hardcore", 30 }) 31 d.FieldUTF8("genre", 30) 32 d.FieldUTF8("start", 6) 33 d.FieldUTF8("stop", 6) 34 35 return nil 36} 37