Documentation
¶
Index ¶
- Variables
- func ReadObject(r io.Reader, offset int) (int, interface{}, error)
- type Album
- type AlbumInner
- type AlbumList
- type AlbumListInner
- type ApplicationVersion
- type Artist
- type ArtistInner
- type ArtistList
- type ArtistListInner
- type DataObject
- type DataObjectInner
- type DataSet
- type DataSetInner
- type DataSetType
- type DataType
- type Database
- type DatabaseInner
- type HGHM
- type HGHMInner
- type Loader
- type ObjectSignature
- type Playlist
- type PlaylistInner
- type PlaylistItem
- type PlaylistItemInner
- type PlaylistKind
- type PlaylistList
- type PlaylistListInner
- type QueryItem
- type QueryItemInner
- type QueryList
- type QueryListInner
- type ReadableObject
- type Sized
- type SortField
- type StandardObject
- func (o *StandardObject) Buffer() *bytes.Buffer
- func (o *StandardObject) CreateSubObject() ReadableObject
- func (o *StandardObject) GetData() []byte
- func (o *StandardObject) GetOffset() int
- func (o *StandardObject) GetSize() int
- func (o *StandardObject) GetType() string
- func (o *StandardObject) Parse(x interface{}) error
- type Time
- type Track
- type TrackInner
- type TrackList
- type TrackListInner
- type Unhandled
- type UnhandledInner
Constants ¶
This section is empty.
Variables ¶
View Source
var COLUMN_TYPE = map[uint32]string{}
View Source
var DATASET_TYPE = map[uint32]string{}
View Source
var DATA_TYPE = map[uint32]string{}
View Source
var ErrInvalidHeader = errors.New("invalid header")
View Source
var ErrTooBig = errors.New("object bigger than encoded size")
View Source
var ErrUnexpectedObject = errors.New("unexpected object")
View Source
var ErrUnknownVersion = errors.New("unknown file format version")
View Source
var PLAYLIST_KIND_TYPE = map[uint32]string{}
View Source
var SORT_FIELD_TYPE = map[uint32]string{}
View Source
var SPECIAL_SMART_TYPE = map[uint32]string{}
View Source
var UTF16_TYPES = map[uint32]bool{}
Functions ¶
Types ¶
type Album ¶
type Album struct {
*StandardObject
Parsed *AlbumInner
RecordCount int
Sequence int
AlbumID pid.PersistentID
ArtistID pid.PersistentID
AlbumRating int
}
haim
type AlbumInner ¶
type AlbumList ¶
type AlbumList struct {
*StandardObject
Parsed *AlbumListInner
RecordCount int
}
halm
type AlbumListInner ¶
type AlbumListInner struct {
Type ObjectSignature
Size uint32
RecordCount uint32
}
type ApplicationVersion ¶
type ApplicationVersion [31]byte
func (ApplicationVersion) Major ¶
func (o ApplicationVersion) Major() (int, error)
func (ApplicationVersion) MarshalJSON ¶
func (o ApplicationVersion) MarshalJSON() ([]byte, error)
func (ApplicationVersion) String ¶
func (o ApplicationVersion) String() string
type Artist ¶
type Artist struct {
*StandardObject
Parsed *ArtistInner
RecordCount int
Sequence int
ArtistID pid.PersistentID
}
hiim
type ArtistInner ¶
type ArtistList ¶
type ArtistList struct {
*StandardObject
Parsed *ArtistListInner
RecordCount int
}
hilm
func (*ArtistList) Read ¶
func (o *ArtistList) Read() error
type ArtistListInner ¶
type ArtistListInner struct {
Type ObjectSignature
Size uint32
RecordCount uint32
}
type DataObject ¶
type DataObject struct {
*StandardObject
Parsed *DataObjectInner
TypeID DataType
Raw []byte
Str string
}
hohm
func (*DataObject) Read ¶
func (o *DataObject) Read() error
type DataObjectInner ¶
type DataSetInner ¶
type DataSetInner struct {
Type ObjectSignature
Size uint32
RecordBytes uint32
}
type DataSetType ¶
type DataSetType uint32
func (DataSetType) String ¶
func (dst DataSetType) String() string
type Database ¶
type Database struct {
*StandardObject
Parsed *DatabaseInner
PersistentID pid.PersistentID
ApplicationVersion ApplicationVersion
MajorVersion int
MinorVersion int
MaxCryptSize int
TZOffset int
}
hdfm IIB31sIQIBBBBIIIHHIIIIi
type DatabaseInner ¶
type DatabaseInner struct {
Type ObjectSignature // 0
Size uint32 // 4
A [4]byte // 8
B [4]byte // 12
StrLen uint8 // 16
ApplicationVersion ApplicationVersion `json:",string"` // 17
E [4]byte // 48
PersistentID pid.PersistentID `json:",string"` // 52
G [4]byte // 60
H uint8 // 64
MajorVersion uint8 // 65
J uint8 // 66
MinorVersion uint8 // 67
L uint32 // 68
M [4]byte // 72
N [4]byte // 76
O uint16 // 80
P uint16 // 82
Q [4]byte // 84
//DatabaseDate Time `json:",string"`
R uint32 // 88
MaxCryptSize uint32 // 92
T uint32 // 96
TZOffset int32 // 100
}
type HGHM ¶
type HGHM struct {
*StandardObject
Parsed *HGHMInner
RecordCount int
LibraryDate time.Time
}
hghm
type HGHMInner ¶
type HGHMInner struct {
Type ObjectSignature
Size uint32
RecordCount uint32
Unknown1 uint32
LibraryDate Time
}
type Loader ¶
type Loader struct {
*loader.BaseLoader
// contains filtered or unexported fields
}
func (*Loader) Decrypt ¶
func (l *Loader) Decrypt(f io.ReadCloser) (io.ReadCloser, error)
func (*Loader) Load ¶
func (l *Loader) Load(f io.ReadCloser)
type ObjectSignature ¶
type ObjectSignature [4]byte
func (ObjectSignature) GetEndianness ¶
func (v ObjectSignature) GetEndianness() (string, binary.ByteOrder)
func (ObjectSignature) MarshalJSON ¶
func (v ObjectSignature) MarshalJSON() ([]byte, error)
func (ObjectSignature) String ¶
func (v ObjectSignature) String() string
type Playlist ¶
type Playlist struct {
*StandardObject
Parsed *PlaylistInner
RecordCount int
TrackCount int
SortOrderFieldType SortField
DateAdded time.Time
DateModified time.Time
PersistentID pid.PersistentID
ParentPersistentID pid.PersistentID
Folder bool
GeniusTrackID int
DistinguishedKind PlaylistKind `json:",string"`
Master bool
Audiobooks bool
Movies bool
Music bool
Podcasts bool
PurchasedMusic bool
TVShows bool
}
hpim
type PlaylistInner ¶
type PlaylistInner struct {
Type ObjectSignature // 0
Size uint32 // 4
Unknown1 uint32 `json:",omitempty"` // 8
RecordCount uint32 // 12
TrackCount uint32 // 16
Unknown2 uint32 `json:",omitempty"` // 20
SortOrderFieldType SortField // 24
Unknown3 uint16 `json:",omitempty"` // 26
DateAdded Time // 28
Unknown4 [36]uint32 `json:",omitempty"` // 32
Unknown5 [65]uint32 `json:",omitempty"` // 176
Unknown6 uint16 `json:",omitempty"` // 436
Unknown7 uint16 `json:",omitempty"` // 438
PersistentID pid.PersistentID // 440
Unknown8 [18]uint32 `json:",omitempty"` // 448
Unknown9 uint16 `json:",omitempty"` // 520
Folder uint16 // 522
Unknown10 uint32 `json:",omitempty"` // 524
ParentPersistentID pid.PersistentID // 528
Unknown11 [7]uint32 `json:",omitempty"` // 536
PersistentID2 pid.PersistentID // 564
}
type PlaylistItem ¶
type PlaylistItem struct {
*StandardObject
Parsed *PlaylistItemInner
Sequence int
TrackID int
Position int
}
hptm
func (*PlaylistItem) Read ¶
func (o *PlaylistItem) Read() error
type PlaylistItemInner ¶
type PlaylistKind ¶
type PlaylistKind uint32
func (PlaylistKind) String ¶
func (pk PlaylistKind) String() string
type PlaylistList ¶
type PlaylistList struct {
*StandardObject
Parsed *PlaylistListInner
RecordCount int
}
hplm
func (*PlaylistList) Read ¶
func (o *PlaylistList) Read() error
type PlaylistListInner ¶
type PlaylistListInner struct {
Type ObjectSignature
Size uint32
RecordCount uint32
}
type QueryItemInner ¶
type QueryItemInner struct {
Type ObjectSignature
Size uint32
}
type QueryListInner ¶
type QueryListInner struct {
Type ObjectSignature
Size uint32
}
type ReadableObject ¶
type StandardObject ¶
type StandardObject struct {
Type string
Offset int
Preface interface{}
Size int
ByteOrder binary.ByteOrder
Data []byte
}
func NewStandardObject ¶
func (*StandardObject) Buffer ¶
func (o *StandardObject) Buffer() *bytes.Buffer
func (*StandardObject) CreateSubObject ¶
func (o *StandardObject) CreateSubObject() ReadableObject
func (*StandardObject) GetData ¶
func (o *StandardObject) GetData() []byte
func (*StandardObject) GetOffset ¶
func (o *StandardObject) GetOffset() int
func (*StandardObject) GetSize ¶
func (o *StandardObject) GetSize() int
func (*StandardObject) GetType ¶
func (o *StandardObject) GetType() string
func (*StandardObject) Parse ¶
func (o *StandardObject) Parse(x interface{}) error
type Track ¶
type Track struct {
*StandardObject
Parsed *TrackInner
RecordCount int
TrackID int
BlockType int
FileType string
DateModified time.Time
FileSize int
TotalTime int
TrackNumber int
TrackCount int
Year int
BitRate int
SampleRate int
VolumeAdjustment int
StartTime int
StopTime int
PlayCount int
Compilation bool
PlayDate time.Time
DiscNumber int
DiscCount int
Rating int
BPM int
DateAdded time.Time
Disabled bool
PersistentID pid.PersistentID
PurchaseDate time.Time
ReleaseDate time.Time
AlbumSequence int
BackupDate time.Time
SampleCount int
SkipCount int
SkipDate time.Time
}
htim
type TrackInner ¶
type TrackInner struct {
Type ObjectSignature // 0
Size uint32 // 4
SubBytes uint32 // 8
RecordCount uint32 // 12
TrackID uint32 // 16
BlockType uint32 // 20
Unknown1 uint32 // 24
FileType [4]byte // 28
DateModified Time // 32
FileSize uint32 // 36
TotalTime uint32 // 40
TrackNumber uint32 // 44
TrackCount uint32 // 48
Unknown2 uint16 // 52
Year uint16 // 54
Unknown3 uint16 // 56
BitRate uint16 // 58
SampleRate uint16 // 60
Unknown4 uint16 // 62
VolumeAdjustment int32 // 64
StartTime uint32 // 68
StopTime uint32 // 72
PlayCount uint32 // 76
Unknown5 uint16 // 80
Compilation uint16 // 82
Unknown6 [12]byte // 84
Unknown7 uint32 // 96
PlayDate Time // 100
DiscNumber uint16 // 104
DiscCount uint16 // 106
Rating uint8 // 108
BPM uint8 // 109
Unknown8 [10]byte // 110
DateAdded Time // 120
Disabled uint32 // 124
PersistentID pid.PersistentID // 128
Unknown9 uint32 // 136
FileType2 [4]byte // 140
Unknown10 [3]uint32 // 144
PurchaseDate Time // 156
ReleaseDate Time // 39 // 160
Unknown11 [13]uint32 // 164
Protected uint32 // 216
AlbumSequence uint32 // 220
BackupDate Time // 224
Unknown12 [5]uint32 // 228
SampleCount uint32 // 248
}
type TrackList ¶
type TrackList struct {
*StandardObject
Parsed *TrackListInner
RecordCount int
}
htlm
type TrackListInner ¶
type TrackListInner struct {
Type ObjectSignature
Size uint32
RecordCount uint32
}
type UnhandledInner ¶
type UnhandledInner struct {
Type ObjectSignature
Size uint32
}
Click to show internal directories.
Click to hide internal directories.