v0.15.0: multipass CopyOptions, auto-detect sweep vs patch, speed control on damage zone entry/exit
- CopyOptions: replace resume/skip_on_error/batch_sectors with single multipass bool - Disc::copy() auto-detects pass from mapfile state: no mapfile or NonTried → sweep, only NonTrimmed/Unreadable → patch - Fix bug where mapfile with NonTried regions incorrectly dispatched to patch mode - SectorReader::set_speed() default method, Drive impl sends SET CD SPEED - On damage zone entry: set_speed(0x0000) for better error recovery - On damage zone exit (50 consecutive good): set_speed(0xFFFF) to restore max speed - Disc::mapfile_for() returns /tmp/<name>.mapfile for null:// output - patch_internal/sweep_internal as private helpers, CopyResult gains recovered_this_pass
This commit is contained in:
@@ -438,7 +438,7 @@ fn test_disc_copy_completes_full_disc_with_failing_reader() {
|
||||
|
||||
let opts = CopyOptions {
|
||||
decrypt: false,
|
||||
skip_on_error: true,
|
||||
multipass: true,
|
||||
|
||||
..Default::default()
|
||||
};
|
||||
@@ -518,7 +518,7 @@ fn test_disc_copy_halts_promptly_on_failing_reader() {
|
||||
|
||||
let opts = CopyOptions {
|
||||
decrypt: false,
|
||||
skip_on_error: true,
|
||||
multipass: true,
|
||||
|
||||
halt: Some(halt),
|
||||
..Default::default()
|
||||
@@ -606,7 +606,7 @@ fn test_disc_copy_marks_failed_ecc_blocks_as_nontrimmed() {
|
||||
|
||||
let opts = CopyOptions {
|
||||
decrypt: false,
|
||||
skip_on_error: true,
|
||||
multipass: true,
|
||||
|
||||
..Default::default()
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user