/* automatically generated by rust-bindgen 0.68.1 */

pub const di_gtf_ip_param_DI_GTF_IP_PARAM_V_FRAME_RATE: di_gtf_ip_param = 0;
pub const di_gtf_ip_param_DI_GTF_IP_PARAM_H_FREQ: di_gtf_ip_param = 1;
pub const di_gtf_ip_param_DI_GTF_IP_PARAM_H_PIXELS: di_gtf_ip_param = 2;
#[doc = " Type of frequency parameter used in di_gtf_options.ip_freq_rqd."]
pub type di_gtf_ip_param = ::std::os::raw::c_uint;
#[doc = " Input options for GTF."]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct di_gtf_options {
    pub h_pixels: ::std::os::raw::c_int,
    pub v_lines: ::std::os::raw::c_int,
    pub margins_rqd: bool,
    pub ip_param: di_gtf_ip_param,
    pub ip_freq_rqd: f64,
    pub int_rqd: bool,
    pub m: f64,
    pub c: f64,
    pub k: f64,
    pub j: f64,
}
#[test]
fn bindgen_test_layout_di_gtf_options() {
    const UNINIT: ::std::mem::MaybeUninit<di_gtf_options> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<di_gtf_options>(),
        64usize,
        concat!("Size of: ", stringify!(di_gtf_options))
    );
    assert_eq!(
        ::std::mem::align_of::<di_gtf_options>(),
        8usize,
        concat!("Alignment of ", stringify!(di_gtf_options))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).h_pixels) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(di_gtf_options),
            "::",
            stringify!(h_pixels)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).v_lines) as usize - ptr as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(di_gtf_options),
            "::",
            stringify!(v_lines)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).margins_rqd) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(di_gtf_options),
            "::",
            stringify!(margins_rqd)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).ip_param) as usize - ptr as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(di_gtf_options),
            "::",
            stringify!(ip_param)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).ip_freq_rqd) as usize - ptr as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(di_gtf_options),
            "::",
            stringify!(ip_freq_rqd)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).int_rqd) as usize - ptr as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(di_gtf_options),
            "::",
            stringify!(int_rqd)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).m) as usize - ptr as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(di_gtf_options),
            "::",
            stringify!(m)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).c) as usize - ptr as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(di_gtf_options),
            "::",
            stringify!(c)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).k) as usize - ptr as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(di_gtf_options),
            "::",
            stringify!(k)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).j) as usize - ptr as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(di_gtf_options),
            "::",
            stringify!(j)
        )
    );
}
#[doc = " Output timing data for GTF."]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct di_gtf_timing {
    pub h_pixels: ::std::os::raw::c_int,
    pub v_lines: ::std::os::raw::c_int,
    pub h_sync: ::std::os::raw::c_int,
    pub v_sync: ::std::os::raw::c_int,
    pub h_front_porch: ::std::os::raw::c_int,
    pub h_back_porch: ::std::os::raw::c_int,
    pub v_front_porch: ::std::os::raw::c_int,
    pub v_back_porch: ::std::os::raw::c_int,
    pub h_border: ::std::os::raw::c_int,
    pub v_border: ::std::os::raw::c_int,
    pub pixel_freq_mhz: f64,
}
#[test]
fn bindgen_test_layout_di_gtf_timing() {
    const UNINIT: ::std::mem::MaybeUninit<di_gtf_timing> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<di_gtf_timing>(),
        48usize,
        concat!("Size of: ", stringify!(di_gtf_timing))
    );
    assert_eq!(
        ::std::mem::align_of::<di_gtf_timing>(),
        8usize,
        concat!("Alignment of ", stringify!(di_gtf_timing))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).h_pixels) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(di_gtf_timing),
            "::",
            stringify!(h_pixels)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).v_lines) as usize - ptr as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(di_gtf_timing),
            "::",
            stringify!(v_lines)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).h_sync) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(di_gtf_timing),
            "::",
            stringify!(h_sync)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).v_sync) as usize - ptr as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(di_gtf_timing),
            "::",
            stringify!(v_sync)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).h_front_porch) as usize - ptr as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(di_gtf_timing),
            "::",
            stringify!(h_front_porch)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).h_back_porch) as usize - ptr as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(di_gtf_timing),
            "::",
            stringify!(h_back_porch)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).v_front_porch) as usize - ptr as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(di_gtf_timing),
            "::",
            stringify!(v_front_porch)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).v_back_porch) as usize - ptr as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(di_gtf_timing),
            "::",
            stringify!(v_back_porch)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).h_border) as usize - ptr as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(di_gtf_timing),
            "::",
            stringify!(h_border)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).v_border) as usize - ptr as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(di_gtf_timing),
            "::",
            stringify!(v_border)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).pixel_freq_mhz) as usize - ptr as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(di_gtf_timing),
            "::",
            stringify!(pixel_freq_mhz)
        )
    );
}
extern "C" {
    #[doc = " Compute a timing via the GTF formula."]
    pub fn di_gtf_compute(t: *mut di_gtf_timing, options: *const di_gtf_options);
}
