Unbewohnte
3 years ago
13 changed files with 138 additions and 82 deletions
@ -0,0 +1,17 @@ |
|||||||
|
package id3ed |
||||||
|
|
||||||
|
// type File struct {
|
||||||
|
// Filename string
|
||||||
|
// ContainsV1 bool
|
||||||
|
// ContainsV2 bool
|
||||||
|
// }
|
||||||
|
|
||||||
|
// type Metadata interface {
|
||||||
|
// Write() error
|
||||||
|
// }
|
||||||
|
|
||||||
|
// func Open(path string) (*File, error) {
|
||||||
|
// return &File{}, nil
|
||||||
|
// }
|
||||||
|
|
||||||
|
// func (f *File) GetMetadata() (*Metadata, error)
|
Binary file not shown.
@ -1,6 +1,12 @@ |
|||||||
package v2 |
package v2 |
||||||
|
|
||||||
//ID3v2
|
|
||||||
const HEADERIDENTIFIER string = "ID3" |
const HEADERIDENTIFIER string = "ID3" |
||||||
const HEADERSIZE int = 10 // bytes
|
const HEADERSIZE int = 10 // bytes
|
||||||
const HEADERMAXSIZE int = 268435456 // bytes (256 MB)
|
const HEADERMAXSIZE int = 268435456 // bytes (256 MB)
|
||||||
|
const V2_2 string = "ID3v2.2" |
||||||
|
const V2_3 string = "ID3v2.3" |
||||||
|
const V2_4 string = "ID3v2.4" |
||||||
|
|
||||||
|
const V2_2FrameNameSize uint = 3 |
||||||
|
const V2_3FrameNameSize uint = 4 |
||||||
|
const V2_4FrameNameSize uint = 4 |
||||||
|
@ -1,34 +0,0 @@ |
|||||||
package v2 |
|
||||||
|
|
||||||
// Reads ID3v2 frames from rs. NOT TESTED !!!!
|
|
||||||
// func GetFrames(rs io.ReadSeeker) ([]*Frame, error) {
|
|
||||||
// header, err := GetHeader(rs)
|
|
||||||
// if err != nil {
|
|
||||||
// return nil, fmt.Errorf("could not get header: %s", err)
|
|
||||||
// }
|
|
||||||
// tagsize := header.Size
|
|
||||||
|
|
||||||
// var frames []*Frame
|
|
||||||
// var read uint64 = 0
|
|
||||||
// for {
|
|
||||||
// if read == uint64(tagsize) {
|
|
||||||
// break
|
|
||||||
// }
|
|
||||||
|
|
||||||
// frame, err := ReadFrame(rs)
|
|
||||||
// if err != nil {
|
|
||||||
// return frames, fmt.Errorf("could not read frame: %s", err)
|
|
||||||
// }
|
|
||||||
// frames = append(frames, frame)
|
|
||||||
|
|
||||||
// // counting how many bytes has been read
|
|
||||||
// read += 10 // frame header
|
|
||||||
// if frame.Flags.InGroup {
|
|
||||||
// // header has 1 additional byte
|
|
||||||
// read += 1
|
|
||||||
// }
|
|
||||||
// read += uint64(frame.Size) // and the contents itself
|
|
||||||
// }
|
|
||||||
|
|
||||||
// return frames, nil
|
|
||||||
// }
|
|
@ -1,13 +0,0 @@ |
|||||||
package v2 |
|
||||||
|
|
||||||
// func TestGetFrames(t *testing.T) {
|
|
||||||
// f, err := os.Open(filepath.Join(TESTDATAPATH, "testreadv2.mp3"))
|
|
||||||
// if err != nil {
|
|
||||||
// t.Errorf("%s", err)
|
|
||||||
// }
|
|
||||||
|
|
||||||
// _, err = GetFrames(f)
|
|
||||||
// if err != nil {
|
|
||||||
// t.Errorf("GetFrames failed: %s", err)
|
|
||||||
// }
|
|
||||||
// }
|
|
@ -0,0 +1,34 @@ |
|||||||
|
package v2 |
||||||
|
|
||||||
|
// type ID3v2Tag struct {
|
||||||
|
// Header *Header
|
||||||
|
// Frames []*Frame
|
||||||
|
// }
|
||||||
|
|
||||||
|
// type V2TagReader interface {
|
||||||
|
// ReadFrames(io.ReadSeeker) ([]*Frame, error)
|
||||||
|
// GetHeader(io.ReadSeeker) (*Header, error)
|
||||||
|
// HasPadding(io.ReadSeeker) (bool, error)
|
||||||
|
// }
|
||||||
|
|
||||||
|
// type V2TagWriter interface {
|
||||||
|
// Write(*os.File) error
|
||||||
|
// }
|
||||||
|
|
||||||
|
// func Get(f *os.File) (*ID3v2Tag, error) {
|
||||||
|
// var tag ID3v2Tag
|
||||||
|
|
||||||
|
// header, err := GetHeader(f)
|
||||||
|
// if err != nil {
|
||||||
|
// return nil, err
|
||||||
|
// }
|
||||||
|
// frames, err := GetFrames(f)
|
||||||
|
// if err != nil {
|
||||||
|
// return nil, err
|
||||||
|
// }
|
||||||
|
|
||||||
|
// tag.Header = header
|
||||||
|
// tag.Frames = frames
|
||||||
|
|
||||||
|
// return &tag, nil
|
||||||
|
// }
|
Loading…
Reference in new issue