Documentation
¶
Overview ¶
Copyright 2013 Michael Yang. All rights reserved. Use of this source code is governed by a MIT-style license that can be found in the LICENSE file.
Copyright 2013 Michael Yang. All rights reserved. Use of this source code is governed by a MIT-style license that can be found in the LICENSE file.
Copyright 2013 Michael Yang. All rights reserved. Use of this source code is governed by a MIT-style license that can be found in the LICENSE file.
Copyright 2013 Michael Yang. All rights reserved. Use of this source code is governed by a MIT-style license that can be found in the LICENSE file.
Copyright 2013 Michael Yang. All rights reserved. Use of this source code is governed by a MIT-style license that can be found in the LICENSE file.
Index ¶
- Constants
- Variables
- func V22Bytes(f Framer) []byte
- func V23Bytes(f Framer) []byte
- type DataFrame
- type DescTextFrame
- type FrameHead
- type FrameType
- type Framer
- func ParseDataFrame(head FrameHead, data []byte) Framer
- func ParseDescTextFrame(head FrameHead, data []byte) Framer
- func ParseIdFrame(head FrameHead, data []byte) Framer
- func ParseImageFrame(head FrameHead, data []byte) Framer
- func ParseTextFrame(head FrameHead, data []byte) Framer
- func ParseUnsynchTextFrame(head FrameHead, data []byte) Framer
- func ParseV22Frame(reader io.Reader) Framer
- func ParseV23Frame(reader io.Reader) Framer
- type Header
- type IdFrame
- type ImageFrame
- type Tag
- func (t *Tag) AddFrames(frames ...Framer)
- func (t Tag) Album() string
- func (t Tag) AllFrames() []Framer
- func (t Tag) Artist() string
- func (t Tag) Bytes() []byte
- func (t Tag) Comments() []string
- func (t *Tag) DeleteFrames(id string) []Framer
- func (t Tag) Dirty() bool
- func (t Tag) Frame(id string) Framer
- func (t Tag) Frames(id string) []Framer
- func (t Tag) Genre() string
- func (t Tag) Padding() uint
- func (t Tag) RealSize() int
- func (t *Tag) SetAlbum(text string)
- func (t *Tag) SetArtist(text string)
- func (t *Tag) SetGenre(text string)
- func (t *Tag) SetTitle(text string)
- func (t *Tag) SetYear(text string)
- func (t Tag) Title() string
- func (t Tag) Year() string
- type TextFrame
- type TextFramer
- type UnsynchTextFrame
Constants ¶
const (
FrameHeaderSize = 10
)
const (
HeaderSize = 10
)
const (
V22FrameHeaderSize = 6
)
Variables ¶
var ( // Common frame IDs V22CommonFrame = map[string]FrameType{ "Title": V22FrameTypeMap["TT2"], "Artist": V22FrameTypeMap["TP1"], "Album": V22FrameTypeMap["TAL"], "Year": V22FrameTypeMap["TYE"], "Genre": V22FrameTypeMap["TCO"], "Comments": V22FrameTypeMap["COM"], } // V22FrameTypeMap specifies the frame IDs and constructors allowed in ID3v2.2 V22FrameTypeMap = map[string]FrameType{ "BUF": FrameType{/* contains filtered or unexported fields */}, "CNT": FrameType{/* contains filtered or unexported fields */}, "COM": FrameType{/* contains filtered or unexported fields */}, "CRA": FrameType{/* contains filtered or unexported fields */}, "CRM": FrameType{/* contains filtered or unexported fields */}, "ETC": FrameType{/* contains filtered or unexported fields */}, "EQU": FrameType{/* contains filtered or unexported fields */}, "GEO": FrameType{/* contains filtered or unexported fields */}, "IPL": FrameType{/* contains filtered or unexported fields */}, "LNK": FrameType{/* contains filtered or unexported fields */}, "MCI": FrameType{/* contains filtered or unexported fields */}, "MLL": FrameType{/* contains filtered or unexported fields */}, "PIC": FrameType{/* contains filtered or unexported fields */}, "POP": FrameType{/* contains filtered or unexported fields */}, "REV": FrameType{/* contains filtered or unexported fields */}, "RVA": FrameType{/* contains filtered or unexported fields */}, "SLT": FrameType{/* contains filtered or unexported fields */}, "STC": FrameType{/* contains filtered or unexported fields */}, "TAL": FrameType{/* contains filtered or unexported fields */}, "TBP": FrameType{/* contains filtered or unexported fields */}, "TCM": FrameType{/* contains filtered or unexported fields */}, "TCO": FrameType{/* contains filtered or unexported fields */}, "TCR": FrameType{/* contains filtered or unexported fields */}, "TDA": FrameType{/* contains filtered or unexported fields */}, "TDRC": FrameType{/* contains filtered or unexported fields */}, "TDY": FrameType{/* contains filtered or unexported fields */}, "TEN": FrameType{/* contains filtered or unexported fields */}, "TFT": FrameType{/* contains filtered or unexported fields */}, "TIM": FrameType{/* contains filtered or unexported fields */}, "TKE": FrameType{/* contains filtered or unexported fields */}, "TLA": FrameType{/* contains filtered or unexported fields */}, "TLE": FrameType{/* contains filtered or unexported fields */}, "TMT": FrameType{/* contains filtered or unexported fields */}, "TOA": FrameType{/* contains filtered or unexported fields */}, "TOF": FrameType{/* contains filtered or unexported fields */}, "TOL": FrameType{/* contains filtered or unexported fields */}, "TOR": FrameType{/* contains filtered or unexported fields */}, "TOT": FrameType{/* contains filtered or unexported fields */}, "TP1": FrameType{/* contains filtered or unexported fields */}, "TP2": FrameType{/* contains filtered or unexported fields */}, "TP3": FrameType{/* contains filtered or unexported fields */}, "TP4": FrameType{/* contains filtered or unexported fields */}, "TPA": FrameType{/* contains filtered or unexported fields */}, "TPB": FrameType{/* contains filtered or unexported fields */}, "TRC": FrameType{/* contains filtered or unexported fields */}, "TRD": FrameType{/* contains filtered or unexported fields */}, "TRK": FrameType{/* contains filtered or unexported fields */}, "TSI": FrameType{/* contains filtered or unexported fields */}, "TSS": FrameType{/* contains filtered or unexported fields */}, "TT1": FrameType{/* contains filtered or unexported fields */}, "TT2": FrameType{/* contains filtered or unexported fields */}, "TT3": FrameType{/* contains filtered or unexported fields */}, "TXT": FrameType{/* contains filtered or unexported fields */}, "TXX": FrameType{/* contains filtered or unexported fields */}, "TYE": FrameType{/* contains filtered or unexported fields */}, "UFI": FrameType{/* contains filtered or unexported fields */}, "ULT": FrameType{/* contains filtered or unexported fields */}, "WAF": FrameType{/* contains filtered or unexported fields */}, "WAR": FrameType{/* contains filtered or unexported fields */}, "WAS": FrameType{/* contains filtered or unexported fields */}, "WCM": FrameType{/* contains filtered or unexported fields */}, "WCP": FrameType{/* contains filtered or unexported fields */}, "WPB": FrameType{/* contains filtered or unexported fields */}, "WXX": FrameType{/* contains filtered or unexported fields */}, } )
var ( // Common frame IDs V23CommonFrame = map[string]FrameType{ "Title": V23FrameTypeMap["TIT2"], "Artist": V23FrameTypeMap["TPE1"], "Album": V23FrameTypeMap["TALB"], "Year": V23FrameTypeMap["TYER"], "Genre": V23FrameTypeMap["TCON"], "Comments": V23FrameTypeMap["COMM"], } // V23DeprecatedTypeMap contains deprecated frame IDs from ID3v2.2 V23DeprecatedTypeMap = map[string]string{ "BUF": "RBUF", "COM": "COMM", "CRA": "AENC", "EQU": "EQUA", "ETC": "ETCO", "GEO": "GEOB", "MCI": "MCDI", "MLL": "MLLT", "PIC": "APIC", "POP": "POPM", "REV": "RVRB", "RVA": "RVAD", "SLT": "SYLT", "STC": "SYTC", "TAL": "TALB", "TBP": "TBPM", "TCM": "TCOM", "TCO": "TCON", "TCR": "TCOP", "TDA": "TDAT", "TDY": "TDLY", "TEN": "TENC", "TFT": "TFLT", "TIM": "TIME", "TKE": "TKEY", "TLA": "TLAN", "TLE": "TLEN", "TMT": "TMED", "TOA": "TOPE", "TOF": "TOFN", "TOL": "TOLY", "TOR": "TORY", "TOT": "TOAL", "TP1": "TPE1", "TP2": "TPE2", "TP3": "TPE3", "TP4": "TPE4", "TPA": "TPOS", "TPB": "TPUB", "TRC": "TSRC", "TRD": "TRDA", "TRK": "TRCK", "TSI": "TSIZ", "TSS": "TSSE", "TT1": "TIT1", "TT2": "TIT2", "TT3": "TIT3", "TXT": "TEXT", "TXX": "TXXX", "TYE": "TYER", "UFI": "UFID", "ULT": "USLT", "WAF": "WOAF", "WAR": "WOAR", "WAS": "WOAS", "WCM": "WCOM", "WCP": "WCOP", "WPB": "WPB", "WXX": "WXXX", } // V23FrameTypeMap specifies the frame IDs and constructors allowed in ID3v2.3 V23FrameTypeMap = map[string]FrameType{ "AENC": FrameType{/* contains filtered or unexported fields */}, "APIC": FrameType{/* contains filtered or unexported fields */}, "COMM": FrameType{/* contains filtered or unexported fields */}, "COMR": FrameType{/* contains filtered or unexported fields */}, "ENCR": FrameType{/* contains filtered or unexported fields */}, "EQUA": FrameType{/* contains filtered or unexported fields */}, "ETCO": FrameType{/* contains filtered or unexported fields */}, "GEOB": FrameType{/* contains filtered or unexported fields */}, "GRID": FrameType{/* contains filtered or unexported fields */}, "IPLS": FrameType{/* contains filtered or unexported fields */}, "LINK": FrameType{/* contains filtered or unexported fields */}, "MCDI": FrameType{/* contains filtered or unexported fields */}, "MLLT": FrameType{/* contains filtered or unexported fields */}, "OWNE": FrameType{/* contains filtered or unexported fields */}, "PRIV": FrameType{/* contains filtered or unexported fields */}, "PCNT": FrameType{/* contains filtered or unexported fields */}, "POPM": FrameType{/* contains filtered or unexported fields */}, "POSS": FrameType{/* contains filtered or unexported fields */}, "RBUF": FrameType{/* contains filtered or unexported fields */}, "RVAD": FrameType{/* contains filtered or unexported fields */}, "RVRB": FrameType{/* contains filtered or unexported fields */}, "SYLT": FrameType{/* contains filtered or unexported fields */}, "SYTC": FrameType{/* contains filtered or unexported fields */}, "TALB": FrameType{/* contains filtered or unexported fields */}, "TBPM": FrameType{/* contains filtered or unexported fields */}, "TCOM": FrameType{/* contains filtered or unexported fields */}, "TCON": FrameType{/* contains filtered or unexported fields */}, "TCOP": FrameType{/* contains filtered or unexported fields */}, "TDAT": FrameType{/* contains filtered or unexported fields */}, "TDLY": FrameType{/* contains filtered or unexported fields */}, "TENC": FrameType{/* contains filtered or unexported fields */}, "TEXT": FrameType{/* contains filtered or unexported fields */}, "TFLT": FrameType{/* contains filtered or unexported fields */}, "TIME": FrameType{/* contains filtered or unexported fields */}, "TIT1": FrameType{/* contains filtered or unexported fields */}, "TIT2": FrameType{/* contains filtered or unexported fields */}, "TIT3": FrameType{/* contains filtered or unexported fields */}, "TKEY": FrameType{/* contains filtered or unexported fields */}, "TLAN": FrameType{/* contains filtered or unexported fields */}, "TLEN": FrameType{/* contains filtered or unexported fields */}, "TMED": FrameType{/* contains filtered or unexported fields */}, "TOAL": FrameType{/* contains filtered or unexported fields */}, "TOFN": FrameType{/* contains filtered or unexported fields */}, "TOLY": FrameType{/* contains filtered or unexported fields */}, "TOPE": FrameType{/* contains filtered or unexported fields */}, "TORY": FrameType{/* contains filtered or unexported fields */}, "TOWN": FrameType{/* contains filtered or unexported fields */}, "TPE1": FrameType{/* contains filtered or unexported fields */}, "TPE2": FrameType{/* contains filtered or unexported fields */}, "TPE3": FrameType{/* contains filtered or unexported fields */}, "TPE4": FrameType{/* contains filtered or unexported fields */}, "TPOS": FrameType{/* contains filtered or unexported fields */}, "TPUB": FrameType{/* contains filtered or unexported fields */}, "TRCK": FrameType{/* contains filtered or unexported fields */}, "TRDA": FrameType{/* contains filtered or unexported fields */}, "TRSN": FrameType{/* contains filtered or unexported fields */}, "TRSO": FrameType{/* contains filtered or unexported fields */}, "TSIZ": FrameType{/* contains filtered or unexported fields */}, "TSRC": FrameType{/* contains filtered or unexported fields */}, "TSSE": FrameType{/* contains filtered or unexported fields */}, "TYER": FrameType{/* contains filtered or unexported fields */}, "TXXX": FrameType{/* contains filtered or unexported fields */}, "UFID": FrameType{/* contains filtered or unexported fields */}, "USER": FrameType{/* contains filtered or unexported fields */}, "TCMP": FrameType{/* contains filtered or unexported fields */}, "USLT": FrameType{/* contains filtered or unexported fields */}, "WCOM": FrameType{/* contains filtered or unexported fields */}, "WCOP": FrameType{/* contains filtered or unexported fields */}, "WOAF": FrameType{/* contains filtered or unexported fields */}, "WOAR": FrameType{/* contains filtered or unexported fields */}, "WOAS": FrameType{/* contains filtered or unexported fields */}, "WORS": FrameType{/* contains filtered or unexported fields */}, "WPAY": FrameType{/* contains filtered or unexported fields */}, "WPUB": FrameType{/* contains filtered or unexported fields */}, "WXXX": FrameType{/* contains filtered or unexported fields */}, } )
Functions ¶
Types ¶
type DataFrame ¶
type DataFrame struct { FrameHead // contains filtered or unexported fields }
DataFrame is the default frame for binary data
func NewDataFrame ¶
type DescTextFrame ¶
type DescTextFrame struct { TextFrame // contains filtered or unexported fields }
func NewDescTextFrame ¶
func NewDescTextFrame(ft FrameType, desc, text string) *DescTextFrame
func (DescTextFrame) Bytes ¶
func (f DescTextFrame) Bytes() []byte
func (DescTextFrame) Description ¶
func (f DescTextFrame) Description() string
func (*DescTextFrame) SetDescription ¶
func (f *DescTextFrame) SetDescription(description string) error
func (*DescTextFrame) SetEncoding ¶
func (f *DescTextFrame) SetEncoding(encoding string) error
func (DescTextFrame) String ¶
func (f DescTextFrame) String() string
type FrameHead ¶
type FrameHead struct { FrameType // contains filtered or unexported fields }
FrameHead represents the header of each frame Additional metadata is kept through the embedded frame type These do not usually need to be manually created
func (FrameHead) FormatFlags ¶
func (FrameHead) StatusFlags ¶
type FrameType ¶
type FrameType struct {
// contains filtered or unexported fields
}
FrameType holds frame id metadata and constructor method A set number of these are created in the version specific files
type Framer ¶
type Framer interface { Id() string Size() uint StatusFlags() byte FormatFlags() byte String() string Bytes() []byte // contains filtered or unexported methods }
Framer provides a generic interface for frames This is the default type returned when creating frames
func ParseDataFrame ¶
func ParseDescTextFrame ¶
DescTextFrame represents frames that contain encoded text and descriptions
func ParseIdFrame ¶
func ParseImageFrame ¶
func ParseTextFrame ¶
func ParseUnsynchTextFrame ¶
func ParseV22Frame ¶
func ParseV23Frame ¶
type Header ¶
type Header struct {
// contains filtered or unexported fields
}
Header represents the data of the header of the entire tag
func ParseHeader ¶
type IdFrame ¶
type IdFrame struct { FrameHead // contains filtered or unexported fields }
IdFrame represents identification tags
func (IdFrame) Identifier ¶
func (IdFrame) OwnerIdentifier ¶
func (*IdFrame) SetIdentifier ¶
func (*IdFrame) SetOwnerIdentifier ¶
type ImageFrame ¶
type ImageFrame struct { DataFrame // contains filtered or unexported fields }
ImageFrame represent frames that have media attached
func (ImageFrame) Bytes ¶
func (f ImageFrame) Bytes() []byte
func (ImageFrame) Encoding ¶
func (f ImageFrame) Encoding() string
func (ImageFrame) MIMEType ¶
func (f ImageFrame) MIMEType() string
func (*ImageFrame) SetEncoding ¶
func (f *ImageFrame) SetEncoding(encoding string) error
func (*ImageFrame) SetMIMEType ¶
func (f *ImageFrame) SetMIMEType(mimeType string)
func (ImageFrame) String ¶
func (f ImageFrame) String() string
type Tag ¶
type Tag struct { *Header // contains filtered or unexported fields }
Tag represents an ID3v2 tag
func (*Tag) DeleteFrames ¶
Delete and return all frames with specified ID
type TextFrame ¶
type TextFrame struct { FrameHead // contains filtered or unexported fields }
TextFrame represents frames that contain encoded text
func NewTextFrame ¶
func (*TextFrame) SetEncoding ¶
type TextFramer ¶
type TextFramer interface { Framer Encoding() string SetEncoding(string) error Text() string SetText(string) error }
TextFramer represents frames that contain encoded text
type UnsynchTextFrame ¶
type UnsynchTextFrame struct { DescTextFrame // contains filtered or unexported fields }
UnsynchTextFrame represents frames that contain unsynchronized text
func NewUnsynchTextFrame ¶
func NewUnsynchTextFrame(ft FrameType, desc, text string) *UnsynchTextFrame
func (UnsynchTextFrame) Bytes ¶
func (f UnsynchTextFrame) Bytes() []byte
func (UnsynchTextFrame) Language ¶
func (f UnsynchTextFrame) Language() string
func (*UnsynchTextFrame) SetLanguage ¶
func (f *UnsynchTextFrame) SetLanguage(language string) error
func (UnsynchTextFrame) String ¶
func (f UnsynchTextFrame) String() string