The scan never treated an .iso as audio; images only entered the library through Open > disc image. Each root's scan now walks its .iso files, asks qbz_disc::sacd::is_sacd_image for the SACDMTOC signature (PVD plus Master TOC sector, four 2 KB reads at most, no directory parsing) so a DVD or data ISO leaves silently, skips images already imported with the same size and mtime without any I/O, and adopts the rest through the generation-based import. The row builder moved from sacd_qt into qbz_library::sacd_scan and the manual open is now its client, with the translated fallback labels. Parser and import rejections are scan errors. cc
45 lines
987 B
TOML
45 lines
987 B
TOML
[package]
|
|
name = "qbz-library"
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
description = "Local music library management for QBZ - scanning, indexing, metadata extraction"
|
|
authors = ["blitzkriegfc"]
|
|
|
|
[dependencies]
|
|
# Logging
|
|
log = "0.4"
|
|
|
|
# Serialization
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = "1"
|
|
|
|
# Error handling
|
|
thiserror = "2"
|
|
|
|
# Database
|
|
rusqlite = { version = "0.40", features = ["bundled"] }
|
|
|
|
# Filesystem
|
|
walkdir = "2"
|
|
notify = "8"
|
|
dirs = "6"
|
|
|
|
# Audio metadata
|
|
lofty.workspace = true
|
|
qbz-dsd = { path = "../qbz-dsd" }
|
|
# SACD images found by the folder scan: signature sniff + Scarlet Book TOC
|
|
# parse + the disc memory (sacd_scan.rs). qbz-disc depends on nothing here.
|
|
qbz-disc = { path = "../qbz-disc" }
|
|
|
|
# Image processing (thumbnails)
|
|
image = { version = "0.25", default-features = false, features = ["png", "jpeg", "webp"] }
|
|
|
|
# File system utilities
|
|
glob = "0.3"
|
|
|
|
# UUID generation
|
|
uuid = { version = "1", features = ["v4"] }
|
|
|
|
[dev-dependencies]
|
|
tempfile = "3"
|