Flutter plugin for scanning and generating QR codes using the ZXing library, supporting Android, iOS, and desktop platforms
flutterbarcode-generatorbarcode-scannergeneratorqrqrcodeqrcode-generatorqrcode-scannerscannerzxingbarcodezxscanner
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
295 lines
8.2 KiB
295 lines
8.2 KiB
// ignore_for_file: always_specify_types |
|
// ignore_for_file: camel_case_types |
|
// ignore_for_file: non_constant_identifier_names |
|
|
|
// AUTO GENERATED FILE, DO NOT EDIT. |
|
// |
|
// Generated by `package:ffigen`. |
|
// ignore_for_file: type=lint |
|
import 'dart:ffi' as ffi; |
|
|
|
/// Bindings for `src/native_zxing.h`. |
|
/// |
|
/// Regenerate bindings with `flutter pub run ffigen --config ffigen.yaml`. |
|
/// |
|
class GeneratedBindings { |
|
/// Holds the symbol lookup function. |
|
final ffi.Pointer<T> Function<T extends ffi.NativeType>(String symbolName) |
|
_lookup; |
|
|
|
/// The symbols are looked up in [dynamicLibrary]. |
|
GeneratedBindings(ffi.DynamicLibrary dynamicLibrary) |
|
: _lookup = dynamicLibrary.lookup; |
|
|
|
/// The symbols are looked up with [lookup]. |
|
GeneratedBindings.fromLookup( |
|
ffi.Pointer<T> Function<T extends ffi.NativeType>(String symbolName) |
|
lookup) |
|
: _lookup = lookup; |
|
|
|
/// @brief Enables or disables the logging of the library. |
|
/// @param enable Whether to enable or disable the logging. |
|
/// |
|
/// @param enabled |
|
void setLogEnabled( |
|
int enable, |
|
) { |
|
return _setLogEnabled( |
|
enable, |
|
); |
|
} |
|
|
|
late final _setLogEnabledPtr = |
|
_lookup<ffi.NativeFunction<ffi.Void Function(ffi.Int)>>('setLogEnabled'); |
|
late final _setLogEnabled = |
|
_setLogEnabledPtr.asFunction<void Function(int)>(); |
|
|
|
/// Returns the version of the zxing-cpp library. |
|
/// |
|
/// @return The version of the zxing-cpp library. |
|
ffi.Pointer<ffi.Char> version() { |
|
return _version(); |
|
} |
|
|
|
late final _versionPtr = |
|
_lookup<ffi.NativeFunction<ffi.Pointer<ffi.Char> Function()>>('version'); |
|
late final _version = |
|
_versionPtr.asFunction<ffi.Pointer<ffi.Char> Function()>(); |
|
|
|
/// @brief Read barcode from image bytes. |
|
/// @param bytes Image bytes. |
|
/// @param format Specify a set of BarcodeFormats that should be searched for. |
|
/// @param width Image width in pixels. |
|
/// @param height Image height in pixels. |
|
/// @param cropWidth Crop width. |
|
/// @param cropHeight Crop height. |
|
/// @param tryHarder Spend more time to try to find a barcode; optimize for accuracy, not speed. |
|
/// @param tryRotate Also try detecting code in 90, 180 and 270 degree rotated images. |
|
/// @return The barcode result. |
|
CodeResult readBarcode( |
|
ffi.Pointer<ffi.Char> bytes, |
|
int format, |
|
int width, |
|
int height, |
|
int cropWidth, |
|
int cropHeight, |
|
int tryHarder, |
|
int tryRotate, |
|
int tryInvert, |
|
) { |
|
return _readBarcode( |
|
bytes, |
|
format, |
|
width, |
|
height, |
|
cropWidth, |
|
cropHeight, |
|
tryHarder, |
|
tryRotate, |
|
tryInvert, |
|
); |
|
} |
|
|
|
late final _readBarcodePtr = _lookup< |
|
ffi.NativeFunction< |
|
CodeResult Function(ffi.Pointer<ffi.Char>, ffi.Int, ffi.Int, ffi.Int, |
|
ffi.Int, ffi.Int, ffi.Int, ffi.Int, ffi.Int)>>('readBarcode'); |
|
late final _readBarcode = _readBarcodePtr.asFunction< |
|
CodeResult Function( |
|
ffi.Pointer<ffi.Char>, int, int, int, int, int, int, int, int)>(); |
|
|
|
/// @brief Read barcodes from image bytes. |
|
/// @param bytes Image bytes. |
|
/// @param format Specify a set of BarcodeFormats that should be searched for. |
|
/// @param width Image width in pixels. |
|
/// @param height Image height in pixels. |
|
/// @param cropWidth Crop width. |
|
/// @param cropHeight Crop height. |
|
/// @param tryHarder Spend more time to try to find a barcode, optimize for accuracy, not speed. |
|
/// @param tryRotate Also try detecting code in 90, 180 and 270 degree rotated images. |
|
/// @return The barcode results. |
|
CodeResults readBarcodes( |
|
ffi.Pointer<ffi.Char> bytes, |
|
int format, |
|
int width, |
|
int height, |
|
int cropWidth, |
|
int cropHeight, |
|
int tryHarder, |
|
int tryRotate, |
|
int tryInvert, |
|
) { |
|
return _readBarcodes( |
|
bytes, |
|
format, |
|
width, |
|
height, |
|
cropWidth, |
|
cropHeight, |
|
tryHarder, |
|
tryRotate, |
|
tryInvert, |
|
); |
|
} |
|
|
|
late final _readBarcodesPtr = _lookup< |
|
ffi.NativeFunction< |
|
CodeResults Function(ffi.Pointer<ffi.Char>, ffi.Int, ffi.Int, ffi.Int, |
|
ffi.Int, ffi.Int, ffi.Int, ffi.Int, ffi.Int)>>('readBarcodes'); |
|
late final _readBarcodes = _readBarcodesPtr.asFunction< |
|
CodeResults Function( |
|
ffi.Pointer<ffi.Char>, int, int, int, int, int, int, int, int)>(); |
|
|
|
/// @brief Encode a string into a barcode |
|
/// @param contents The string to encode |
|
/// @param width The width of the barcode in pixels. |
|
/// @param height The height of the barcode in pixels. |
|
/// @param format The format of the barcode |
|
/// @param margin The margin of the barcode |
|
/// @param eccLevel The error correction level of the barcode. Used for Aztec, PDF417, and QRCode only, [0-8]. |
|
/// @return The barcode data |
|
EncodeResult encodeBarcode( |
|
ffi.Pointer<ffi.Char> contents, |
|
int width, |
|
int height, |
|
int format, |
|
int margin, |
|
int eccLevel, |
|
) { |
|
return _encodeBarcode( |
|
contents, |
|
width, |
|
height, |
|
format, |
|
margin, |
|
eccLevel, |
|
); |
|
} |
|
|
|
late final _encodeBarcodePtr = _lookup< |
|
ffi.NativeFunction< |
|
EncodeResult Function(ffi.Pointer<ffi.Char>, ffi.Int, ffi.Int, |
|
ffi.Int, ffi.Int, ffi.Int)>>('encodeBarcode'); |
|
late final _encodeBarcode = _encodeBarcodePtr.asFunction< |
|
EncodeResult Function(ffi.Pointer<ffi.Char>, int, int, int, int, int)>(); |
|
} |
|
|
|
/// @brief Pos is a position of a barcode in a image. |
|
final class Pos extends ffi.Struct { |
|
/// < The width of the image |
|
@ffi.Int() |
|
external int imageWidth; |
|
|
|
/// < The height of the image |
|
@ffi.Int() |
|
external int imageHeight; |
|
|
|
/// < x coordinate of top left corner of barcode |
|
@ffi.Int() |
|
external int topLeftX; |
|
|
|
/// < y coordinate of top left corner of barcode |
|
@ffi.Int() |
|
external int topLeftY; |
|
|
|
/// < x coordinate of top right corner of barcode |
|
@ffi.Int() |
|
external int topRightX; |
|
|
|
/// < y coordinate of top right corner of barcode |
|
@ffi.Int() |
|
external int topRightY; |
|
|
|
/// < x coordinate of bottom left corner of barcode |
|
@ffi.Int() |
|
external int bottomLeftX; |
|
|
|
/// < y coordinate of bottom left corner of barcode |
|
@ffi.Int() |
|
external int bottomLeftY; |
|
|
|
/// < x coordinate of bottom right corner of barcode |
|
@ffi.Int() |
|
external int bottomRightX; |
|
|
|
/// < y coordinate of bottom right corner of barcode |
|
@ffi.Int() |
|
external int bottomRightY; |
|
} |
|
|
|
/// @brief The CodeResult class encapsulates the result of decoding a barcode within an image. |
|
final class CodeResult extends ffi.Struct { |
|
/// < The decoded text |
|
external ffi.Pointer<ffi.Char> text; |
|
|
|
/// < Whether the barcode was successfully decoded |
|
@ffi.Int() |
|
external int isValid; |
|
|
|
/// < The error message |
|
external ffi.Pointer<ffi.Char> error; |
|
|
|
/// < The bytes is the raw / standard content without any modifications like character set conversions |
|
external ffi.Pointer<ffi.UnsignedChar> bytes; |
|
|
|
/// < The length of the bytes |
|
@ffi.Int() |
|
external int length; |
|
|
|
/// < The format of the barcode |
|
@ffi.Int() |
|
external int format; |
|
|
|
/// < The position of the barcode within the image |
|
external ffi.Pointer<Pos> pos; |
|
|
|
/// < Whether the barcode was inverted |
|
@ffi.Int() |
|
external int isInverted; |
|
|
|
/// < Whether the barcode was mirrored |
|
@ffi.Int() |
|
external int isMirrored; |
|
|
|
/// < The duration of the decoding in milliseconds |
|
@ffi.Int() |
|
external int duration; |
|
} |
|
|
|
/// @brief The CodeResults class encapsulates the result of decoding multiple barcodes within an image. |
|
final class CodeResults extends ffi.Struct { |
|
/// < The number of barcodes detected |
|
@ffi.Int() |
|
external int count; |
|
|
|
/// < The results of the barcode decoding |
|
external ffi.Pointer<CodeResult> results; |
|
|
|
/// < The duration of the decoding in milliseconds |
|
@ffi.Int() |
|
external int duration; |
|
} |
|
|
|
/// @brief EncodeResult encapsulates the result of encoding a barcode. |
|
final class EncodeResult extends ffi.Struct { |
|
/// < Whether the barcode was successfully encoded |
|
@ffi.Int() |
|
external int isValid; |
|
|
|
/// < The encoded text |
|
external ffi.Pointer<ffi.Char> text; |
|
|
|
/// < The format of the barcode |
|
@ffi.Int() |
|
external int format; |
|
|
|
/// < The encoded data |
|
external ffi.Pointer<ffi.SignedChar> data; |
|
|
|
/// < The length of the encoded data |
|
@ffi.Int() |
|
external int length; |
|
|
|
/// < The error message |
|
external ffi.Pointer<ffi.Char> error; |
|
}
|
|
|