Open-USB-Extreme/lib/cabi.d

44 lines
1.4 KiB
D

module cabi;
import std.stdint;
import usbextreme;
extern(C) int is_oue(const(void)* headers, size_t headersLen) {
return isOue(headers[0..headersLen]);
}
extern(C) UsbExtremeVersion get_version(uint8_t usbExtremeVersion) {
return getVersion(usbExtremeVersion);
}
extern(C) int oue_num_headers(int *numHeaders, const(void) *headers, size_t headersLen) {
auto result = oueNumHeaders(headers[0..headersLen]);
*numHeaders = result;
return result;
}
extern(C) int oue_point_headers(const(UsbExtremeBase)** headers, const(void)* rawHeaders, size_t headersLen) {
auto len = headersLen / UsbExtremeBase.sizeof;
const(UsbExtremeBase)[] headersArr = (*headers)[0..len];
return ouePointHeaders(headersArr, rawHeaders[0..headersLen]);
}
extern(C) int oue_version(UsbExtremeVersion* oueVersion, const(void) *headers, size_t headersLen) {
auto result = oueHeadersVersion(headers[0..headersLen]);
if (result == UsbExtremeVersion.Unknown) {
return -1;
}
*oueVersion = result;
return 1;
}
extern(C) int oue_read_headers(UsbExtremeHeaders* headers, const(void)* rawHeaders, size_t headersLen) {
return oueReadHeaders(*headers, rawHeaders[0..headersLen]);
}
extern(C) int oue_read(UsbExtremeFilestat* filestat, const(UsbExtremeHeaders) headers, int filestatsLen) {
auto result = oueRead(filestat[0..filestatsLen], headers);
return cast(int) result.length;
}