Skip to main content

ohos_display_binding/
lib.rs

1use cut_info::DisplayCutInfo;
2use fold_mode::FoldMode;
3use ohos_display_sys::{
4    OH_NativeDisplayManager_CreateDefaultDisplayCutoutInfo,
5    OH_NativeDisplayManager_DestroyDefaultDisplayCutoutInfo,
6    OH_NativeDisplayManager_GetDefaultDisplayDensityDpi,
7    OH_NativeDisplayManager_GetDefaultDisplayDensityPixels,
8    OH_NativeDisplayManager_GetDefaultDisplayDensityXdpi,
9    OH_NativeDisplayManager_GetDefaultDisplayDensityYdpi,
10    OH_NativeDisplayManager_GetDefaultDisplayHeight, OH_NativeDisplayManager_GetDefaultDisplayId,
11    OH_NativeDisplayManager_GetDefaultDisplayOrientation,
12    OH_NativeDisplayManager_GetDefaultDisplayRefreshRate,
13    OH_NativeDisplayManager_GetDefaultDisplayRotation,
14    OH_NativeDisplayManager_GetDefaultDisplayScaledDensity,
15    OH_NativeDisplayManager_GetDefaultDisplayVirtualPixelRatio,
16    OH_NativeDisplayManager_GetDefaultDisplayWidth, OH_NativeDisplayManager_GetFoldDisplayMode,
17    OH_NativeDisplayManager_IsFoldable,
18};
19use orientation::Orientation;
20use rotation::Rotation;
21
22mod cut_info;
23mod event;
24mod fold_mode;
25mod orientation;
26mod rotation;
27
28pub fn default_display_cutout_info() -> DisplayCutInfo {
29    let mut info = std::ptr::null_mut();
30    let ret = unsafe { OH_NativeDisplayManager_CreateDefaultDisplayCutoutInfo(&mut info) };
31    assert_eq!(ret, 0);
32    let cut_info = DisplayCutInfo::from(unsafe { *info });
33    let ret = unsafe { OH_NativeDisplayManager_DestroyDefaultDisplayCutoutInfo(info) };
34    assert_eq!(ret, 0);
35    cut_info
36}
37
38pub fn default_display_density_dpi() -> f32 {
39    let mut dpi = 0;
40    let ret = unsafe { OH_NativeDisplayManager_GetDefaultDisplayDensityDpi(&mut dpi) };
41    assert_eq!(ret, 0);
42    dpi as f32
43}
44
45pub fn default_display_density_pixel() -> f32 {
46    let mut pixel = 0.0;
47    let ret = unsafe { OH_NativeDisplayManager_GetDefaultDisplayDensityPixels(&mut pixel) };
48    assert_eq!(ret, 0);
49    pixel
50}
51
52pub fn default_display_density_x_dpi() -> f32 {
53    let mut x_dpi = 0.0;
54    let ret = unsafe { OH_NativeDisplayManager_GetDefaultDisplayDensityXdpi(&mut x_dpi) };
55    assert_eq!(ret, 0);
56    x_dpi
57}
58
59pub fn default_display_density_y_dpi() -> f32 {
60    let mut y_dpi = 0.0;
61    let ret = unsafe { OH_NativeDisplayManager_GetDefaultDisplayDensityYdpi(&mut y_dpi) };
62    assert_eq!(ret, 0);
63    y_dpi
64}
65
66pub fn default_display_height() -> i32 {
67    let mut height = 0;
68    let ret = unsafe { OH_NativeDisplayManager_GetDefaultDisplayHeight(&mut height) };
69    assert_eq!(ret, 0);
70    height
71}
72
73pub fn default_display_width() -> i32 {
74    let mut width = 0;
75    let ret = unsafe { OH_NativeDisplayManager_GetDefaultDisplayWidth(&mut width) };
76    assert_eq!(ret, 0);
77    width
78}
79
80pub fn default_display_id() -> u64 {
81    let mut id = 0;
82    let ret = unsafe { OH_NativeDisplayManager_GetDefaultDisplayId(&mut id) };
83    assert_eq!(ret, 0);
84    id
85}
86
87pub fn default_display_orientation() -> Orientation {
88    let mut orientation = 0;
89    let ret = unsafe { OH_NativeDisplayManager_GetDefaultDisplayOrientation(&mut orientation) };
90    assert_eq!(ret, 0);
91    Orientation::from(orientation)
92}
93
94pub fn default_display_refresh_rate() -> u32 {
95    let mut rate = 0;
96    let ret = unsafe { OH_NativeDisplayManager_GetDefaultDisplayRefreshRate(&mut rate) };
97    assert_eq!(ret, 0);
98    rate
99}
100
101pub fn default_display_rotation() -> Rotation {
102    let mut rotation = 0;
103    let ret = unsafe { OH_NativeDisplayManager_GetDefaultDisplayRotation(&mut rotation) };
104    assert_eq!(ret, 0);
105    Rotation::from(rotation)
106}
107
108pub fn default_display_scaled_density() -> f32 {
109    let mut density = 0.0;
110    let ret = unsafe { OH_NativeDisplayManager_GetDefaultDisplayScaledDensity(&mut density) };
111    assert_eq!(ret, 0);
112    density
113}
114
115pub fn default_display_virtual_pixel_ratio() -> f32 {
116    let mut ratio = 0.0;
117    let ret = unsafe { OH_NativeDisplayManager_GetDefaultDisplayVirtualPixelRatio(&mut ratio) };
118    assert_eq!(ret, 0);
119    ratio
120}
121
122pub fn fold_display_mode() -> FoldMode {
123    let mut mode = 0;
124    let ret = unsafe { OH_NativeDisplayManager_GetFoldDisplayMode(&mut mode) };
125    assert_eq!(ret, 0);
126    FoldMode::from(mode)
127}
128
129pub fn is_foldable() -> bool {
130    unsafe { OH_NativeDisplayManager_IsFoldable() }
131}