Maksim Totmin 71f35c53cb refactor: vendor iOpenPod core modules instead of pip dependency
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)
2026-06-02 09:16:19 +07:00

19 lines
499 B
Python

"""MHII (Artist Item) field definitions.
Declarative :class:`FieldDef` list for the MHII chunk — an artist
record inside an MHLI (artist list, MHSD type 8).
"""
from .field_base import FieldDef, _u32, _u64
_S = "mhii"
MHII_HEADER_SIZE: int = 80
MHII_FIELDS: list[FieldDef] = [
_u32("child_count", 0x0C, section_type=_S),
_u32("artist_id", 0x10, section_type=_S, required=True),
_u64("sql_id", 0x14, section_type=_S),
_u32("platform_flag", 0x1C, section_type=_S, default=2),
]