#![cfg(unix)]
use aravis_sys::*;
use std::env;
use std::error::Error;
use std::ffi::OsString;
use std::mem::{align_of, size_of};
use std::path::Path;
use std::process::{Command, Stdio};
use std::str;
use tempfile::Builder;
static PACKAGES: &[&str] = &["aravis-0.8"];
#[derive(Clone, Debug)]
struct Compiler {
pub args: Vec<String>,
}
impl Compiler {
pub fn new() -> Result<Self, Box<dyn Error>> {
let mut args = get_var("CC", "cc")?;
args.push("-Wno-deprecated-declarations".to_owned());
args.push("-std=c11".to_owned());
args.push("-D__USE_MINGW_ANSI_STDIO".to_owned());
args.extend(get_var("CFLAGS", "")?);
args.extend(get_var("CPPFLAGS", "")?);
args.extend(pkg_config_cflags(PACKAGES)?);
Ok(Self { args })
}
pub fn compile(&self, src: &Path, out: &Path) -> Result<(), Box<dyn Error>> {
let mut cmd = self.to_command();
cmd.arg(src);
cmd.arg("-o");
cmd.arg(out);
let status = cmd.spawn()?.wait()?;
if !status.success() {
return Err(format!("compilation command {cmd:?} failed, {status}").into());
}
Ok(())
}
fn to_command(&self) -> Command {
let mut cmd = Command::new(&self.args[0]);
cmd.args(&self.args[1..]);
cmd
}
}
fn get_var(name: &str, default: &str) -> Result<Vec<String>, Box<dyn Error>> {
match env::var(name) {
Ok(value) => Ok(shell_words::split(&value)?),
Err(env::VarError::NotPresent) => Ok(shell_words::split(default)?),
Err(err) => Err(format!("{name} {err}").into()),
}
}
fn pkg_config_cflags(packages: &[&str]) -> Result<Vec<String>, Box<dyn Error>> {
if packages.is_empty() {
return Ok(Vec::new());
}
let pkg_config = env::var_os("PKG_CONFIG").unwrap_or_else(|| OsString::from("pkg-config"));
let mut cmd = Command::new(pkg_config);
cmd.arg("--cflags");
cmd.args(packages);
cmd.stderr(Stdio::inherit());
let out = cmd.output()?;
if !out.status.success() {
let (status, stdout) = (out.status, String::from_utf8_lossy(&out.stdout));
return Err(format!("command {cmd:?} failed, {status:?}\nstdout: {stdout}").into());
}
let stdout = str::from_utf8(&out.stdout)?;
Ok(shell_words::split(stdout.trim())?)
}
#[derive(Copy, Clone, Debug, Eq, PartialEq)]
struct Layout {
size: usize,
alignment: usize,
}
#[derive(Copy, Clone, Debug, Default, Eq, PartialEq)]
struct Results {
passed: usize,
failed: usize,
}
impl Results {
fn record_passed(&mut self) {
self.passed += 1;
}
fn record_failed(&mut self) {
self.failed += 1;
}
fn summary(&self) -> String {
format!("{} passed; {} failed", self.passed, self.failed)
}
fn expect_total_success(&self) {
if self.failed == 0 {
println!("OK: {}", self.summary());
} else {
panic!("FAILED: {}", self.summary());
};
}
}
#[test]
fn cross_validate_constants_with_c() {
let mut c_constants: Vec<(String, String)> = Vec::new();
for l in get_c_output("constant").unwrap().lines() {
let (name, value) = l.split_once(';').expect("Missing ';' separator");
c_constants.push((name.to_owned(), value.to_owned()));
}
let mut results = Results::default();
for ((rust_name, rust_value), (c_name, c_value)) in
RUST_CONSTANTS.iter().zip(c_constants.iter())
{
if rust_name != c_name {
results.record_failed();
eprintln!("Name mismatch:\nRust: {rust_name:?}\nC: {c_name:?}");
continue;
}
if rust_value != c_value {
results.record_failed();
eprintln!(
"Constant value mismatch for {rust_name}\nRust: {rust_value:?}\nC: {c_value:?}",
);
continue;
}
results.record_passed();
}
results.expect_total_success();
}
#[test]
fn cross_validate_layout_with_c() {
let mut c_layouts = Vec::new();
for l in get_c_output("layout").unwrap().lines() {
let (name, value) = l.split_once(';').expect("Missing first ';' separator");
let (size, alignment) = value.split_once(';').expect("Missing second ';' separator");
let size = size.parse().expect("Failed to parse size");
let alignment = alignment.parse().expect("Failed to parse alignment");
c_layouts.push((name.to_owned(), Layout { size, alignment }));
}
let mut results = Results::default();
for ((rust_name, rust_layout), (c_name, c_layout)) in RUST_LAYOUTS.iter().zip(c_layouts.iter())
{
if rust_name != c_name {
results.record_failed();
eprintln!("Name mismatch:\nRust: {rust_name:?}\nC: {c_name:?}");
continue;
}
if rust_layout != c_layout {
results.record_failed();
eprintln!("Layout mismatch for {rust_name}\nRust: {rust_layout:?}\nC: {c_layout:?}",);
continue;
}
results.record_passed();
}
results.expect_total_success();
}
fn get_c_output(name: &str) -> Result<String, Box<dyn Error>> {
let tmpdir = Builder::new().prefix("abi").tempdir()?;
let exe = tmpdir.path().join(name);
let c_file = Path::new("tests").join(name).with_extension("c");
let cc = Compiler::new().expect("configured compiler");
cc.compile(&c_file, &exe)?;
let mut cmd = Command::new(exe);
cmd.stderr(Stdio::inherit());
let out = cmd.output()?;
if !out.status.success() {
let (status, stdout) = (out.status, String::from_utf8_lossy(&out.stdout));
return Err(format!("command {cmd:?} failed, {status:?}\nstdout: {stdout}").into());
}
Ok(String::from_utf8(out.stdout)?)
}
const RUST_LAYOUTS: &[(&str, Layout)] = &[
(
"ArvAccessCheckPolicy",
Layout {
size: size_of::<ArvAccessCheckPolicy>(),
alignment: align_of::<ArvAccessCheckPolicy>(),
},
),
(
"ArvAcquisitionMode",
Layout {
size: size_of::<ArvAcquisitionMode>(),
alignment: align_of::<ArvAcquisitionMode>(),
},
),
(
"ArvAuto",
Layout {
size: size_of::<ArvAuto>(),
alignment: align_of::<ArvAuto>(),
},
),
(
"ArvBufferClass",
Layout {
size: size_of::<ArvBufferClass>(),
alignment: align_of::<ArvBufferClass>(),
},
),
(
"ArvBufferPartDataType",
Layout {
size: size_of::<ArvBufferPartDataType>(),
alignment: align_of::<ArvBufferPartDataType>(),
},
),
(
"ArvBufferPayloadType",
Layout {
size: size_of::<ArvBufferPayloadType>(),
alignment: align_of::<ArvBufferPayloadType>(),
},
),
(
"ArvBufferStatus",
Layout {
size: size_of::<ArvBufferStatus>(),
alignment: align_of::<ArvBufferStatus>(),
},
),
(
"ArvCamera",
Layout {
size: size_of::<ArvCamera>(),
alignment: align_of::<ArvCamera>(),
},
),
(
"ArvCameraClass",
Layout {
size: size_of::<ArvCameraClass>(),
alignment: align_of::<ArvCameraClass>(),
},
),
(
"ArvChunkParserClass",
Layout {
size: size_of::<ArvChunkParserClass>(),
alignment: align_of::<ArvChunkParserClass>(),
},
),
(
"ArvChunkParserError",
Layout {
size: size_of::<ArvChunkParserError>(),
alignment: align_of::<ArvChunkParserError>(),
},
),
(
"ArvComponentSelectionFlags",
Layout {
size: size_of::<ArvComponentSelectionFlags>(),
alignment: align_of::<ArvComponentSelectionFlags>(),
},
),
(
"ArvDevice",
Layout {
size: size_of::<ArvDevice>(),
alignment: align_of::<ArvDevice>(),
},
),
(
"ArvDeviceClass",
Layout {
size: size_of::<ArvDeviceClass>(),
alignment: align_of::<ArvDeviceClass>(),
},
),
(
"ArvDeviceError",
Layout {
size: size_of::<ArvDeviceError>(),
alignment: align_of::<ArvDeviceError>(),
},
),
(
"ArvDomCharacterData",
Layout {
size: size_of::<ArvDomCharacterData>(),
alignment: align_of::<ArvDomCharacterData>(),
},
),
(
"ArvDomCharacterDataClass",
Layout {
size: size_of::<ArvDomCharacterDataClass>(),
alignment: align_of::<ArvDomCharacterDataClass>(),
},
),
(
"ArvDomDocument",
Layout {
size: size_of::<ArvDomDocument>(),
alignment: align_of::<ArvDomDocument>(),
},
),
(
"ArvDomDocumentClass",
Layout {
size: size_of::<ArvDomDocumentClass>(),
alignment: align_of::<ArvDomDocumentClass>(),
},
),
(
"ArvDomDocumentFragment",
Layout {
size: size_of::<ArvDomDocumentFragment>(),
alignment: align_of::<ArvDomDocumentFragment>(),
},
),
(
"ArvDomDocumentFragmentClass",
Layout {
size: size_of::<ArvDomDocumentFragmentClass>(),
alignment: align_of::<ArvDomDocumentFragmentClass>(),
},
),
(
"ArvDomElement",
Layout {
size: size_of::<ArvDomElement>(),
alignment: align_of::<ArvDomElement>(),
},
),
(
"ArvDomElementClass",
Layout {
size: size_of::<ArvDomElementClass>(),
alignment: align_of::<ArvDomElementClass>(),
},
),
(
"ArvDomNamedNodeMap",
Layout {
size: size_of::<ArvDomNamedNodeMap>(),
alignment: align_of::<ArvDomNamedNodeMap>(),
},
),
(
"ArvDomNamedNodeMapClass",
Layout {
size: size_of::<ArvDomNamedNodeMapClass>(),
alignment: align_of::<ArvDomNamedNodeMapClass>(),
},
),
(
"ArvDomNode",
Layout {
size: size_of::<ArvDomNode>(),
alignment: align_of::<ArvDomNode>(),
},
),
(
"ArvDomNodeChildListClass",
Layout {
size: size_of::<ArvDomNodeChildListClass>(),
alignment: align_of::<ArvDomNodeChildListClass>(),
},
),
(
"ArvDomNodeClass",
Layout {
size: size_of::<ArvDomNodeClass>(),
alignment: align_of::<ArvDomNodeClass>(),
},
),
(
"ArvDomNodeList",
Layout {
size: size_of::<ArvDomNodeList>(),
alignment: align_of::<ArvDomNodeList>(),
},
),
(
"ArvDomNodeListClass",
Layout {
size: size_of::<ArvDomNodeListClass>(),
alignment: align_of::<ArvDomNodeListClass>(),
},
),
(
"ArvDomNodeType",
Layout {
size: size_of::<ArvDomNodeType>(),
alignment: align_of::<ArvDomNodeType>(),
},
),
(
"ArvDomText",
Layout {
size: size_of::<ArvDomText>(),
alignment: align_of::<ArvDomText>(),
},
),
(
"ArvDomTextClass",
Layout {
size: size_of::<ArvDomTextClass>(),
alignment: align_of::<ArvDomTextClass>(),
},
),
(
"ArvEvaluatorClass",
Layout {
size: size_of::<ArvEvaluatorClass>(),
alignment: align_of::<ArvEvaluatorClass>(),
},
),
(
"ArvExposureMode",
Layout {
size: size_of::<ArvExposureMode>(),
alignment: align_of::<ArvExposureMode>(),
},
),
(
"ArvFakeCameraClass",
Layout {
size: size_of::<ArvFakeCameraClass>(),
alignment: align_of::<ArvFakeCameraClass>(),
},
),
(
"ArvFakeDeviceClass",
Layout {
size: size_of::<ArvFakeDeviceClass>(),
alignment: align_of::<ArvFakeDeviceClass>(),
},
),
(
"ArvFakeInterfaceClass",
Layout {
size: size_of::<ArvFakeInterfaceClass>(),
alignment: align_of::<ArvFakeInterfaceClass>(),
},
),
(
"ArvFakeStreamClass",
Layout {
size: size_of::<ArvFakeStreamClass>(),
alignment: align_of::<ArvFakeStreamClass>(),
},
),
(
"ArvGcAccessMode",
Layout {
size: size_of::<ArvGcAccessMode>(),
alignment: align_of::<ArvGcAccessMode>(),
},
),
(
"ArvGcBooleanClass",
Layout {
size: size_of::<ArvGcBooleanClass>(),
alignment: align_of::<ArvGcBooleanClass>(),
},
),
(
"ArvGcCachable",
Layout {
size: size_of::<ArvGcCachable>(),
alignment: align_of::<ArvGcCachable>(),
},
),
(
"ArvGcCategoryClass",
Layout {
size: size_of::<ArvGcCategoryClass>(),
alignment: align_of::<ArvGcCategoryClass>(),
},
),
(
"ArvGcClass",
Layout {
size: size_of::<ArvGcClass>(),
alignment: align_of::<ArvGcClass>(),
},
),
(
"ArvGcCommandClass",
Layout {
size: size_of::<ArvGcCommandClass>(),
alignment: align_of::<ArvGcCommandClass>(),
},
),
(
"ArvGcConverter",
Layout {
size: size_of::<ArvGcConverter>(),
alignment: align_of::<ArvGcConverter>(),
},
),
(
"ArvGcConverterClass",
Layout {
size: size_of::<ArvGcConverterClass>(),
alignment: align_of::<ArvGcConverterClass>(),
},
),
(
"ArvGcConverterNodeClass",
Layout {
size: size_of::<ArvGcConverterNodeClass>(),
alignment: align_of::<ArvGcConverterNodeClass>(),
},
),
(
"ArvGcDisplayNotation",
Layout {
size: size_of::<ArvGcDisplayNotation>(),
alignment: align_of::<ArvGcDisplayNotation>(),
},
),
(
"ArvGcEnumEntryClass",
Layout {
size: size_of::<ArvGcEnumEntryClass>(),
alignment: align_of::<ArvGcEnumEntryClass>(),
},
),
(
"ArvGcEnumerationClass",
Layout {
size: size_of::<ArvGcEnumerationClass>(),
alignment: align_of::<ArvGcEnumerationClass>(),
},
),
(
"ArvGcError",
Layout {
size: size_of::<ArvGcError>(),
alignment: align_of::<ArvGcError>(),
},
),
(
"ArvGcFeatureNode",
Layout {
size: size_of::<ArvGcFeatureNode>(),
alignment: align_of::<ArvGcFeatureNode>(),
},
),
(
"ArvGcFeatureNodeClass",
Layout {
size: size_of::<ArvGcFeatureNodeClass>(),
alignment: align_of::<ArvGcFeatureNodeClass>(),
},
),
(
"ArvGcFloatInterface",
Layout {
size: size_of::<ArvGcFloatInterface>(),
alignment: align_of::<ArvGcFloatInterface>(),
},
),
(
"ArvGcFloatNodeClass",
Layout {
size: size_of::<ArvGcFloatNodeClass>(),
alignment: align_of::<ArvGcFloatNodeClass>(),
},
),
(
"ArvGcFloatRegNode",
Layout {
size: size_of::<ArvGcFloatRegNode>(),
alignment: align_of::<ArvGcFloatRegNode>(),
},
),
(
"ArvGcFloatRegNodeClass",
Layout {
size: size_of::<ArvGcFloatRegNodeClass>(),
alignment: align_of::<ArvGcFloatRegNodeClass>(),
},
),
(
"ArvGcGroupNodeClass",
Layout {
size: size_of::<ArvGcGroupNodeClass>(),
alignment: align_of::<ArvGcGroupNodeClass>(),
},
),
(
"ArvGcIndexNodeClass",
Layout {
size: size_of::<ArvGcIndexNodeClass>(),
alignment: align_of::<ArvGcIndexNodeClass>(),
},
),
(
"ArvGcIntConverterNodeClass",
Layout {
size: size_of::<ArvGcIntConverterNodeClass>(),
alignment: align_of::<ArvGcIntConverterNodeClass>(),
},
),
(
"ArvGcIntRegNode",
Layout {
size: size_of::<ArvGcIntRegNode>(),
alignment: align_of::<ArvGcIntRegNode>(),
},
),
(
"ArvGcIntRegNodeClass",
Layout {
size: size_of::<ArvGcIntRegNodeClass>(),
alignment: align_of::<ArvGcIntRegNodeClass>(),
},
),
(
"ArvGcIntSwissKnifeNode",
Layout {
size: size_of::<ArvGcIntSwissKnifeNode>(),
alignment: align_of::<ArvGcIntSwissKnifeNode>(),
},
),
(
"ArvGcIntSwissKnifeNodeClass",
Layout {
size: size_of::<ArvGcIntSwissKnifeNodeClass>(),
alignment: align_of::<ArvGcIntSwissKnifeNodeClass>(),
},
),
(
"ArvGcIntegerInterface",
Layout {
size: size_of::<ArvGcIntegerInterface>(),
alignment: align_of::<ArvGcIntegerInterface>(),
},
),
(
"ArvGcIntegerNodeClass",
Layout {
size: size_of::<ArvGcIntegerNodeClass>(),
alignment: align_of::<ArvGcIntegerNodeClass>(),
},
),
(
"ArvGcInvalidatorNodeClass",
Layout {
size: size_of::<ArvGcInvalidatorNodeClass>(),
alignment: align_of::<ArvGcInvalidatorNodeClass>(),
},
),
(
"ArvGcIsLinear",
Layout {
size: size_of::<ArvGcIsLinear>(),
alignment: align_of::<ArvGcIsLinear>(),
},
),
(
"ArvGcMaskedIntRegNode",
Layout {
size: size_of::<ArvGcMaskedIntRegNode>(),
alignment: align_of::<ArvGcMaskedIntRegNode>(),
},
),
(
"ArvGcMaskedIntRegNodeClass",
Layout {
size: size_of::<ArvGcMaskedIntRegNodeClass>(),
alignment: align_of::<ArvGcMaskedIntRegNodeClass>(),
},
),
(
"ArvGcNameSpace",
Layout {
size: size_of::<ArvGcNameSpace>(),
alignment: align_of::<ArvGcNameSpace>(),
},
),
(
"ArvGcNode",
Layout {
size: size_of::<ArvGcNode>(),
alignment: align_of::<ArvGcNode>(),
},
),
(
"ArvGcNodeClass",
Layout {
size: size_of::<ArvGcNodeClass>(),
alignment: align_of::<ArvGcNodeClass>(),
},
),
(
"ArvGcPortClass",
Layout {
size: size_of::<ArvGcPortClass>(),
alignment: align_of::<ArvGcPortClass>(),
},
),
(
"ArvGcPropertyNode",
Layout {
size: size_of::<ArvGcPropertyNode>(),
alignment: align_of::<ArvGcPropertyNode>(),
},
),
(
"ArvGcPropertyNodeClass",
Layout {
size: size_of::<ArvGcPropertyNodeClass>(),
alignment: align_of::<ArvGcPropertyNodeClass>(),
},
),
(
"ArvGcPropertyNodeType",
Layout {
size: size_of::<ArvGcPropertyNodeType>(),
alignment: align_of::<ArvGcPropertyNodeType>(),
},
),
(
"ArvGcRegisterDescriptionNodeClass",
Layout {
size: size_of::<ArvGcRegisterDescriptionNodeClass>(),
alignment: align_of::<ArvGcRegisterDescriptionNodeClass>(),
},
),
(
"ArvGcRegisterInterface",
Layout {
size: size_of::<ArvGcRegisterInterface>(),
alignment: align_of::<ArvGcRegisterInterface>(),
},
),
(
"ArvGcRegisterNode",
Layout {
size: size_of::<ArvGcRegisterNode>(),
alignment: align_of::<ArvGcRegisterNode>(),
},
),
(
"ArvGcRegisterNodeClass",
Layout {
size: size_of::<ArvGcRegisterNodeClass>(),
alignment: align_of::<ArvGcRegisterNodeClass>(),
},
),
(
"ArvGcRepresentation",
Layout {
size: size_of::<ArvGcRepresentation>(),
alignment: align_of::<ArvGcRepresentation>(),
},
),
(
"ArvGcSelectorInterface",
Layout {
size: size_of::<ArvGcSelectorInterface>(),
alignment: align_of::<ArvGcSelectorInterface>(),
},
),
(
"ArvGcSignedness",
Layout {
size: size_of::<ArvGcSignedness>(),
alignment: align_of::<ArvGcSignedness>(),
},
),
(
"ArvGcStreamable",
Layout {
size: size_of::<ArvGcStreamable>(),
alignment: align_of::<ArvGcStreamable>(),
},
),
(
"ArvGcStringInterface",
Layout {
size: size_of::<ArvGcStringInterface>(),
alignment: align_of::<ArvGcStringInterface>(),
},
),
(
"ArvGcStringNodeClass",
Layout {
size: size_of::<ArvGcStringNodeClass>(),
alignment: align_of::<ArvGcStringNodeClass>(),
},
),
(
"ArvGcStringRegNode",
Layout {
size: size_of::<ArvGcStringRegNode>(),
alignment: align_of::<ArvGcStringRegNode>(),
},
),
(
"ArvGcStringRegNodeClass",
Layout {
size: size_of::<ArvGcStringRegNodeClass>(),
alignment: align_of::<ArvGcStringRegNodeClass>(),
},
),
(
"ArvGcStructEntryNodeClass",
Layout {
size: size_of::<ArvGcStructEntryNodeClass>(),
alignment: align_of::<ArvGcStructEntryNodeClass>(),
},
),
(
"ArvGcStructRegNode",
Layout {
size: size_of::<ArvGcStructRegNode>(),
alignment: align_of::<ArvGcStructRegNode>(),
},
),
(
"ArvGcStructRegNodeClass",
Layout {
size: size_of::<ArvGcStructRegNodeClass>(),
alignment: align_of::<ArvGcStructRegNodeClass>(),
},
),
(
"ArvGcSwissKnife",
Layout {
size: size_of::<ArvGcSwissKnife>(),
alignment: align_of::<ArvGcSwissKnife>(),
},
),
(
"ArvGcSwissKnifeClass",
Layout {
size: size_of::<ArvGcSwissKnifeClass>(),
alignment: align_of::<ArvGcSwissKnifeClass>(),
},
),
(
"ArvGcSwissKnifeNode",
Layout {
size: size_of::<ArvGcSwissKnifeNode>(),
alignment: align_of::<ArvGcSwissKnifeNode>(),
},
),
(
"ArvGcSwissKnifeNodeClass",
Layout {
size: size_of::<ArvGcSwissKnifeNodeClass>(),
alignment: align_of::<ArvGcSwissKnifeNodeClass>(),
},
),
(
"ArvGcValueIndexedNodeClass",
Layout {
size: size_of::<ArvGcValueIndexedNodeClass>(),
alignment: align_of::<ArvGcValueIndexedNodeClass>(),
},
),
(
"ArvGcVisibility",
Layout {
size: size_of::<ArvGcVisibility>(),
alignment: align_of::<ArvGcVisibility>(),
},
),
(
"ArvGvDeviceClass",
Layout {
size: size_of::<ArvGvDeviceClass>(),
alignment: align_of::<ArvGvDeviceClass>(),
},
),
(
"ArvGvFakeCameraClass",
Layout {
size: size_of::<ArvGvFakeCameraClass>(),
alignment: align_of::<ArvGvFakeCameraClass>(),
},
),
(
"ArvGvInterfaceClass",
Layout {
size: size_of::<ArvGvInterfaceClass>(),
alignment: align_of::<ArvGvInterfaceClass>(),
},
),
(
"ArvGvInterfaceFlags",
Layout {
size: size_of::<ArvGvInterfaceFlags>(),
alignment: align_of::<ArvGvInterfaceFlags>(),
},
),
(
"ArvGvIpConfigurationMode",
Layout {
size: size_of::<ArvGvIpConfigurationMode>(),
alignment: align_of::<ArvGvIpConfigurationMode>(),
},
),
(
"ArvGvPacketSizeAdjustment",
Layout {
size: size_of::<ArvGvPacketSizeAdjustment>(),
alignment: align_of::<ArvGvPacketSizeAdjustment>(),
},
),
(
"ArvGvStreamClass",
Layout {
size: size_of::<ArvGvStreamClass>(),
alignment: align_of::<ArvGvStreamClass>(),
},
),
(
"ArvGvStreamOption",
Layout {
size: size_of::<ArvGvStreamOption>(),
alignment: align_of::<ArvGvStreamOption>(),
},
),
(
"ArvGvStreamPacketResend",
Layout {
size: size_of::<ArvGvStreamPacketResend>(),
alignment: align_of::<ArvGvStreamPacketResend>(),
},
),
(
"ArvGvStreamSocketBuffer",
Layout {
size: size_of::<ArvGvStreamSocketBuffer>(),
alignment: align_of::<ArvGvStreamSocketBuffer>(),
},
),
(
"ArvInterface",
Layout {
size: size_of::<ArvInterface>(),
alignment: align_of::<ArvInterface>(),
},
),
(
"ArvInterfaceClass",
Layout {
size: size_of::<ArvInterfaceClass>(),
alignment: align_of::<ArvInterfaceClass>(),
},
),
(
"ArvPixelFormat",
Layout {
size: size_of::<ArvPixelFormat>(),
alignment: align_of::<ArvPixelFormat>(),
},
),
(
"ArvRangeCheckPolicy",
Layout {
size: size_of::<ArvRangeCheckPolicy>(),
alignment: align_of::<ArvRangeCheckPolicy>(),
},
),
(
"ArvRegisterCachePolicy",
Layout {
size: size_of::<ArvRegisterCachePolicy>(),
alignment: align_of::<ArvRegisterCachePolicy>(),
},
),
(
"ArvStream",
Layout {
size: size_of::<ArvStream>(),
alignment: align_of::<ArvStream>(),
},
),
(
"ArvStreamCallbackType",
Layout {
size: size_of::<ArvStreamCallbackType>(),
alignment: align_of::<ArvStreamCallbackType>(),
},
),
(
"ArvStreamClass",
Layout {
size: size_of::<ArvStreamClass>(),
alignment: align_of::<ArvStreamClass>(),
},
),
(
"ArvUvDeviceClass",
Layout {
size: size_of::<ArvUvDeviceClass>(),
alignment: align_of::<ArvUvDeviceClass>(),
},
),
(
"ArvUvInterfaceClass",
Layout {
size: size_of::<ArvUvInterfaceClass>(),
alignment: align_of::<ArvUvInterfaceClass>(),
},
),
(
"ArvUvStreamClass",
Layout {
size: size_of::<ArvUvStreamClass>(),
alignment: align_of::<ArvUvStreamClass>(),
},
),
(
"ArvUvUsbMode",
Layout {
size: size_of::<ArvUvUsbMode>(),
alignment: align_of::<ArvUvUsbMode>(),
},
),
(
"ArvXmlSchemaClass",
Layout {
size: size_of::<ArvXmlSchemaClass>(),
alignment: align_of::<ArvXmlSchemaClass>(),
},
),
(
"ArvXmlSchemaError",
Layout {
size: size_of::<ArvXmlSchemaError>(),
alignment: align_of::<ArvXmlSchemaError>(),
},
),
];
const RUST_CONSTANTS: &[(&str, &str)] = &[
("(gint) ARV_ACCESS_CHECK_POLICY_DEFAULT", "0"),
("(gint) ARV_ACCESS_CHECK_POLICY_DISABLE", "0"),
("(gint) ARV_ACCESS_CHECK_POLICY_ENABLE", "1"),
("(gint) ARV_ACQUISITION_MODE_CONTINUOUS", "0"),
("(gint) ARV_ACQUISITION_MODE_MULTI_FRAME", "2"),
("(gint) ARV_ACQUISITION_MODE_SINGLE_FRAME", "1"),
("(gint) ARV_AUTO_CONTINUOUS", "2"),
("(gint) ARV_AUTO_OFF", "0"),
("(gint) ARV_AUTO_ONCE", "1"),
("(gint) ARV_BUFFER_PART_DATA_TYPE_2D_IMAGE", "1"),
("(gint) ARV_BUFFER_PART_DATA_TYPE_2D_PLANE_BIPLANAR", "2"),
("(gint) ARV_BUFFER_PART_DATA_TYPE_2D_PLANE_QUADPLANAR", "4"),
("(gint) ARV_BUFFER_PART_DATA_TYPE_2D_PLANE_TRIPLANAR", "3"),
("(gint) ARV_BUFFER_PART_DATA_TYPE_3D_IMAGE", "5"),
("(gint) ARV_BUFFER_PART_DATA_TYPE_3D_PLANE_BIPLANAR", "6"),
("(gint) ARV_BUFFER_PART_DATA_TYPE_3D_PLANE_QUADPLANAR", "8"),
("(gint) ARV_BUFFER_PART_DATA_TYPE_3D_PLANE_TRIPLANAR", "7"),
("(gint) ARV_BUFFER_PART_DATA_TYPE_CHUNK_DATA", "10"),
("(gint) ARV_BUFFER_PART_DATA_TYPE_CONFIDENCE_MAP", "9"),
("(gint) ARV_BUFFER_PART_DATA_TYPE_DEVICE_SPECIFIC", "32768"),
("(gint) ARV_BUFFER_PART_DATA_TYPE_JPEG", "11"),
("(gint) ARV_BUFFER_PART_DATA_TYPE_JPEG2000", "12"),
("(gint) ARV_BUFFER_PART_DATA_TYPE_UNKNOWN", "-1"),
("(gint) ARV_BUFFER_PAYLOAD_TYPE_CHUNK_DATA", "4"),
("(gint) ARV_BUFFER_PAYLOAD_TYPE_EXTENDED_CHUNK_DATA", "5"),
("(gint) ARV_BUFFER_PAYLOAD_TYPE_FILE", "3"),
("(gint) ARV_BUFFER_PAYLOAD_TYPE_GENDC_COMPONENT_DATA", "12"),
("(gint) ARV_BUFFER_PAYLOAD_TYPE_GENDC_CONTAINER", "11"),
("(gint) ARV_BUFFER_PAYLOAD_TYPE_H264", "8"),
("(gint) ARV_BUFFER_PAYLOAD_TYPE_IMAGE", "1"),
("(gint) ARV_BUFFER_PAYLOAD_TYPE_JPEG", "6"),
("(gint) ARV_BUFFER_PAYLOAD_TYPE_JPEG2000", "7"),
("(gint) ARV_BUFFER_PAYLOAD_TYPE_MULTIPART", "10"),
("(gint) ARV_BUFFER_PAYLOAD_TYPE_MULTIZONE_IMAGE", "9"),
("(gint) ARV_BUFFER_PAYLOAD_TYPE_NO_DATA", "0"),
("(gint) ARV_BUFFER_PAYLOAD_TYPE_RAWDATA", "2"),
("(gint) ARV_BUFFER_PAYLOAD_TYPE_UNKNOWN", "-1"),
("(gint) ARV_BUFFER_STATUS_ABORTED", "7"),
("(gint) ARV_BUFFER_STATUS_CLEARED", "1"),
("(gint) ARV_BUFFER_STATUS_FILLING", "6"),
("(gint) ARV_BUFFER_STATUS_MISSING_PACKETS", "3"),
("(gint) ARV_BUFFER_STATUS_PAYLOAD_NOT_SUPPORTED", "8"),
("(gint) ARV_BUFFER_STATUS_SIZE_MISMATCH", "5"),
("(gint) ARV_BUFFER_STATUS_SUCCESS", "0"),
("(gint) ARV_BUFFER_STATUS_TIMEOUT", "2"),
("(gint) ARV_BUFFER_STATUS_UNKNOWN", "-1"),
("(gint) ARV_BUFFER_STATUS_WRONG_PACKET_ID", "4"),
("(gint) ARV_CHUNK_PARSER_ERROR_BUFFER_NOT_FOUND", "1"),
("(gint) ARV_CHUNK_PARSER_ERROR_CHUNK_NOT_FOUND", "2"),
("(gint) ARV_CHUNK_PARSER_ERROR_INVALID_FEATURE_TYPE", "0"),
("(gint) ARV_COMPONENT_SELECTION_FLAGS_DISABLE", "2"),
("(gint) ARV_COMPONENT_SELECTION_FLAGS_ENABLE", "1"),
("(gint) ARV_COMPONENT_SELECTION_FLAGS_ENABLE_ALL", "4"),
("(gint) ARV_COMPONENT_SELECTION_FLAGS_EXCLUSIVE_ENABLE", "3"),
("(gint) ARV_COMPONENT_SELECTION_FLAGS_NONE", "0"),
("(gint) ARV_DEVICE_ERROR_FEATURE_NOT_FOUND", "1"),
("(gint) ARV_DEVICE_ERROR_GENICAM_NOT_FOUND", "8"),
("(gint) ARV_DEVICE_ERROR_INVALID_PARAMETER", "7"),
("(gint) ARV_DEVICE_ERROR_NOT_CONNECTED", "2"),
("(gint) ARV_DEVICE_ERROR_NOT_CONTROLLER", "10"),
("(gint) ARV_DEVICE_ERROR_NOT_FOUND", "6"),
("(gint) ARV_DEVICE_ERROR_NO_STREAM_CHANNEL", "9"),
("(gint) ARV_DEVICE_ERROR_PROTOCOL_ERROR", "3"),
("(gint) ARV_DEVICE_ERROR_PROTOCOL_ERROR_ACCESS_DENIED", "17"),
("(gint) ARV_DEVICE_ERROR_PROTOCOL_ERROR_BAD_ALIGNMENT", "16"),
("(gint) ARV_DEVICE_ERROR_PROTOCOL_ERROR_BUSY", "18"),
(
"(gint) ARV_DEVICE_ERROR_PROTOCOL_ERROR_INVALID_ADDRESS",
"14",
),
(
"(gint) ARV_DEVICE_ERROR_PROTOCOL_ERROR_INVALID_PARAMETER",
"13",
),
(
"(gint) ARV_DEVICE_ERROR_PROTOCOL_ERROR_NOT_IMPLEMENTED",
"12",
),
("(gint) ARV_DEVICE_ERROR_PROTOCOL_ERROR_WRITE_PROTECT", "15"),
("(gint) ARV_DEVICE_ERROR_TIMEOUT", "5"),
("(gint) ARV_DEVICE_ERROR_TRANSFER_ERROR", "4"),
("(gint) ARV_DEVICE_ERROR_UNKNOWN", "11"),
("(gint) ARV_DEVICE_ERROR_WRONG_FEATURE", "0"),
("(gint) ARV_DOM_NODE_TYPE_ATTRIBUTE_NODE", "2"),
("(gint) ARV_DOM_NODE_TYPE_CDATA_SECTION_NODE", "4"),
("(gint) ARV_DOM_NODE_TYPE_COMMENT_NODE", "8"),
("(gint) ARV_DOM_NODE_TYPE_DOCUMENT_FRAGMENT_NODE", "11"),
("(gint) ARV_DOM_NODE_TYPE_DOCUMENT_NODE", "9"),
("(gint) ARV_DOM_NODE_TYPE_DOCUMENT_TYPE_NODE", "10"),
("(gint) ARV_DOM_NODE_TYPE_ELEMENT_NODE", "1"),
("(gint) ARV_DOM_NODE_TYPE_ENTITY_NODE", "6"),
("(gint) ARV_DOM_NODE_TYPE_ENTITY_REFERENCE_NODE", "5"),
("(gint) ARV_DOM_NODE_TYPE_NOTATION_NODE", "12"),
("(gint) ARV_DOM_NODE_TYPE_PROCESSING_INSTRUCTION_NODE", "7"),
("(gint) ARV_DOM_NODE_TYPE_TEXT_NODE", "3"),
("(gint) ARV_EXPOSURE_MODE_OFF", "0"),
("(gint) ARV_EXPOSURE_MODE_TIMED", "1"),
("(gint) ARV_EXPOSURE_MODE_TRIGGER_CONTROLLED", "3"),
("(gint) ARV_EXPOSURE_MODE_TRIGGER_WIDTH", "2"),
(
"ARV_FAKE_CAMERA_ACQUISITION_FRAME_RATE_DEFAULT",
"25.000000",
),
("ARV_FAKE_CAMERA_BINNING_HORIZONTAL_DEFAULT", "1"),
("ARV_FAKE_CAMERA_BINNING_VERTICAL_DEFAULT", "1"),
("ARV_FAKE_CAMERA_EXPOSURE_TIME_US_DEFAULT", "10000.000000"),
("ARV_FAKE_CAMERA_HEIGHT_DEFAULT", "512"),
("ARV_FAKE_CAMERA_MEMORY_SIZE", "65536"),
("ARV_FAKE_CAMERA_REGISTER_ACQUISITION", "292"),
(
"ARV_FAKE_CAMERA_REGISTER_ACQUISITION_FRAME_PERIOD_US",
"312",
),
("ARV_FAKE_CAMERA_REGISTER_ACQUISITION_MODE", "300"),
("ARV_FAKE_CAMERA_REGISTER_ACQUISITION_START_OFFSET", "32"),
("ARV_FAKE_CAMERA_REGISTER_BINNING_HORIZONTAL", "264"),
("ARV_FAKE_CAMERA_REGISTER_BINNING_VERTICAL", "268"),
("ARV_FAKE_CAMERA_REGISTER_EXPOSURE_TIME_US", "288"),
("ARV_FAKE_CAMERA_REGISTER_FRAME_START_OFFSET", "0"),
("ARV_FAKE_CAMERA_REGISTER_GAIN_MODE", "276"),
("ARV_FAKE_CAMERA_REGISTER_GAIN_RAW", "272"),
("ARV_FAKE_CAMERA_REGISTER_HEIGHT", "260"),
("ARV_FAKE_CAMERA_REGISTER_PIXEL_FORMAT", "296"),
("ARV_FAKE_CAMERA_REGISTER_SENSOR_HEIGHT", "280"),
("ARV_FAKE_CAMERA_REGISTER_SENSOR_WIDTH", "284"),
("ARV_FAKE_CAMERA_REGISTER_TEST", "496"),
("ARV_FAKE_CAMERA_REGISTER_TRIGGER_ACTIVATION", "776"),
("ARV_FAKE_CAMERA_REGISTER_TRIGGER_MODE", "768"),
("ARV_FAKE_CAMERA_REGISTER_TRIGGER_SOFTWARE", "780"),
("ARV_FAKE_CAMERA_REGISTER_TRIGGER_SOURCE", "772"),
("ARV_FAKE_CAMERA_REGISTER_WIDTH", "256"),
("ARV_FAKE_CAMERA_REGISTER_X_OFFSET", "304"),
("ARV_FAKE_CAMERA_REGISTER_Y_OFFSET", "308"),
("ARV_FAKE_CAMERA_SENSOR_HEIGHT", "2048"),
("ARV_FAKE_CAMERA_SENSOR_WIDTH", "2048"),
("ARV_FAKE_CAMERA_TEST_REGISTER_DEFAULT", "305419896"),
("ARV_FAKE_CAMERA_WIDTH_DEFAULT", "512"),
("(gint) ARV_GC_ACCESS_MODE_RO", "0"),
("(gint) ARV_GC_ACCESS_MODE_RW", "2"),
("(gint) ARV_GC_ACCESS_MODE_UNDEFINED", "-1"),
("(gint) ARV_GC_ACCESS_MODE_WO", "1"),
("(gint) ARV_GC_CACHABLE_NO_CACHE", "0"),
("(gint) ARV_GC_CACHABLE_UNDEFINED", "-1"),
("(gint) ARV_GC_CACHABLE_WRITE_AROUND", "2"),
("(gint) ARV_GC_CACHABLE_WRITE_THROUGH", "1"),
("(gint) ARV_GC_DISPLAY_NOTATION_AUTOMATIC", "0"),
("(gint) ARV_GC_DISPLAY_NOTATION_FIXED", "1"),
("(gint) ARV_GC_DISPLAY_NOTATION_SCIENTIFIC", "2"),
("(gint) ARV_GC_DISPLAY_NOTATION_UNDEFINED", "-1"),
("(gint) ARV_GC_ERROR_EMPTY_ENUMERATION", "3"),
("(gint) ARV_GC_ERROR_ENUM_ENTRY_NOT_FOUND", "8"),
("(gint) ARV_GC_ERROR_GET_AS_STRING_UNDEFINED", "12"),
("(gint) ARV_GC_ERROR_INVALID_BIT_RANGE", "13"),
("(gint) ARV_GC_ERROR_INVALID_LENGTH", "9"),
("(gint) ARV_GC_ERROR_INVALID_PVALUE", "2"),
("(gint) ARV_GC_ERROR_INVALID_SYNTAX", "14"),
("(gint) ARV_GC_ERROR_NODE_NOT_FOUND", "7"),
("(gint) ARV_GC_ERROR_NO_DEVICE_SET", "5"),
("(gint) ARV_GC_ERROR_NO_EVENT_IMPLEMENTATION", "6"),
("(gint) ARV_GC_ERROR_OUT_OF_RANGE", "4"),
("(gint) ARV_GC_ERROR_PROPERTY_NOT_DEFINED", "0"),
("(gint) ARV_GC_ERROR_PVALUE_NOT_DEFINED", "1"),
("(gint) ARV_GC_ERROR_READ_ONLY", "10"),
("(gint) ARV_GC_ERROR_SET_FROM_STRING_UNDEFINED", "11"),
("(gint) ARV_GC_IS_LINEAR_NO", "0"),
("(gint) ARV_GC_IS_LINEAR_UNDEFINED", "-1"),
("(gint) ARV_GC_IS_LINEAR_YES", "1"),
("(gint) ARV_GC_NAME_SPACE_CUSTOM", "1"),
("(gint) ARV_GC_NAME_SPACE_STANDARD", "0"),
("(gint) ARV_GC_NAME_SPACE_UNDEFINED", "-1"),
("(gint) ARV_GC_PROPERTY_NODE_TYPE_ACCESS_MODE", "24"),
("(gint) ARV_GC_PROPERTY_NODE_TYPE_ADDRESS", "2"),
("(gint) ARV_GC_PROPERTY_NODE_TYPE_BIT", "32"),
("(gint) ARV_GC_PROPERTY_NODE_TYPE_CACHABLE", "26"),
("(gint) ARV_GC_PROPERTY_NODE_TYPE_CHUNK_ID", "34"),
("(gint) ARV_GC_PROPERTY_NODE_TYPE_COMMAND_VALUE", "33"),
("(gint) ARV_GC_PROPERTY_NODE_TYPE_CONSTANT", "23"),
("(gint) ARV_GC_PROPERTY_NODE_TYPE_DESCRIPTION", "3"),
("(gint) ARV_GC_PROPERTY_NODE_TYPE_DISPLAY_NAME", "6"),
("(gint) ARV_GC_PROPERTY_NODE_TYPE_DISPLAY_NOTATION", "13"),
("(gint) ARV_GC_PROPERTY_NODE_TYPE_DISPLAY_PRECISION", "14"),
("(gint) ARV_GC_PROPERTY_NODE_TYPE_ENDIANNESS", "28"),
("(gint) ARV_GC_PROPERTY_NODE_TYPE_EVENT_ID", "35"),
("(gint) ARV_GC_PROPERTY_NODE_TYPE_EXPRESSION", "22"),
("(gint) ARV_GC_PROPERTY_NODE_TYPE_FORMULA", "19"),
("(gint) ARV_GC_PROPERTY_NODE_TYPE_FORMULA_FROM", "21"),
("(gint) ARV_GC_PROPERTY_NODE_TYPE_FORMULA_TO", "20"),
("(gint) ARV_GC_PROPERTY_NODE_TYPE_IMPOSED_ACCESS_MODE", "25"),
("(gint) ARV_GC_PROPERTY_NODE_TYPE_INCREMENT", "10"),
("(gint) ARV_GC_PROPERTY_NODE_TYPE_IS_DEPRECATED", "39"),
("(gint) ARV_GC_PROPERTY_NODE_TYPE_IS_LINEAR", "11"),
("(gint) ARV_GC_PROPERTY_NODE_TYPE_LENGTH", "18"),
("(gint) ARV_GC_PROPERTY_NODE_TYPE_LSB", "30"),
("(gint) ARV_GC_PROPERTY_NODE_TYPE_MAXIMUM", "8"),
("(gint) ARV_GC_PROPERTY_NODE_TYPE_MINIMUM", "7"),
("(gint) ARV_GC_PROPERTY_NODE_TYPE_MSB", "31"),
("(gint) ARV_GC_PROPERTY_NODE_TYPE_OFF_VALUE", "17"),
("(gint) ARV_GC_PROPERTY_NODE_TYPE_ON_VALUE", "16"),
("(gint) ARV_GC_PROPERTY_NODE_TYPE_POLLING_TIME", "27"),
("(gint) ARV_GC_PROPERTY_NODE_TYPE_P_ADDRESS", "1003"),
("(gint) ARV_GC_PROPERTY_NODE_TYPE_P_ALIAS", "1019"),
("(gint) ARV_GC_PROPERTY_NODE_TYPE_P_CAST_ALIAS", "1020"),
("(gint) ARV_GC_PROPERTY_NODE_TYPE_P_COMMAND_VALUE", "1016"),
("(gint) ARV_GC_PROPERTY_NODE_TYPE_P_FEATURE", "1001"),
("(gint) ARV_GC_PROPERTY_NODE_TYPE_P_INCREMENT", "1010"),
("(gint) ARV_GC_PROPERTY_NODE_TYPE_P_INDEX", "1011"),
("(gint) ARV_GC_PROPERTY_NODE_TYPE_P_INVALIDATOR", "1015"),
("(gint) ARV_GC_PROPERTY_NODE_TYPE_P_IS_AVAILABLE", "1006"),
("(gint) ARV_GC_PROPERTY_NODE_TYPE_P_IS_IMPLEMENTED", "1004"),
("(gint) ARV_GC_PROPERTY_NODE_TYPE_P_IS_LOCKED", "1005"),
("(gint) ARV_GC_PROPERTY_NODE_TYPE_P_LENGTH", "1012"),
("(gint) ARV_GC_PROPERTY_NODE_TYPE_P_MAXIMUM", "1009"),
("(gint) ARV_GC_PROPERTY_NODE_TYPE_P_MINIMUM", "1008"),
("(gint) ARV_GC_PROPERTY_NODE_TYPE_P_PORT", "1013"),
("(gint) ARV_GC_PROPERTY_NODE_TYPE_P_SELECTED", "1007"),
("(gint) ARV_GC_PROPERTY_NODE_TYPE_P_UNKNONW", "1000"),
("(gint) ARV_GC_PROPERTY_NODE_TYPE_P_VALUE", "1002"),
("(gint) ARV_GC_PROPERTY_NODE_TYPE_P_VALUE_DEFAULT", "1018"),
("(gint) ARV_GC_PROPERTY_NODE_TYPE_P_VALUE_INDEXED", "1017"),
("(gint) ARV_GC_PROPERTY_NODE_TYPE_P_VARIABLE", "1014"),
("(gint) ARV_GC_PROPERTY_NODE_TYPE_REPRESENTATION", "12"),
("(gint) ARV_GC_PROPERTY_NODE_TYPE_SIGN", "29"),
("(gint) ARV_GC_PROPERTY_NODE_TYPE_SLOPE", "9"),
("(gint) ARV_GC_PROPERTY_NODE_TYPE_STREAMABLE", "38"),
("(gint) ARV_GC_PROPERTY_NODE_TYPE_TOOLTIP", "5"),
("(gint) ARV_GC_PROPERTY_NODE_TYPE_UNIT", "15"),
("(gint) ARV_GC_PROPERTY_NODE_TYPE_UNKNOWN", "0"),
("(gint) ARV_GC_PROPERTY_NODE_TYPE_VALUE", "1"),
("(gint) ARV_GC_PROPERTY_NODE_TYPE_VALUE_DEFAULT", "37"),
("(gint) ARV_GC_PROPERTY_NODE_TYPE_VALUE_INDEXED", "36"),
("(gint) ARV_GC_PROPERTY_NODE_TYPE_VISIBILITY", "4"),
("(gint) ARV_GC_REPRESENTATION_BOOLEAN", "2"),
("(gint) ARV_GC_REPRESENTATION_HEX_NUMBER", "4"),
("(gint) ARV_GC_REPRESENTATION_IPV4_ADDRESS", "5"),
("(gint) ARV_GC_REPRESENTATION_LINEAR", "0"),
("(gint) ARV_GC_REPRESENTATION_LOGARITHMIC", "1"),
("(gint) ARV_GC_REPRESENTATION_MAC_ADDRESS", "6"),
("(gint) ARV_GC_REPRESENTATION_PURE_NUMBER", "3"),
("(gint) ARV_GC_REPRESENTATION_UNDEFINED", "-1"),
("(gint) ARV_GC_SIGNEDNESS_SIGNED", "0"),
("(gint) ARV_GC_SIGNEDNESS_UNDEFINED", "-1"),
("(gint) ARV_GC_SIGNEDNESS_UNSIGNED", "1"),
("(gint) ARV_GC_STREAMABLE_NO", "0"),
("(gint) ARV_GC_STREAMABLE_UNDEFINED", "-1"),
("(gint) ARV_GC_STREAMABLE_YES", "1"),
("(gint) ARV_GC_VISIBILITY_BEGINNER", "3"),
("(gint) ARV_GC_VISIBILITY_EXPERT", "2"),
("(gint) ARV_GC_VISIBILITY_GURU", "1"),
("(gint) ARV_GC_VISIBILITY_INVISIBLE", "0"),
("(gint) ARV_GC_VISIBILITY_UNDEFINED", "-1"),
("ARV_GV_FAKE_CAMERA_DEFAULT_INTERFACE", "127.0.0.1"),
("ARV_GV_FAKE_CAMERA_DEFAULT_SERIAL_NUMBER", "GV01"),
(
"(guint) ARV_GV_INTERFACE_FLAGS_ALLOW_BROADCAST_DISCOVERY_ACK",
"1",
),
("(gint) ARV_GV_IP_CONFIGURATION_MODE_DHCP", "2"),
("(gint) ARV_GV_IP_CONFIGURATION_MODE_FORCE_IP", "4"),
("(gint) ARV_GV_IP_CONFIGURATION_MODE_LLA", "3"),
("(gint) ARV_GV_IP_CONFIGURATION_MODE_NONE", "0"),
("(gint) ARV_GV_IP_CONFIGURATION_MODE_PERSISTENT_IP", "1"),
("(gint) ARV_GV_PACKET_SIZE_ADJUSTMENT_ALWAYS", "4"),
("(gint) ARV_GV_PACKET_SIZE_ADJUSTMENT_DEFAULT", "1"),
("(gint) ARV_GV_PACKET_SIZE_ADJUSTMENT_NEVER", "0"),
("(gint) ARV_GV_PACKET_SIZE_ADJUSTMENT_ONCE", "3"),
("(gint) ARV_GV_PACKET_SIZE_ADJUSTMENT_ON_FAILURE", "2"),
("(gint) ARV_GV_PACKET_SIZE_ADJUSTMENT_ON_FAILURE_ONCE", "1"),
("(guint) ARV_GV_STREAM_OPTION_NONE", "0"),
("(guint) ARV_GV_STREAM_OPTION_PACKET_SOCKET_DISABLED", "1"),
("(gint) ARV_GV_STREAM_PACKET_RESEND_ALWAYS", "1"),
("(gint) ARV_GV_STREAM_PACKET_RESEND_NEVER", "0"),
("(gint) ARV_GV_STREAM_SOCKET_BUFFER_AUTO", "1"),
("(gint) ARV_GV_STREAM_SOCKET_BUFFER_FIXED", "0"),
("ARV_PIXEL_FORMAT_BAYER_BG_10", "17825807"),
("ARV_PIXEL_FORMAT_BAYER_BG_10P", "17432658"),
("ARV_PIXEL_FORMAT_BAYER_BG_10_PACKED", "17563689"),
("ARV_PIXEL_FORMAT_BAYER_BG_12", "17825811"),
("ARV_PIXEL_FORMAT_BAYER_BG_12P", "17563731"),
("ARV_PIXEL_FORMAT_BAYER_BG_12_PACKED", "17563693"),
("ARV_PIXEL_FORMAT_BAYER_BG_16", "17825841"),
("ARV_PIXEL_FORMAT_BAYER_BG_8", "17301515"),
("ARV_PIXEL_FORMAT_BAYER_GB_10", "17825806"),
("ARV_PIXEL_FORMAT_BAYER_GB_10P", "17432660"),
("ARV_PIXEL_FORMAT_BAYER_GB_10_PACKED", "17563688"),
("ARV_PIXEL_FORMAT_BAYER_GB_12", "17825810"),
("ARV_PIXEL_FORMAT_BAYER_GB_12P", "17563733"),
("ARV_PIXEL_FORMAT_BAYER_GB_12_PACKED", "17563692"),
("ARV_PIXEL_FORMAT_BAYER_GB_16", "17825840"),
("ARV_PIXEL_FORMAT_BAYER_GB_8", "17301514"),
("ARV_PIXEL_FORMAT_BAYER_GR_10", "17825804"),
("ARV_PIXEL_FORMAT_BAYER_GR_10P", "17432662"),
("ARV_PIXEL_FORMAT_BAYER_GR_10_PACKED", "17563686"),
("ARV_PIXEL_FORMAT_BAYER_GR_12", "17825808"),
("ARV_PIXEL_FORMAT_BAYER_GR_12P", "17563735"),
("ARV_PIXEL_FORMAT_BAYER_GR_12_PACKED", "17563690"),
("ARV_PIXEL_FORMAT_BAYER_GR_16", "17825838"),
("ARV_PIXEL_FORMAT_BAYER_GR_8", "17301512"),
("ARV_PIXEL_FORMAT_BAYER_RG_10", "17825805"),
("ARV_PIXEL_FORMAT_BAYER_RG_10P", "17432664"),
("ARV_PIXEL_FORMAT_BAYER_RG_10_PACKED", "17563687"),
("ARV_PIXEL_FORMAT_BAYER_RG_12", "17825809"),
("ARV_PIXEL_FORMAT_BAYER_RG_12P", "17563737"),
("ARV_PIXEL_FORMAT_BAYER_RG_12_PACKED", "17563691"),
("ARV_PIXEL_FORMAT_BAYER_RG_16", "17825839"),
("ARV_PIXEL_FORMAT_BAYER_RG_8", "17301513"),
("ARV_PIXEL_FORMAT_BGRA_8_PACKED", "35651607"),
("ARV_PIXEL_FORMAT_BGR_10_PACKED", "36700185"),
("ARV_PIXEL_FORMAT_BGR_12_PACKED", "36700187"),
("ARV_PIXEL_FORMAT_BGR_8_PACKED", "35127317"),
("ARV_PIXEL_FORMAT_COORD3D_ABC_10P", "35520731"),
("ARV_PIXEL_FORMAT_COORD3D_ABC_10P_PLANAR", "35520732"),
("ARV_PIXEL_FORMAT_COORD3D_ABC_12P", "35913950"),
("ARV_PIXEL_FORMAT_COORD3D_ABC_12P_PLANAR", "35913951"),
("ARV_PIXEL_FORMAT_COORD3D_ABC_16", "36700345"),
("ARV_PIXEL_FORMAT_COORD3D_ABC_16_PLANAR", "36700346"),
("ARV_PIXEL_FORMAT_COORD3D_ABC_32F", "39846080"),
("ARV_PIXEL_FORMAT_COORD3D_ABC_32F_PLANAR", "39846081"),
("ARV_PIXEL_FORMAT_COORD3D_ABC_8", "35127474"),
("ARV_PIXEL_FORMAT_COORD3D_ABC_8_PLANAR", "35127475"),
("ARV_PIXEL_FORMAT_COORD3D_AC_10P", "34865392"),
("ARV_PIXEL_FORMAT_COORD3D_AC_10P_PLANAR", "34865393"),
("ARV_PIXEL_FORMAT_COORD3D_AC_12P", "35127538"),
("ARV_PIXEL_FORMAT_COORD3D_AC_12P_PLANAR", "35127539"),
("ARV_PIXEL_FORMAT_COORD3D_AC_16", "35651771"),
("ARV_PIXEL_FORMAT_COORD3D_AC_16_PLANAR", "35651772"),
("ARV_PIXEL_FORMAT_COORD3D_AC_32F", "37748930"),
("ARV_PIXEL_FORMAT_COORD3D_AC_32F_PLANAR", "37748931"),
("ARV_PIXEL_FORMAT_COORD3D_AC_8", "34603188"),
("ARV_PIXEL_FORMAT_COORD3D_AC_8_PLANAR", "34603189"),
("ARV_PIXEL_FORMAT_COORD3D_A_10P", "17432789"),
("ARV_PIXEL_FORMAT_COORD3D_A_12P", "17563864"),
("ARV_PIXEL_FORMAT_COORD3D_A_16", "17825974"),
("ARV_PIXEL_FORMAT_COORD3D_A_32F", "18874557"),
("ARV_PIXEL_FORMAT_COORD3D_A_8", "17301679"),
("ARV_PIXEL_FORMAT_COORD3D_B_10P", "17432790"),
("ARV_PIXEL_FORMAT_COORD3D_B_12P", "17563865"),
("ARV_PIXEL_FORMAT_COORD3D_B_16", "17825975"),
("ARV_PIXEL_FORMAT_COORD3D_B_32F", "18874558"),
("ARV_PIXEL_FORMAT_COORD3D_B_8", "17301680"),
("ARV_PIXEL_FORMAT_COORD3D_C_10P", "17432791"),
("ARV_PIXEL_FORMAT_COORD3D_C_12P", "17563866"),
("ARV_PIXEL_FORMAT_COORD3D_C_16", "17825976"),
("ARV_PIXEL_FORMAT_COORD3D_C_32F", "18874559"),
("ARV_PIXEL_FORMAT_COORD3D_C_8", "17301681"),
("ARV_PIXEL_FORMAT_CUSTOM_BAYER_BG_12_PACKED", "2165047300"),
("ARV_PIXEL_FORMAT_CUSTOM_BAYER_BG_16", "2165309449"),
("ARV_PIXEL_FORMAT_CUSTOM_BAYER_GB_12_PACKED", "2165047299"),
("ARV_PIXEL_FORMAT_CUSTOM_BAYER_GB_16", "2165309448"),
("ARV_PIXEL_FORMAT_CUSTOM_BAYER_GR_12_PACKED", "2165047297"),
("ARV_PIXEL_FORMAT_CUSTOM_BAYER_GR_16", "2165309446"),
("ARV_PIXEL_FORMAT_CUSTOM_BAYER_RG_12_PACKED", "2165047298"),
("ARV_PIXEL_FORMAT_CUSTOM_BAYER_RG_16", "2165309447"),
("ARV_PIXEL_FORMAT_CUSTOM_YUV_422_YUYV_PACKED", "2182086661"),
("ARV_PIXEL_FORMAT_DATA_16", "17826072"),
("ARV_PIXEL_FORMAT_DATA_16S", "17826073"),
("ARV_PIXEL_FORMAT_DATA_32", "18874650"),
("ARV_PIXEL_FORMAT_DATA_32F", "18874652"),
("ARV_PIXEL_FORMAT_DATA_32S", "18874651"),
("ARV_PIXEL_FORMAT_DATA_64", "20971805"),
("ARV_PIXEL_FORMAT_DATA_64F", "20971807"),
("ARV_PIXEL_FORMAT_DATA_64S", "20971806"),
("ARV_PIXEL_FORMAT_DATA_8", "17301782"),
("ARV_PIXEL_FORMAT_DATA_8S", "17301783"),
("ARV_PIXEL_FORMAT_MONO_10", "17825795"),
("ARV_PIXEL_FORMAT_MONO_10_PACKED", "17563652"),
("ARV_PIXEL_FORMAT_MONO_12", "17825797"),
("ARV_PIXEL_FORMAT_MONO_12_PACKED", "17563654"),
("ARV_PIXEL_FORMAT_MONO_14", "17825829"),
("ARV_PIXEL_FORMAT_MONO_16", "17825799"),
("ARV_PIXEL_FORMAT_MONO_8", "17301505"),
("ARV_PIXEL_FORMAT_MONO_8_SIGNED", "17301506"),
("ARV_PIXEL_FORMAT_RGBA_8_PACKED", "35651606"),
("ARV_PIXEL_FORMAT_RGB_10_PACKED", "36700184"),
("ARV_PIXEL_FORMAT_RGB_10_PLANAR", "36700194"),
("ARV_PIXEL_FORMAT_RGB_12_PACKED", "36700186"),
("ARV_PIXEL_FORMAT_RGB_12_PLANAR", "36700195"),
("ARV_PIXEL_FORMAT_RGB_16_PLANAR", "36700196"),
("ARV_PIXEL_FORMAT_RGB_8_PACKED", "35127316"),
("ARV_PIXEL_FORMAT_RGB_8_PLANAR", "35127329"),
("ARV_PIXEL_FORMAT_YUV_411_PACKED", "34340894"),
("ARV_PIXEL_FORMAT_YUV_422_PACKED", "34603039"),
("ARV_PIXEL_FORMAT_YUV_422_YUYV_PACKED", "34603058"),
("ARV_PIXEL_FORMAT_YUV_444_PACKED", "35127328"),
("(gint) ARV_RANGE_CHECK_POLICY_DEBUG", "2"),
("(gint) ARV_RANGE_CHECK_POLICY_DEFAULT", "0"),
("(gint) ARV_RANGE_CHECK_POLICY_DISABLE", "0"),
("(gint) ARV_RANGE_CHECK_POLICY_ENABLE", "1"),
("(gint) ARV_REGISTER_CACHE_POLICY_DEBUG", "2"),
("(gint) ARV_REGISTER_CACHE_POLICY_DEFAULT", "0"),
("(gint) ARV_REGISTER_CACHE_POLICY_DISABLE", "0"),
("(gint) ARV_REGISTER_CACHE_POLICY_ENABLE", "1"),
("(gint) ARV_STREAM_CALLBACK_TYPE_BUFFER_DONE", "3"),
("(gint) ARV_STREAM_CALLBACK_TYPE_EXIT", "1"),
("(gint) ARV_STREAM_CALLBACK_TYPE_INIT", "0"),
("(gint) ARV_STREAM_CALLBACK_TYPE_START_BUFFER", "2"),
("(gint) ARV_UV_USB_MODE_ASYNC", "1"),
("(gint) ARV_UV_USB_MODE_DEFAULT", "1"),
("(gint) ARV_UV_USB_MODE_SYNC", "0"),
("(gint) ARV_XML_SCHEMA_ERROR_INVALID_STRUCTURE", "0"),
];