func ParseImageFrame(head FrameHead, data []byte) Framer { var err error f := new(ImageFrame) f.FrameHead = head rd := encodedbytes.NewReader(data) if f.encoding, err = rd.ReadByte(); err != nil { return nil } if f.mimeType, err = rd.ReadNullTermString(encodedbytes.NativeEncoding); err != nil { return nil } if f.pictureType, err = rd.ReadByte(); err != nil { return nil } if f.description, err = rd.ReadNullTermString(f.encoding); err != nil { return nil } if f.data, err = rd.ReadRest(); err != nil { return nil } return f }
func ParseTextFrame(head FrameHead, data []byte) Framer { var err error f := &TextFrame{FrameHead: head} rd := encodedbytes.NewReader(data) if f.encoding, err = rd.ReadByte(); err != nil { return nil } if f.text, err = rd.ReadRestString(f.encoding); err != nil { return nil } return f }
func ParseIdFrame(head FrameHead, data []byte) Framer { var err error f := &IdFrame{FrameHead: head} rd := encodedbytes.NewReader(data) if f.ownerIdentifier, err = rd.ReadNullTermString(encodedbytes.NativeEncoding); err != nil { return nil } if f.identifier, err = rd.ReadRest(); len(f.identifier) > 64 || err != nil { return nil } return f }
// DescTextFrame represents frames that contain encoded text and descriptions func ParseDescTextFrame(head FrameHead, data []byte) Framer { var err error f := new(DescTextFrame) f.FrameHead = head rd := encodedbytes.NewReader(data) if f.encoding, err = rd.ReadByte(); err != nil { return nil } if f.description, err = rd.ReadNullTermString(f.encoding); err != nil { return nil } if f.text, err = rd.ReadRestString(f.encoding); err != nil { return nil } return f }