#![allow(non_upper_case_globals)]
#![allow(non_camel_case_types)]
#![allow(non_snake_case)]
#![allow(deprecated)]
#[cfg(feature = "api-11")]
#[allow(unused_imports)]
use crate::avbuffer::OH_AVBuffer;
#[allow(unused_imports)]
use crate::averrors::OH_AVErrCode;
#[repr(C)]
pub struct OH_AVScreenCapture {
_unused: [u8; 0],
}
#[cfg(feature = "api-12")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
#[repr(C)]
pub struct OH_AVScreenCapture_ContentFilter {
_unused: [u8; 0],
}
impl OH_CaptureMode {
pub const OH_CAPTURE_HOME_SCREEN: OH_CaptureMode = OH_CaptureMode(0);
pub const OH_CAPTURE_SPECIFIED_SCREEN: OH_CaptureMode = OH_CaptureMode(1);
pub const OH_CAPTURE_SPECIFIED_WINDOW: OH_CaptureMode = OH_CaptureMode(2);
pub const OH_CAPTURE_INVAILD: OH_CaptureMode = OH_CaptureMode(-1);
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct OH_CaptureMode(pub ::core::ffi::c_int);
impl OH_AudioCaptureSourceType {
pub const OH_SOURCE_INVALID: OH_AudioCaptureSourceType = OH_AudioCaptureSourceType(-1);
pub const OH_SOURCE_DEFAULT: OH_AudioCaptureSourceType = OH_AudioCaptureSourceType(0);
pub const OH_MIC: OH_AudioCaptureSourceType = OH_AudioCaptureSourceType(1);
pub const OH_ALL_PLAYBACK: OH_AudioCaptureSourceType = OH_AudioCaptureSourceType(2);
pub const OH_APP_PLAYBACK: OH_AudioCaptureSourceType = OH_AudioCaptureSourceType(3);
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct OH_AudioCaptureSourceType(pub ::core::ffi::c_int);
impl OH_AudioCodecFormat {
pub const OH_AUDIO_DEFAULT: OH_AudioCodecFormat = OH_AudioCodecFormat(0);
pub const OH_AAC_LC: OH_AudioCodecFormat = OH_AudioCodecFormat(3);
pub const OH_AUDIO_CODEC_FORMAT_BUTT: OH_AudioCodecFormat = OH_AudioCodecFormat(4);
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct OH_AudioCodecFormat(pub ::core::ffi::c_uint);
impl OH_VideoCodecFormat {
pub const OH_VIDEO_DEFAULT: OH_VideoCodecFormat = OH_VideoCodecFormat(0);
pub const OH_H264: OH_VideoCodecFormat = OH_VideoCodecFormat(2);
pub const OH_H265: OH_VideoCodecFormat = OH_VideoCodecFormat(4);
pub const OH_MPEG4: OH_VideoCodecFormat = OH_VideoCodecFormat(6);
pub const OH_VP8: OH_VideoCodecFormat = OH_VideoCodecFormat(8);
pub const OH_VP9: OH_VideoCodecFormat = OH_VideoCodecFormat(10);
pub const OH_VIDEO_CODEC_FORMAT_BUTT: OH_VideoCodecFormat = OH_VideoCodecFormat(11);
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct OH_VideoCodecFormat(pub ::core::ffi::c_uint);
impl OH_DataType {
pub const OH_ORIGINAL_STREAM: OH_DataType = OH_DataType(0);
pub const OH_ENCODED_STREAM: OH_DataType = OH_DataType(1);
pub const OH_CAPTURE_FILE: OH_DataType = OH_DataType(2);
pub const OH_INVAILD: OH_DataType = OH_DataType(-1);
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct OH_DataType(pub ::core::ffi::c_int);
impl OH_VideoSourceType {
pub const OH_VIDEO_SOURCE_SURFACE_YUV: OH_VideoSourceType = OH_VideoSourceType(0);
pub const OH_VIDEO_SOURCE_SURFACE_ES: OH_VideoSourceType = OH_VideoSourceType(1);
pub const OH_VIDEO_SOURCE_SURFACE_RGBA: OH_VideoSourceType = OH_VideoSourceType(2);
pub const OH_VIDEO_SOURCE_BUTT: OH_VideoSourceType = OH_VideoSourceType(3);
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct OH_VideoSourceType(pub ::core::ffi::c_uint);
impl OH_ContainerFormatType {
pub const CFT_MPEG_4A: OH_ContainerFormatType = OH_ContainerFormatType(0);
pub const CFT_MPEG_4: OH_ContainerFormatType = OH_ContainerFormatType(1);
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct OH_ContainerFormatType(pub ::core::ffi::c_uint);
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OH_AudioCaptureInfo {
pub audioSampleRate: i32,
pub audioChannels: i32,
pub audioSource: OH_AudioCaptureSourceType,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OH_AudioEncInfo {
pub audioBitrate: i32,
pub audioCodecformat: OH_AudioCodecFormat,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OH_AudioInfo {
pub micCapInfo: OH_AudioCaptureInfo,
pub innerCapInfo: OH_AudioCaptureInfo,
pub audioEncInfo: OH_AudioEncInfo,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OH_VideoCaptureInfo {
pub displayId: u64,
pub missionIDs: *mut i32,
pub missionIDsLen: i32,
pub videoFrameWidth: i32,
pub videoFrameHeight: i32,
pub videoSource: OH_VideoSourceType,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OH_VideoEncInfo {
pub videoCodec: OH_VideoCodecFormat,
pub videoBitrate: i32,
pub videoFrameRate: i32,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OH_VideoInfo {
pub videoCapInfo: OH_VideoCaptureInfo,
pub videoEncInfo: OH_VideoEncInfo,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OH_RecorderInfo {
pub url: *mut ::core::ffi::c_char,
pub urlLen: u32,
pub fileFormat: OH_ContainerFormatType,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OH_AVScreenCaptureConfig {
pub captureMode: OH_CaptureMode,
pub dataType: OH_DataType,
pub audioInfo: OH_AudioInfo,
pub videoInfo: OH_VideoInfo,
pub recorderInfo: OH_RecorderInfo,
}
pub type OH_AVScreenCaptureOnError =
::core::option::Option<unsafe extern "C" fn(capture: *mut OH_AVScreenCapture, errorCode: i32)>;
pub type OH_AVScreenCaptureOnAudioBufferAvailable = ::core::option::Option<
unsafe extern "C" fn(
capture: *mut OH_AVScreenCapture,
isReady: bool,
type_: OH_AudioCaptureSourceType,
),
>;
pub type OH_AVScreenCaptureOnVideoBufferAvailable =
::core::option::Option<unsafe extern "C" fn(capture: *mut OH_AVScreenCapture, isReady: bool)>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OH_AVScreenCaptureCallback {
pub onError: OH_AVScreenCaptureOnError,
pub onAudioBufferAvailable: OH_AVScreenCaptureOnAudioBufferAvailable,
pub onVideoBufferAvailable: OH_AVScreenCaptureOnVideoBufferAvailable,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OH_Rect {
pub x: i32,
pub y: i32,
pub width: i32,
pub height: i32,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OH_AudioBuffer {
pub buf: *mut u8,
pub size: i32,
pub timestamp: i64,
pub type_: OH_AudioCaptureSourceType,
}
#[cfg(feature = "api-12")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
impl OH_AVScreenCaptureStateCode {
pub const OH_SCREEN_CAPTURE_STATE_STARTED: OH_AVScreenCaptureStateCode =
OH_AVScreenCaptureStateCode(0);
pub const OH_SCREEN_CAPTURE_STATE_CANCELED: OH_AVScreenCaptureStateCode =
OH_AVScreenCaptureStateCode(1);
pub const OH_SCREEN_CAPTURE_STATE_STOPPED_BY_USER: OH_AVScreenCaptureStateCode =
OH_AVScreenCaptureStateCode(2);
pub const OH_SCREEN_CAPTURE_STATE_INTERRUPTED_BY_OTHER: OH_AVScreenCaptureStateCode =
OH_AVScreenCaptureStateCode(3);
pub const OH_SCREEN_CAPTURE_STATE_STOPPED_BY_CALL: OH_AVScreenCaptureStateCode =
OH_AVScreenCaptureStateCode(4);
pub const OH_SCREEN_CAPTURE_STATE_MIC_UNAVAILABLE: OH_AVScreenCaptureStateCode =
OH_AVScreenCaptureStateCode(5);
pub const OH_SCREEN_CAPTURE_STATE_MIC_MUTED_BY_USER: OH_AVScreenCaptureStateCode =
OH_AVScreenCaptureStateCode(6);
pub const OH_SCREEN_CAPTURE_STATE_MIC_UNMUTED_BY_USER: OH_AVScreenCaptureStateCode =
OH_AVScreenCaptureStateCode(7);
pub const OH_SCREEN_CAPTURE_STATE_ENTER_PRIVATE_SCENE: OH_AVScreenCaptureStateCode =
OH_AVScreenCaptureStateCode(8);
pub const OH_SCREEN_CAPTURE_STATE_EXIT_PRIVATE_SCENE: OH_AVScreenCaptureStateCode =
OH_AVScreenCaptureStateCode(9);
pub const OH_SCREEN_CAPTURE_STATE_STOPPED_BY_USER_SWITCHES: OH_AVScreenCaptureStateCode =
OH_AVScreenCaptureStateCode(10);
}
#[repr(transparent)]
#[cfg(feature = "api-12")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct OH_AVScreenCaptureStateCode(pub ::core::ffi::c_uint);
#[cfg(feature = "api-12")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
impl OH_AVScreenCaptureBufferType {
pub const OH_SCREEN_CAPTURE_BUFFERTYPE_VIDEO: OH_AVScreenCaptureBufferType =
OH_AVScreenCaptureBufferType(0);
pub const OH_SCREEN_CAPTURE_BUFFERTYPE_AUDIO_INNER: OH_AVScreenCaptureBufferType =
OH_AVScreenCaptureBufferType(1);
pub const OH_SCREEN_CAPTURE_BUFFERTYPE_AUDIO_MIC: OH_AVScreenCaptureBufferType =
OH_AVScreenCaptureBufferType(2);
}
#[repr(transparent)]
#[cfg(feature = "api-12")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct OH_AVScreenCaptureBufferType(pub ::core::ffi::c_uint);
#[cfg(feature = "api-12")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
impl OH_AVScreenCaptureFilterableAudioContent {
pub const OH_SCREEN_CAPTURE_NOTIFICATION_AUDIO: OH_AVScreenCaptureFilterableAudioContent =
OH_AVScreenCaptureFilterableAudioContent(0);
pub const OH_SCREEN_CAPTURE_CURRENT_APP_AUDIO: OH_AVScreenCaptureFilterableAudioContent =
OH_AVScreenCaptureFilterableAudioContent(1);
}
#[repr(transparent)]
#[cfg(feature = "api-12")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct OH_AVScreenCaptureFilterableAudioContent(pub ::core::ffi::c_uint);
#[cfg(feature = "api-20")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
impl OH_AVScreenCaptureContentChangedEvent_Enum {
pub const OH_SCREEN_CAPTURE_CONTENT_HIDE: OH_AVScreenCaptureContentChangedEvent_Enum =
OH_AVScreenCaptureContentChangedEvent_Enum(0);
pub const OH_SCREEN_CAPTURE_CONTENT_VISIBLE: OH_AVScreenCaptureContentChangedEvent_Enum =
OH_AVScreenCaptureContentChangedEvent_Enum(1);
pub const OH_SCREEN_CAPTURE_CONTENT_UNAVAILABLE: OH_AVScreenCaptureContentChangedEvent_Enum =
OH_AVScreenCaptureContentChangedEvent_Enum(2);
}
#[repr(transparent)]
#[cfg(feature = "api-20")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct OH_AVScreenCaptureContentChangedEvent_Enum(pub ::core::ffi::c_uint);
#[cfg(feature = "api-20")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
pub use self::OH_AVScreenCaptureContentChangedEvent_Enum as OH_AVScreenCaptureContentChangedEvent;
#[cfg(feature = "api-20")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
impl OH_AVScreenCapture_FillMode {
pub const OH_SCREENCAPTURE_FILLMODE_ASPECT_SCALE_FIT: OH_AVScreenCapture_FillMode =
OH_AVScreenCapture_FillMode(0);
pub const OH_SCREENCAPTURE_FILLMODE_SCALE_TO_FILL: OH_AVScreenCapture_FillMode =
OH_AVScreenCapture_FillMode(1);
}
#[repr(transparent)]
#[cfg(feature = "api-20")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct OH_AVScreenCapture_FillMode(pub ::core::ffi::c_uint);
#[cfg(feature = "api-12")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
pub type OH_AVScreenCapture_OnStateChange = ::core::option::Option<
unsafe extern "C" fn(
capture: *mut OH_AVScreenCapture,
stateCode: OH_AVScreenCaptureStateCode,
userData: *mut ::core::ffi::c_void,
),
>;
#[cfg(feature = "api-12")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
pub type OH_AVScreenCapture_OnError = ::core::option::Option<
unsafe extern "C" fn(
capture: *mut OH_AVScreenCapture,
errorCode: i32,
userData: *mut ::core::ffi::c_void,
),
>;
#[cfg(feature = "api-12")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
pub type OH_AVScreenCapture_OnBufferAvailable = ::core::option::Option<
unsafe extern "C" fn(
capture: *mut OH_AVScreenCapture,
buffer: *mut OH_AVBuffer,
bufferType: OH_AVScreenCaptureBufferType,
timestamp: i64,
userData: *mut ::core::ffi::c_void,
),
>;
#[cfg(feature = "api-15")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-15")))]
pub type OH_AVScreenCapture_OnDisplaySelected = ::core::option::Option<
unsafe extern "C" fn(
capture: *mut OH_AVScreenCapture,
displayId: u64,
userData: *mut ::core::ffi::c_void,
),
>;
#[cfg(feature = "api-20")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
#[repr(C)]
pub struct OH_AVScreenCapture_CaptureStrategy {
_unused: [u8; 0],
}
#[cfg(feature = "api-20")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
pub type OH_AVScreenCapture_OnCaptureContentChanged = ::core::option::Option<
unsafe extern "C" fn(
capture: *mut OH_AVScreenCapture,
event: OH_AVScreenCaptureContentChangedEvent,
area: *mut OH_Rect,
userData: *mut ::core::ffi::c_void,
),
>;
#[cfg(feature = "api-20")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
#[repr(C)]
pub struct OH_AVScreenCapture_UserSelectionInfo {
_unused: [u8; 0],
}
#[cfg(feature = "api-20")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
pub type OH_AVScreenCapture_OnUserSelected = ::core::option::Option<
unsafe extern "C" fn(
capture: *mut OH_AVScreenCapture,
selections: *mut OH_AVScreenCapture_UserSelectionInfo,
userData: *mut ::core::ffi::c_void,
),
>;