#![allow(non_upper_case_globals)]
#![allow(non_camel_case_types)]
#![allow(non_snake_case)]
#[repr(C)]
#[derive(Default)]
pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
impl<T> __IncompleteArrayField<T> {
#[inline]
pub const fn new() -> Self {
__IncompleteArrayField(::core::marker::PhantomData, [])
}
#[inline]
pub fn as_ptr(&self) -> *const T {
self as *const _ as *const T
}
#[inline]
pub fn as_mut_ptr(&mut self) -> *mut T {
self as *mut _ as *mut T
}
#[inline]
pub unsafe fn as_slice(&self, len: usize) -> &[T] {
::core::slice::from_raw_parts(self.as_ptr(), len)
}
#[inline]
pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
}
}
impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
fmt.write_str("__IncompleteArrayField")
}
}
#[repr(C)]
#[derive(Debug)]
pub struct BufferHandle {
pub fd: i32,
pub width: i32,
pub stride: i32,
pub height: i32,
pub size: i32,
pub format: i32,
pub usage: u64,
pub virAddr: *mut ::core::ffi::c_void,
pub key: i32,
pub phyAddr: u64,
pub reserveFds: u32,
pub reserveInts: u32,
pub reserve: __IncompleteArrayField<i32>,
}
#[repr(C)]
#[derive(Debug)]
pub struct NativeWindow {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug)]
pub struct NativeWindowBuffer {
_unused: [u8; 0],
}
pub type OHNativeWindow = NativeWindow;
pub type OHNativeWindowBuffer = NativeWindowBuffer;
#[repr(C)]
#[derive(Debug)]
pub struct Region {
pub rects: *mut Region_Rect,
pub rectNumber: i32,
}
#[repr(C)]
#[derive(Debug)]
pub struct Region_Rect {
pub x: i32,
pub y: i32,
pub w: u32,
pub h: u32,
}
pub mod OHScalingMode {
pub type Type = ::core::ffi::c_uint;
pub const OH_SCALING_MODE_FREEZE: Type = 0;
pub const OH_SCALING_MODE_SCALE_TO_WINDOW: Type = 1;
pub const OH_SCALING_MODE_SCALE_CROP: Type = 2;
pub const OH_SCALING_MODE_NO_SCALE_CROP: Type = 3;
}
pub mod OHHDRMetadataKey {
pub type Type = ::core::ffi::c_uint;
pub const OH_METAKEY_RED_PRIMARY_X: Type = 0;
pub const OH_METAKEY_RED_PRIMARY_Y: Type = 1;
pub const OH_METAKEY_GREEN_PRIMARY_X: Type = 2;
pub const OH_METAKEY_GREEN_PRIMARY_Y: Type = 3;
pub const OH_METAKEY_BLUE_PRIMARY_X: Type = 4;
pub const OH_METAKEY_BLUE_PRIMARY_Y: Type = 5;
pub const OH_METAKEY_WHITE_PRIMARY_X: Type = 6;
pub const OH_METAKEY_WHITE_PRIMARY_Y: Type = 7;
pub const OH_METAKEY_MAX_LUMINANCE: Type = 8;
pub const OH_METAKEY_MIN_LUMINANCE: Type = 9;
pub const OH_METAKEY_MAX_CONTENT_LIGHT_LEVEL: Type = 10;
pub const OH_METAKEY_MAX_FRAME_AVERAGE_LIGHT_LEVEL: Type = 11;
pub const OH_METAKEY_HDR10_PLUS: Type = 12;
pub const OH_METAKEY_HDR_VIVID: Type = 13;
}
#[repr(C)]
#[derive(Debug)]
pub struct OHHDRMetaData {
pub key: OHHDRMetadataKey::Type,
pub value: f32,
}
#[repr(C)]
#[derive(Debug)]
pub struct OHExtDataHandle {
pub fd: i32,
pub reserveInts: u32,
pub reserve: __IncompleteArrayField<i32>,
}
extern "C" {
pub fn OH_NativeWindow_CreateNativeWindow(
pSurface: *mut ::core::ffi::c_void,
) -> *mut OHNativeWindow;
}
extern "C" {
pub fn OH_NativeWindow_DestroyNativeWindow(window: *mut OHNativeWindow);
}
extern "C" {
pub fn OH_NativeWindow_CreateNativeWindowBufferFromSurfaceBuffer(
pSurfaceBuffer: *mut ::core::ffi::c_void,
) -> *mut OHNativeWindowBuffer;
}
extern "C" {
pub fn OH_NativeWindow_DestroyNativeWindowBuffer(buffer: *mut OHNativeWindowBuffer);
}
extern "C" {
pub fn OH_NativeWindow_NativeWindowRequestBuffer(
window: *mut OHNativeWindow,
buffer: *mut *mut OHNativeWindowBuffer,
fenceFd: *mut ::core::ffi::c_int,
) -> i32;
}
extern "C" {
pub fn OH_NativeWindow_NativeWindowFlushBuffer(
window: *mut OHNativeWindow,
buffer: *mut OHNativeWindowBuffer,
fenceFd: ::core::ffi::c_int,
region: Region,
) -> i32;
}
extern "C" {
pub fn OH_NativeWindow_NativeWindowAbortBuffer(
window: *mut OHNativeWindow,
buffer: *mut OHNativeWindowBuffer,
) -> i32;
}
extern "C" {
pub fn OH_NativeWindow_NativeWindowHandleOpt(
window: *mut OHNativeWindow,
code: ::core::ffi::c_int,
...
) -> i32;
}
extern "C" {
pub fn OH_NativeWindow_GetBufferHandleFromNative(
buffer: *mut OHNativeWindowBuffer,
) -> *mut BufferHandle;
}
extern "C" {
pub fn OH_NativeWindow_NativeObjectReference(obj: *mut ::core::ffi::c_void) -> i32;
}
extern "C" {
pub fn OH_NativeWindow_NativeObjectUnreference(obj: *mut ::core::ffi::c_void) -> i32;
}
extern "C" {
pub fn OH_NativeWindow_GetNativeObjectMagic(obj: *mut ::core::ffi::c_void) -> i32;
}
extern "C" {
pub fn OH_NativeWindow_NativeWindowSetScalingMode(
window: *mut OHNativeWindow,
sequence: u32,
scalingMode: OHScalingMode::Type,
) -> i32;
}
extern "C" {
pub fn OH_NativeWindow_NativeWindowSetMetaData(
window: *mut OHNativeWindow,
sequence: u32,
size: i32,
metaData: *const OHHDRMetaData,
) -> i32;
}
extern "C" {
pub fn OH_NativeWindow_NativeWindowSetMetaDataSet(
window: *mut OHNativeWindow,
sequence: u32,
key: OHHDRMetadataKey::Type,
size: i32,
metaData: *const u8,
) -> i32;
}
extern "C" {
pub fn OH_NativeWindow_NativeWindowSetTunnelHandle(
window: *mut OHNativeWindow,
handle: *const OHExtDataHandle,
) -> i32;
}