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:
@@ -599,6 +599,10 @@ impl SectorReader for Drive {
|
||||
) -> Result<usize> {
|
||||
self.read(lba, count, buf, recovery)
|
||||
}
|
||||
|
||||
fn set_speed(&mut self, kbs: u16) {
|
||||
Drive::set_speed(self, kbs);
|
||||
}
|
||||
}
|
||||
|
||||
/// Find the first optical drive on this system and open it.
|
||||
|
||||
Reference in New Issue
Block a user