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; }