You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
1.1 KiB
60 lines
1.1 KiB
3 years ago
|
package v2
|
||
|
|
||
|
import (
|
||
|
"io"
|
||
|
|
||
|
"github.com/Unbewohnte/id3ed/util"
|
||
|
)
|
||
|
|
||
|
////////////////////////////////////////////////////////////////////////////
|
||
|
//(ᗜˬᗜ)~⭐//Under construction//Please don`t use it in this verison//(ᗜ‸ᗜ)///
|
||
|
////////////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
type FrameHeader struct {
|
||
|
Identifier string
|
||
|
FrameSize int64
|
||
|
}
|
||
|
|
||
|
type Frame struct {
|
||
|
Header *FrameHeader
|
||
|
Contents string
|
||
|
}
|
||
|
|
||
|
// NOT TESTED !
|
||
|
func Readv2Frame(rs io.Reader) (*Frame, error) {
|
||
|
var frameHeader *FrameHeader
|
||
|
var frame Frame
|
||
|
|
||
|
identifier, err := util.ReadToString(rs, 3)
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
frameHeader.Identifier = identifier
|
||
|
|
||
|
framesizeBytes, err := util.Read(rs, 3)
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
|
||
|
framesize, err := util.BytesToInt(framesizeBytes)
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
|
||
|
frameHeader.FrameSize = framesize
|
||
|
|
||
|
frameContents, err := util.ReadToString(rs, int(framesize))
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
|
||
|
frame.Header = frameHeader
|
||
|
frame.Contents = frameContents
|
||
|
|
||
|
return &frame, nil
|
||
|
}
|
||
|
|
||
|
// func ReadFrame(rs io.Reader, version string) error {
|
||
|
// return nil
|
||
|
// }
|