ohos_display_binding/
lib.rs1use 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}