/* automatically generated by rust-bindgen 0.72.1 */

#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ZXing_Barcode {
	_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ZXing_Barcodes {
	_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ZXing_ImageView {
	_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ZXing_Image {
	_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ZXing_ReaderOptions {
	_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ZXing_CreatorOptions {
	_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ZXing_WriterOptions {
	_unused: [u8; 0],
}
pub const ZXing_ImageFormat_None: ZXing_ImageFormat = 0x0000;
pub const ZXing_ImageFormat_Lum: ZXing_ImageFormat = 0x1000000;
pub const ZXing_ImageFormat_LumA: ZXing_ImageFormat = 0x2000000;
pub const ZXing_ImageFormat_RGB: ZXing_ImageFormat = 0x3000102;
pub const ZXing_ImageFormat_BGR: ZXing_ImageFormat = 0x3020100;
pub const ZXing_ImageFormat_RGBA: ZXing_ImageFormat = 0x4000102;
pub const ZXing_ImageFormat_ARGB: ZXing_ImageFormat = 0x4010203;
pub const ZXing_ImageFormat_BGRA: ZXing_ImageFormat = 0x4020100;
pub const ZXing_ImageFormat_ABGR: ZXing_ImageFormat = 0x4030201;
pub type ZXing_ImageFormat = ::core::ffi::c_uint;
pub const ZXing_BarcodeFormat_Invalid: ZXing_BarcodeFormat = 0xFFFF;
pub const ZXing_BarcodeFormat_None: ZXing_BarcodeFormat = 0x0000;
pub const ZXing_BarcodeFormat_All: ZXing_BarcodeFormat = 0x2A2A;
pub const ZXing_BarcodeFormat_AllReadable: ZXing_BarcodeFormat = 0x722A;
pub const ZXing_BarcodeFormat_AllCreatable: ZXing_BarcodeFormat = 0x772A;
pub const ZXing_BarcodeFormat_AllLinear: ZXing_BarcodeFormat = 0x6C2A;
pub const ZXing_BarcodeFormat_AllMatrix: ZXing_BarcodeFormat = 0x6D2A;
pub const ZXing_BarcodeFormat_AllGS1: ZXing_BarcodeFormat = 0x472A;
pub const ZXing_BarcodeFormat_AllRetail: ZXing_BarcodeFormat = 0x522A;
pub const ZXing_BarcodeFormat_AllIndustrial: ZXing_BarcodeFormat = 0x492A;
pub const ZXing_BarcodeFormat_Codabar: ZXing_BarcodeFormat = 0x2046;
pub const ZXing_BarcodeFormat_Code39: ZXing_BarcodeFormat = 0x2041;
pub const ZXing_BarcodeFormat_Code39Std: ZXing_BarcodeFormat = 0x7341;
pub const ZXing_BarcodeFormat_Code39Ext: ZXing_BarcodeFormat = 0x6541;
pub const ZXing_BarcodeFormat_Code32: ZXing_BarcodeFormat = 0x3241;
pub const ZXing_BarcodeFormat_PZN: ZXing_BarcodeFormat = 0x7041;
pub const ZXing_BarcodeFormat_Code93: ZXing_BarcodeFormat = 0x2047;
pub const ZXing_BarcodeFormat_Code128: ZXing_BarcodeFormat = 0x2043;
pub const ZXing_BarcodeFormat_ITF: ZXing_BarcodeFormat = 0x2049;
pub const ZXing_BarcodeFormat_ITF14: ZXing_BarcodeFormat = 0x3449;
pub const ZXing_BarcodeFormat_DataBar: ZXing_BarcodeFormat = 0x2065;
pub const ZXing_BarcodeFormat_DataBarOmni: ZXing_BarcodeFormat = 0x6F65;
pub const ZXing_BarcodeFormat_DataBarStk: ZXing_BarcodeFormat = 0x7365;
pub const ZXing_BarcodeFormat_DataBarStkOmni: ZXing_BarcodeFormat = 0x4F65;
pub const ZXing_BarcodeFormat_DataBarLtd: ZXing_BarcodeFormat = 0x6C65;
pub const ZXing_BarcodeFormat_DataBarExp: ZXing_BarcodeFormat = 0x6565;
pub const ZXing_BarcodeFormat_DataBarExpStk: ZXing_BarcodeFormat = 0x4565;
pub const ZXing_BarcodeFormat_EANUPC: ZXing_BarcodeFormat = 0x2045;
pub const ZXing_BarcodeFormat_EAN13: ZXing_BarcodeFormat = 0x3145;
pub const ZXing_BarcodeFormat_EAN8: ZXing_BarcodeFormat = 0x3845;
pub const ZXing_BarcodeFormat_EAN5: ZXing_BarcodeFormat = 0x3545;
pub const ZXing_BarcodeFormat_EAN2: ZXing_BarcodeFormat = 0x3245;
pub const ZXing_BarcodeFormat_ISBN: ZXing_BarcodeFormat = 0x6945;
pub const ZXing_BarcodeFormat_UPCA: ZXing_BarcodeFormat = 0x6145;
pub const ZXing_BarcodeFormat_UPCE: ZXing_BarcodeFormat = 0x6545;
pub const ZXing_BarcodeFormat_Telepen: ZXing_BarcodeFormat = 0x2042;
pub const ZXing_BarcodeFormat_TelepenAlpha: ZXing_BarcodeFormat = 0x3042;
pub const ZXing_BarcodeFormat_TelepenNumeric: ZXing_BarcodeFormat = 0x3142;
pub const ZXing_BarcodeFormat_OtherBarcode: ZXing_BarcodeFormat = 0x2058;
pub const ZXing_BarcodeFormat_DXFilmEdge: ZXing_BarcodeFormat = 0x7858;
pub const ZXing_BarcodeFormat_PDF417: ZXing_BarcodeFormat = 0x204C;
pub const ZXing_BarcodeFormat_CompactPDF417: ZXing_BarcodeFormat = 0x634C;
pub const ZXing_BarcodeFormat_MicroPDF417: ZXing_BarcodeFormat = 0x6D4C;
pub const ZXing_BarcodeFormat_Aztec: ZXing_BarcodeFormat = 0x207A;
pub const ZXing_BarcodeFormat_AztecCode: ZXing_BarcodeFormat = 0x637A;
pub const ZXing_BarcodeFormat_AztecRune: ZXing_BarcodeFormat = 0x727A;
pub const ZXing_BarcodeFormat_QRCode: ZXing_BarcodeFormat = 0x2051;
pub const ZXing_BarcodeFormat_QRCodeModel1: ZXing_BarcodeFormat = 0x3151;
pub const ZXing_BarcodeFormat_QRCodeModel2: ZXing_BarcodeFormat = 0x3251;
pub const ZXing_BarcodeFormat_MicroQRCode: ZXing_BarcodeFormat = 0x6D51;
pub const ZXing_BarcodeFormat_RMQRCode: ZXing_BarcodeFormat = 0x7251;
pub const ZXing_BarcodeFormat_DataMatrix: ZXing_BarcodeFormat = 0x2064;
pub const ZXing_BarcodeFormat_MaxiCode: ZXing_BarcodeFormat = 0x2055;
pub type ZXing_BarcodeFormat = ::core::ffi::c_uint;
pub const ZXing_ContentType_Text: ZXing_ContentType = 0;
pub const ZXing_ContentType_Binary: ZXing_ContentType = 1;
pub const ZXing_ContentType_Mixed: ZXing_ContentType = 2;
pub const ZXing_ContentType_GS1: ZXing_ContentType = 3;
pub const ZXing_ContentType_ISO15434: ZXing_ContentType = 4;
pub const ZXing_ContentType_UnknownECI: ZXing_ContentType = 5;
pub type ZXing_ContentType = ::core::ffi::c_uint;
pub const ZXing_ErrorType_None: ZXing_ErrorType = 0;
pub const ZXing_ErrorType_Format: ZXing_ErrorType = 1;
pub const ZXing_ErrorType_Checksum: ZXing_ErrorType = 2;
pub const ZXing_ErrorType_Unsupported: ZXing_ErrorType = 3;
pub type ZXing_ErrorType = ::core::ffi::c_uint;
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq)]
pub struct ZXing_PointI {
	pub x: ::core::ffi::c_int,
	pub y: ::core::ffi::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq)]
pub struct ZXing_Position {
	pub topLeft: ZXing_PointI,
	pub topRight: ZXing_PointI,
	pub bottomRight: ZXing_PointI,
	pub bottomLeft: ZXing_PointI,
}
pub const ZXing_Binarizer_LocalAverage: ZXing_Binarizer = 0;
pub const ZXing_Binarizer_GlobalHistogram: ZXing_Binarizer = 1;
pub const ZXing_Binarizer_FixedThreshold: ZXing_Binarizer = 2;
pub const ZXing_Binarizer_BoolCast: ZXing_Binarizer = 3;
pub type ZXing_Binarizer = ::core::ffi::c_uint;
pub const ZXing_EanAddOnSymbol_Ignore: ZXing_EanAddOnSymbol = 0;
pub const ZXing_EanAddOnSymbol_Read: ZXing_EanAddOnSymbol = 1;
pub const ZXing_EanAddOnSymbol_Require: ZXing_EanAddOnSymbol = 2;
pub type ZXing_EanAddOnSymbol = ::core::ffi::c_uint;
pub const ZXing_TextMode_Plain: ZXing_TextMode = 0;
pub const ZXing_TextMode_ECI: ZXing_TextMode = 1;
pub const ZXing_TextMode_HRI: ZXing_TextMode = 2;
pub const ZXing_TextMode_Escaped: ZXing_TextMode = 3;
pub const ZXing_TextMode_Hex: ZXing_TextMode = 4;
pub const ZXing_TextMode_HexECI: ZXing_TextMode = 5;
pub type ZXing_TextMode = ::core::ffi::c_uint;
unsafe extern "C" {
	pub fn ZXing_ImageView_new(
		data: *const u8,
		width: ::core::ffi::c_int,
		height: ::core::ffi::c_int,
		format: ZXing_ImageFormat,
		rowStride: ::core::ffi::c_int,
		pixStride: ::core::ffi::c_int,
	) -> *mut ZXing_ImageView;
	pub fn ZXing_ImageView_new_checked(
		data: *const u8,
		size: ::core::ffi::c_int,
		width: ::core::ffi::c_int,
		height: ::core::ffi::c_int,
		format: ZXing_ImageFormat,
		rowStride: ::core::ffi::c_int,
		pixStride: ::core::ffi::c_int,
	) -> *mut ZXing_ImageView;
	pub fn ZXing_ImageView_delete(iv: *mut ZXing_ImageView);
	pub fn ZXing_ImageView_crop(
		iv: *mut ZXing_ImageView,
		left: ::core::ffi::c_int,
		top: ::core::ffi::c_int,
		width: ::core::ffi::c_int,
		height: ::core::ffi::c_int,
	);
	pub fn ZXing_ImageView_rotate(iv: *mut ZXing_ImageView, degree: ::core::ffi::c_int);
	pub fn ZXing_Image_delete(img: *mut ZXing_Image);
	pub fn ZXing_Image_data(img: *const ZXing_Image) -> *const u8;
	pub fn ZXing_Image_width(img: *const ZXing_Image) -> ::core::ffi::c_int;
	pub fn ZXing_Image_height(img: *const ZXing_Image) -> ::core::ffi::c_int;
	pub fn ZXing_Image_format(img: *const ZXing_Image) -> ZXing_ImageFormat;
	pub fn ZXing_BarcodeFormatSymbology(format: ZXing_BarcodeFormat) -> ZXing_BarcodeFormat;
	pub fn ZXing_BarcodeFormatFromString(str_: *const ::core::ffi::c_char) -> ZXing_BarcodeFormat;
	pub fn ZXing_BarcodeFormatToString(format: ZXing_BarcodeFormat) -> *mut ::core::ffi::c_char;
	pub fn ZXing_BarcodeFormatsList(filter: ZXing_BarcodeFormat, outCount: *mut ::core::ffi::c_int) -> *mut ZXing_BarcodeFormat;
	pub fn ZXing_BarcodeFormatsFromString(
		str_: *const ::core::ffi::c_char,
		outCount: *mut ::core::ffi::c_int,
	) -> *mut ZXing_BarcodeFormat;
	pub fn ZXing_BarcodeFormatsToString(formats: *const ZXing_BarcodeFormat, count: ::core::ffi::c_int) -> *mut ::core::ffi::c_char;
	pub fn ZXing_ContentTypeToString(type_: ZXing_ContentType) -> *mut ::core::ffi::c_char;
	pub fn ZXing_PositionToString(position: ZXing_Position) -> *mut ::core::ffi::c_char;
	pub fn ZXing_Barcode_isValid(barcode: *const ZXing_Barcode) -> bool;
	pub fn ZXing_Barcode_errorType(barcode: *const ZXing_Barcode) -> ZXing_ErrorType;
	pub fn ZXing_Barcode_errorMsg(barcode: *const ZXing_Barcode) -> *mut ::core::ffi::c_char;
	pub fn ZXing_Barcode_format(barcode: *const ZXing_Barcode) -> ZXing_BarcodeFormat;
	pub fn ZXing_Barcode_symbology(barcode: *const ZXing_Barcode) -> ZXing_BarcodeFormat;
	pub fn ZXing_Barcode_contentType(barcode: *const ZXing_Barcode) -> ZXing_ContentType;
	pub fn ZXing_Barcode_bytes(barcode: *const ZXing_Barcode, len: *mut ::core::ffi::c_int) -> *mut u8;
	pub fn ZXing_Barcode_bytesECI(barcode: *const ZXing_Barcode, len: *mut ::core::ffi::c_int) -> *mut u8;
	pub fn ZXing_Barcode_text(barcode: *const ZXing_Barcode) -> *mut ::core::ffi::c_char;
	pub fn ZXing_Barcode_symbologyIdentifier(barcode: *const ZXing_Barcode) -> *mut ::core::ffi::c_char;
	pub fn ZXing_Barcode_position(barcode: *const ZXing_Barcode) -> ZXing_Position;
	pub fn ZXing_Barcode_orientation(barcode: *const ZXing_Barcode) -> ::core::ffi::c_int;
	pub fn ZXing_Barcode_hasECI(barcode: *const ZXing_Barcode) -> bool;
	pub fn ZXing_Barcode_isInverted(barcode: *const ZXing_Barcode) -> bool;
	pub fn ZXing_Barcode_isMirrored(barcode: *const ZXing_Barcode) -> bool;
	pub fn ZXing_Barcode_lineCount(barcode: *const ZXing_Barcode) -> ::core::ffi::c_int;
	pub fn ZXing_Barcode_sequenceIndex(barcode: *const ZXing_Barcode) -> ::core::ffi::c_int;
	pub fn ZXing_Barcode_sequenceSize(barcode: *const ZXing_Barcode) -> ::core::ffi::c_int;
	pub fn ZXing_Barcode_sequenceId(barcode: *const ZXing_Barcode) -> *mut ::core::ffi::c_char;
	pub fn ZXing_Barcode_extra(barcode: *const ZXing_Barcode, key: *const ::core::ffi::c_char) -> *mut ::core::ffi::c_char;
	pub fn ZXing_Barcode_delete(barcode: *mut ZXing_Barcode);
	pub fn ZXing_Barcodes_delete(barcodes: *mut ZXing_Barcodes);
	pub fn ZXing_Barcodes_size(barcodes: *const ZXing_Barcodes) -> ::core::ffi::c_int;
	pub fn ZXing_Barcodes_at(barcodes: *const ZXing_Barcodes, i: ::core::ffi::c_int) -> *const ZXing_Barcode;
	pub fn ZXing_Barcodes_move(barcodes: *mut ZXing_Barcodes, i: ::core::ffi::c_int) -> *mut ZXing_Barcode;
	pub fn ZXing_ReaderOptions_new() -> *mut ZXing_ReaderOptions;
	pub fn ZXing_ReaderOptions_delete(opts: *mut ZXing_ReaderOptions);
	pub fn ZXing_ReaderOptions_setTryHarder(opts: *mut ZXing_ReaderOptions, tryHarder: bool);
	pub fn ZXing_ReaderOptions_setTryRotate(opts: *mut ZXing_ReaderOptions, tryRotate: bool);
	pub fn ZXing_ReaderOptions_setTryInvert(opts: *mut ZXing_ReaderOptions, tryInvert: bool);
	pub fn ZXing_ReaderOptions_setTryDownscale(opts: *mut ZXing_ReaderOptions, tryDownscale: bool);
	pub fn ZXing_ReaderOptions_setIsPure(opts: *mut ZXing_ReaderOptions, isPure: bool);
	pub fn ZXing_ReaderOptions_setValidateOptionalChecksum(opts: *mut ZXing_ReaderOptions, validateOptionalChecksum: bool);
	pub fn ZXing_ReaderOptions_setReturnErrors(opts: *mut ZXing_ReaderOptions, returnErrors: bool);
	pub fn ZXing_ReaderOptions_setFormats(
		opts: *mut ZXing_ReaderOptions,
		formats: *const ZXing_BarcodeFormat,
		count: ::core::ffi::c_int,
	);
	pub fn ZXing_ReaderOptions_setBinarizer(opts: *mut ZXing_ReaderOptions, binarizer: ZXing_Binarizer);
	pub fn ZXing_ReaderOptions_setEanAddOnSymbol(opts: *mut ZXing_ReaderOptions, eanAddOnSymbol: ZXing_EanAddOnSymbol);
	pub fn ZXing_ReaderOptions_setTextMode(opts: *mut ZXing_ReaderOptions, textMode: ZXing_TextMode);
	pub fn ZXing_ReaderOptions_setMinLineCount(opts: *mut ZXing_ReaderOptions, n: ::core::ffi::c_int);
	pub fn ZXing_ReaderOptions_setMaxNumberOfSymbols(opts: *mut ZXing_ReaderOptions, n: ::core::ffi::c_int);
	pub fn ZXing_ReaderOptions_getTryHarder(opts: *const ZXing_ReaderOptions) -> bool;
	pub fn ZXing_ReaderOptions_getTryRotate(opts: *const ZXing_ReaderOptions) -> bool;
	pub fn ZXing_ReaderOptions_getTryInvert(opts: *const ZXing_ReaderOptions) -> bool;
	pub fn ZXing_ReaderOptions_getTryDownscale(opts: *const ZXing_ReaderOptions) -> bool;
	pub fn ZXing_ReaderOptions_getIsPure(opts: *const ZXing_ReaderOptions) -> bool;
	pub fn ZXing_ReaderOptions_getValidateOptionalChecksum(opts: *const ZXing_ReaderOptions) -> bool;
	pub fn ZXing_ReaderOptions_getReturnErrors(opts: *const ZXing_ReaderOptions) -> bool;
	pub fn ZXing_ReaderOptions_getFormats(
		opts: *const ZXing_ReaderOptions,
		outCount: *mut ::core::ffi::c_int,
	) -> *mut ZXing_BarcodeFormat;
	pub fn ZXing_ReaderOptions_getBinarizer(opts: *const ZXing_ReaderOptions) -> ZXing_Binarizer;
	pub fn ZXing_ReaderOptions_getEanAddOnSymbol(opts: *const ZXing_ReaderOptions) -> ZXing_EanAddOnSymbol;
	pub fn ZXing_ReaderOptions_getTextMode(opts: *const ZXing_ReaderOptions) -> ZXing_TextMode;
	pub fn ZXing_ReaderOptions_getMinLineCount(opts: *const ZXing_ReaderOptions) -> ::core::ffi::c_int;
	pub fn ZXing_ReaderOptions_getMaxNumberOfSymbols(opts: *const ZXing_ReaderOptions) -> ::core::ffi::c_int;
	pub fn ZXing_ReadBarcodes(iv: *const ZXing_ImageView, opts: *const ZXing_ReaderOptions) -> *mut ZXing_Barcodes;
	pub fn ZXing_CreatorOptions_new(format: ZXing_BarcodeFormat) -> *mut ZXing_CreatorOptions;
	pub fn ZXing_CreatorOptions_delete(opts: *mut ZXing_CreatorOptions);
	pub fn ZXing_CreatorOptions_setFormat(opts: *mut ZXing_CreatorOptions, format: ZXing_BarcodeFormat);
	pub fn ZXing_CreatorOptions_getFormat(opts: *const ZXing_CreatorOptions) -> ZXing_BarcodeFormat;
	pub fn ZXing_CreatorOptions_setOptions(opts: *mut ZXing_CreatorOptions, options: *const ::core::ffi::c_char);
	pub fn ZXing_CreatorOptions_getOptions(opts: *const ZXing_CreatorOptions) -> *mut ::core::ffi::c_char;
	pub fn ZXing_WriterOptions_new() -> *mut ZXing_WriterOptions;
	pub fn ZXing_WriterOptions_delete(opts: *mut ZXing_WriterOptions);
	pub fn ZXing_WriterOptions_setScale(opts: *mut ZXing_WriterOptions, scale: ::core::ffi::c_int);
	pub fn ZXing_WriterOptions_getScale(opts: *const ZXing_WriterOptions) -> ::core::ffi::c_int;
	pub fn ZXing_WriterOptions_setRotate(opts: *mut ZXing_WriterOptions, rotate: ::core::ffi::c_int);
	pub fn ZXing_WriterOptions_getRotate(opts: *const ZXing_WriterOptions) -> ::core::ffi::c_int;
	pub fn ZXing_WriterOptions_setAddHRT(opts: *mut ZXing_WriterOptions, addHRT: bool);
	pub fn ZXing_WriterOptions_getAddHRT(opts: *const ZXing_WriterOptions) -> bool;
	pub fn ZXing_WriterOptions_setAddQuietZones(opts: *mut ZXing_WriterOptions, addQuietZones: bool);
	pub fn ZXing_WriterOptions_getAddQuietZones(opts: *const ZXing_WriterOptions) -> bool;
	pub fn ZXing_CreateBarcodeFromText(
		data: *const ::core::ffi::c_char,
		size: ::core::ffi::c_int,
		opts: *const ZXing_CreatorOptions,
	) -> *mut ZXing_Barcode;
	pub fn ZXing_CreateBarcodeFromBytes(
		data: *const ::core::ffi::c_void,
		size: ::core::ffi::c_int,
		opts: *const ZXing_CreatorOptions,
	) -> *mut ZXing_Barcode;
	pub fn ZXing_WriteBarcodeToSVG(barcode: *const ZXing_Barcode, opts: *const ZXing_WriterOptions) -> *mut ::core::ffi::c_char;
	pub fn ZXing_WriteBarcodeToImage(barcode: *const ZXing_Barcode, opts: *const ZXing_WriterOptions) -> *mut ZXing_Image;
	pub fn ZXing_LastErrorMsg() -> *mut ::core::ffi::c_char;
	pub fn ZXing_Version() -> *const ::core::ffi::c_char;
	pub fn ZXing_free(ptr: *mut ::core::ffi::c_void);
}
