This commit is contained in:
tux
2026-11-04 08:32:00 +01:00
parent 8012e912ec
commit 2d50b0fbea
16 changed files with 1542 additions and 215 deletions
+16 -1
View File
@@ -133,9 +133,11 @@ impl Drive for CAbiDrive {
fn read_timed(&mut self, buffer: Option<&mut [u8]>, begin: i64, sectors: i64) -> TimedRead {
let started = Instant::now();
let result = self.read_audio(buffer, begin, sectors);
let elapsed = started.elapsed();
TimedRead {
result,
milliseconds: started.elapsed().as_millis() as i32,
milliseconds: ((elapsed.as_micros() + 500) / 1000) as i32,
microseconds: elapsed.as_micros() as i64,
}
}
fn speed_set(&mut self, speed: i32) -> i32 {
@@ -177,6 +179,13 @@ impl Drive for CAbiDrive {
}
}
}
fn set_error_retry(&mut self, enabled: bool) {
unsafe {
if !self.d.is_null() {
(*self.d).error_retry = enabled as c_int;
}
}
}
fn interface(&self) -> InterfaceKind {
self.interface
}
@@ -302,6 +311,12 @@ mod tests {
use cdrustanoia_core::device::samples_to_bytes;
use cdrustanoia_core::device::CD_FRAMEWORDS;
#[test]
fn c_abi_version_stays_cdparanoia_compatible() {
let version = unsafe { std::ffi::CStr::from_ptr(paranoia_version()) };
assert_eq!(version.to_str().unwrap(), "10.2");
}
#[test]
fn c_api_query_and_read() {
unsafe {