4 Commits

Author SHA1 Message Date
Maksim Totmin
489d99c068 Add cover art pipeline (extract/encode/cache) and iTunes-style player
- New src/artwork/ module with iPod Nano 7G cover art support
  - codecs: RGB565/RGB555/UYVY/JPEG encode/decode via numpy
  - presets: 50+ iPod artwork format definitions
  - chunks: ArtworkDB binary parser/writer (MHFD→MHSD→MHLI→MHII→MHNI)
  - writer: ithmb file generation + ArtworkDB assembly
  - extractor: cover extraction from audio files (APIC/covr/FLAC pictures)
  - cache: local JPEG cache for player UI
- iTunes-style playback bar with 60x60 cover art display
- Scan library now caches cover art by artist+album
- iPod Nano7 transfer writes artwork to ArtworkDB + ithmb
- FFmpeg conversion preserves embedded cover art (-map 0:t?)
- One-time reembed_covers.py script in /tmp
- MetadataHandler process_file() fallback to cover_path
- Bug fixes: missing read_existing_artwork import, signed PID in Q format
2026-05-31 17:45:01 +07:00
Maksim Totmin
762e9dffe8 Rewrite device handling: udisksctl mount/unmount, Nano 7 database integration
- Replace libimobiledevice dependency with udisksctl (works without root)
- Detect block devices (/dev/sdX) for iPod partitions
- Add mount_device() using udisksctl mount -b
- Add unmount_device() using udisksctl unmount + power-off
- Update transfer_file() to use Nano7Database.add_track()
- Handle duplicate skips (add_track returns None)
- Fall back to simple file copy if Nano 7 DB unavailable
2026-05-31 14:39:11 +07:00
Maksim Totmin
761f896ea8 Add iPod Nano 7 SQLite database support for proper track transfer
- Create ipod_nano7_db.py module for Nano 7 SQLite DB management (Library.itdb)
- Fix case-insensitive iPod label detection in device detection
- Add /run/media to mount point search paths for Arch Linux
- Support already-mounted devices without requiring ifuse
- Add local file selection in Convert tab (FLAC, WAV, OGG, etc.)
- Transfer now properly registers tracks in iPod database so they appear in UI
2026-05-31 12:07:17 +07:00
Antonio Lorusso
9dcb1228ca initial app 2025-03-12 01:01:43 +01:00