#![allow(non_camel_case_types)]
use core::ffi::{c_char, c_int, c_uint, c_ulong, c_void};
#[repr(C)]
pub struct zbar_image_s {
_private: [u8; 0],
}
pub type zbar_image_t = zbar_image_s;
#[repr(C)]
pub struct zbar_symbol_s {
_private: [u8; 0],
}
pub type zbar_symbol_t = zbar_symbol_s;
#[repr(C)]
pub struct zbar_symbol_set_s {
_private: [u8; 0],
}
pub type zbar_symbol_set_t = zbar_symbol_set_s;
#[repr(C)]
pub struct zbar_image_scanner_s {
_private: [u8; 0],
}
pub type zbar_image_scanner_t = zbar_image_scanner_s;
pub type zbar_image_cleanup_handler_t = unsafe extern "C" fn(image: *mut zbar_image_t);
pub type zbar_image_data_handler_t =
unsafe extern "C" fn(image: *mut zbar_image_t, userdata: *const c_void);
unsafe extern "C" {
pub fn zbar_version(major: *mut c_uint, minor: *mut c_uint, patch: *mut c_uint) -> c_int;
pub fn zbar_set_verbosity(verbosity: c_int);
pub fn zbar_increase_verbosity();
pub fn zbar_get_symbol_name(sym: c_int) -> *const c_char;
pub fn zbar_get_addon_name(sym: c_int) -> *const c_char;
pub fn zbar_get_config_name(config: c_int) -> *const c_char;
pub fn zbar_get_modifier_name(modifier: c_int) -> *const c_char;
pub fn zbar_get_orientation_name(orientation: c_int) -> *const c_char;
pub fn zbar_parse_config(
config_string: *const c_char,
symbology: *mut c_int,
config: *mut c_int,
value: *mut c_int,
) -> c_int;
}
unsafe extern "C" {
pub fn zbar_image_create() -> *mut zbar_image_t;
pub fn zbar_image_destroy(image: *mut zbar_image_t);
pub fn zbar_image_ref(image: *mut zbar_image_t, refs: c_int);
pub fn zbar_image_convert(image: *const zbar_image_t, format: c_ulong) -> *mut zbar_image_t;
pub fn zbar_image_convert_resize(
image: *const zbar_image_t,
format: c_ulong,
width: c_uint,
height: c_uint,
) -> *mut zbar_image_t;
pub fn zbar_image_get_format(image: *const zbar_image_t) -> c_ulong;
pub fn zbar_image_get_sequence(image: *const zbar_image_t) -> c_uint;
pub fn zbar_image_get_width(image: *const zbar_image_t) -> c_uint;
pub fn zbar_image_get_height(image: *const zbar_image_t) -> c_uint;
pub fn zbar_image_get_size(image: *const zbar_image_t, width: *mut c_uint, height: *mut c_uint);
pub fn zbar_image_get_crop(
image: *const zbar_image_t,
x: *mut c_uint,
y: *mut c_uint,
width: *mut c_uint,
height: *mut c_uint,
);
pub fn zbar_image_get_data(image: *const zbar_image_t) -> *const c_void;
pub fn zbar_image_get_data_length(image: *const zbar_image_t) -> c_ulong;
pub fn zbar_image_get_symbols(image: *const zbar_image_t) -> *const zbar_symbol_set_t;
pub fn zbar_image_set_symbols(image: *mut zbar_image_t, symbols: *const zbar_symbol_set_t);
pub fn zbar_image_first_symbol(image: *const zbar_image_t) -> *const zbar_symbol_t;
pub fn zbar_image_set_format(image: *mut zbar_image_t, format: c_ulong);
pub fn zbar_image_set_sequence(image: *mut zbar_image_t, sequence_num: c_uint);
pub fn zbar_image_set_size(image: *mut zbar_image_t, width: c_uint, height: c_uint);
pub fn zbar_image_set_crop(
image: *mut zbar_image_t,
x: c_uint,
y: c_uint,
width: c_uint,
height: c_uint,
);
pub fn zbar_image_set_data(
image: *mut zbar_image_t,
data: *const c_void,
data_byte_length: c_ulong,
cleanup_handler: Option<zbar_image_cleanup_handler_t>,
);
pub fn zbar_image_free_data(image: *mut zbar_image_t);
pub fn zbar_image_set_userdata(image: *mut zbar_image_t, userdata: *mut c_void);
pub fn zbar_image_get_userdata(image: *const zbar_image_t) -> *mut c_void;
pub fn zbar_image_write(image: *const zbar_image_t, filebase: *const c_char) -> c_int;
}
unsafe extern "C" {
pub fn zbar_symbol_ref(symbol: *const zbar_symbol_t, refs: c_int);
pub fn zbar_symbol_get_type(symbol: *const zbar_symbol_t) -> c_int;
pub fn zbar_symbol_get_configs(symbol: *const zbar_symbol_t) -> c_uint;
pub fn zbar_symbol_get_modifiers(symbol: *const zbar_symbol_t) -> c_uint;
pub fn zbar_symbol_get_data(symbol: *const zbar_symbol_t) -> *const c_char;
pub fn zbar_symbol_get_data_length(symbol: *const zbar_symbol_t) -> c_uint;
pub fn zbar_symbol_get_quality(symbol: *const zbar_symbol_t) -> c_int;
pub fn zbar_symbol_get_count(symbol: *const zbar_symbol_t) -> c_int;
pub fn zbar_symbol_get_loc_size(symbol: *const zbar_symbol_t) -> c_uint;
pub fn zbar_symbol_get_loc_x(symbol: *const zbar_symbol_t, index: c_uint) -> c_int;
pub fn zbar_symbol_get_loc_y(symbol: *const zbar_symbol_t, index: c_uint) -> c_int;
pub fn zbar_symbol_get_orientation(symbol: *const zbar_symbol_t) -> c_int;
pub fn zbar_symbol_next(symbol: *const zbar_symbol_t) -> *const zbar_symbol_t;
pub fn zbar_symbol_get_components(symbol: *const zbar_symbol_t) -> *const zbar_symbol_set_t;
pub fn zbar_symbol_first_component(symbol: *const zbar_symbol_t) -> *const zbar_symbol_t;
pub fn zbar_symbol_xml(
symbol: *const zbar_symbol_t,
buffer: *mut *mut c_char,
buflen: *mut c_uint,
) -> *mut c_char;
}
unsafe extern "C" {
pub fn zbar_symbol_set_ref(symbols: *const zbar_symbol_set_t, refs: c_int);
pub fn zbar_symbol_set_get_size(symbols: *const zbar_symbol_set_t) -> c_int;
pub fn zbar_symbol_set_first_symbol(symbols: *const zbar_symbol_set_t) -> *const zbar_symbol_t;
pub fn zbar_symbol_set_first_unfiltered(
symbols: *const zbar_symbol_set_t,
) -> *const zbar_symbol_t;
}
unsafe extern "C" {
pub fn zbar_image_scanner_create() -> *mut zbar_image_scanner_t;
pub fn zbar_image_scanner_destroy(scanner: *mut zbar_image_scanner_t);
pub fn zbar_image_scanner_set_data_handler(
scanner: *mut zbar_image_scanner_t,
handler: Option<zbar_image_data_handler_t>,
userdata: *const c_void,
) -> Option<zbar_image_data_handler_t>;
pub fn zbar_image_scanner_set_config(
scanner: *mut zbar_image_scanner_t,
symbology: c_int,
config: c_int,
value: c_int,
) -> c_int;
pub fn zbar_image_scanner_get_config(
scanner: *mut zbar_image_scanner_t,
symbology: c_int,
config: c_int,
value: *mut c_int,
) -> c_int;
pub fn zbar_image_scanner_enable_cache(scanner: *mut zbar_image_scanner_t, enable: c_int);
pub fn zbar_image_scanner_recycle_image(
scanner: *mut zbar_image_scanner_t,
image: *mut zbar_image_t,
);
pub fn zbar_image_scanner_get_results(
scanner: *const zbar_image_scanner_t,
) -> *const zbar_symbol_set_t;
pub fn zbar_image_scanner_request_dbus(
scanner: *mut zbar_image_scanner_t,
req_dbus_enabled: c_int,
) -> c_int;
pub fn zbar_scan_image(scanner: *mut zbar_image_scanner_t, image: *mut zbar_image_t) -> c_int;
}