示例#1
0
文件: frame.go 项目: Richardphp/noms
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
}
示例#2
0
文件: frame.go 项目: Richardphp/noms
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
}
示例#3
0
文件: frame.go 项目: Richardphp/noms
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
}
示例#4
0
文件: frame.go 项目: Richardphp/noms
// 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
}