Vendored 5 packages from iOpenPod (TheRealSavi/iOpenPod): iTunesDB_Writer/ — binary iTunesDB generation iTunesDB_Shared/ — field defs, constants, album identity SQLiteDB_Writer/ — SQLite databases for Nano 6G/7G iTunesDB_Parser/ — play stats reading from iPod ipod_device/ — device detection, FireWire ID, capabilities Rationale: iOpenPod is a standalone iPod manager app, not a library. Pulling it as a pip dependency is heavy and confusing for users. Changes: + src/vendor/ — 77 .py files + calcHashAB.wasm (506 KB) ~ ipod_nano7_db.py — _find_iop_root() now returns src/vendor/ ~ requirements.txt — iopenpod replaced with wasmtime + pycryptodome ~ .gitignore — removed iOpenPod/ exclusion (setup.py reads requirements.txt automatically)
22 lines
707 B
Python
22 lines
707 B
Python
"""MHIA (Album Item) field definitions.
|
|
|
|
Declarative :class:`FieldDef` list for the MHIA chunk — an album
|
|
record inside an MHLA (album list).
|
|
"""
|
|
|
|
from .field_base import FieldDef, _u32, _u16, _u64
|
|
|
|
_S = "mhia"
|
|
|
|
MHIA_HEADER_SIZE: int = 88
|
|
|
|
MHIA_FIELDS: list[FieldDef] = [
|
|
_u32("child_count", 0x0C, section_type=_S),
|
|
_u32("album_id", 0x10, section_type=_S, required=True),
|
|
_u64("sql_id", 0x14, section_type=_S),
|
|
_u16("platform_flag", 0x1C, section_type=_S, default=2),
|
|
_u16("album_compilation_flag", 0x1E, section_type=_S),
|
|
# Representative track db_track_id — only populated by some iTunes versions
|
|
_u64("album_track_db_id", 0x20, section_type=_S, min_header_length=0x28),
|
|
]
|