TuyaOS
tkl_display.h
浏览该文件的文档.
1
18#ifndef __TKL_DISPLAY_H__
19#define __TKL_DISPLAY_H__
20
21#include "tuya_cloud_types.h"
22
23#ifdef __cplusplus
24 extern "C" {
25#endif
26
27typedef enum {
28 TKL_DISP_LCD = 0,
29 TKL_DISP_VGA,
30 TKL_DISP_HDMI,
31 TKL_DISP_DP,
32 TKL_DISP_NUM
33} TKL_DISP_PORT_E;
34
35typedef enum {
36 TKL_DISP_PIXEL_FMT_ABGR = 0,
37 TKL_DISP_PIXEL_FMT_RGBX,
38 TKL_DISP_PIXEL_FMT_RGBA,
39 TKL_DISP_PIXEL_FMT_ARGB,
40 TKL_DISP_PIXEL_FMT_RGB565,
41} TKL_DISP_PIXEL_FMT_E;
42
43typedef enum {
44 TKL_DISP_ROTATION_0 = 0,
45 TKL_DISP_ROTATION_90,
46 TKL_DISP_ROTATION_180,
47 TKL_DISP_ROTATION_270
48} TKL_DISP_ROTATION_E;
49
50typedef enum {
51 TKL_DISP_POWER_OFF = 0,
52 TKL_DISP_POWER_ON,
53 TKL_DISP_POWER_NUM
54} TKL_DISP_POWER_MODE_E;
55
56
57typedef union {
58 struct
59 {
60 UINT16_T b : 5;
61 UINT16_T g : 6;
62 UINT16_T r : 5;
63 }c16;
64
65 struct
66 {
67 UINT8_T b;
68 UINT8_T g;
69 UINT8_T r;
70 }c24;
71
72 struct
73 {
74 UINT8_T b;
75 UINT8_T g;
76 UINT8_T r;
77 UINT8_T a;
78 } c32;
79 UINT_T full;
81
82typedef struct
83{
84 INT_T x;
85 INT_T y;
86 INT_T width;
87 INT_T height;
89
90typedef struct
91{
92 void *buffer;
93 TKL_DISP_RECT_S rect;
94 TKL_DISP_PIXEL_FMT_E format;
95 INT_T priority;
97
98
99typedef VOID (*TKL_DISP_VSYNC_CB)(TKL_DISP_PORT_E port, INT64_T timestamp);
100typedef VOID (*TKL_DISP_HOTPLUG_CB)(TKL_DISP_PORT_E port, BOOL_T connected);
101typedef struct {
102 TKL_DISP_VSYNC_CB vsync_cb;
103 TKL_DISP_HOTPLUG_CB hotplug_cb;
105
106typedef struct
107{
108 INT_T width;
109 INT_T height;
110 INT_T bpp;
111 INT_T dpi;
112 INT_T fps;
113 TKL_DISP_PIXEL_FMT_E format;
114 TKL_DISP_ROTATION_E rotation;
116
117typedef struct
118{
119 INT_T device_id;
120 VOID_T *device_info;
121 TKL_DISP_PORT_E device_port;
123
131OPERATE_RET tkl_disp_init(TKL_DISP_DEVICE_S *display_device, TKL_DISP_EVENT_HANDLER_S *event_handler);
132
139OPERATE_RET tkl_disp_deinit(TKL_DISP_DEVICE_S *display_device);
140
148OPERATE_RET tkl_disp_set_info(TKL_DISP_DEVICE_S *display_device, TKL_DISP_INFO_S *info);
149
157OPERATE_RET tkl_disp_get_info(TKL_DISP_DEVICE_S *display_device, TKL_DISP_INFO_S *info);
158
168
177OPERATE_RET tkl_disp_fill(TKL_DISP_DEVICE_S *display_device, TKL_DISP_RECT_S *rect, TKL_DISP_COLOR_U color);
178
185OPERATE_RET tkl_disp_flush(TKL_DISP_DEVICE_S *display_device);
186
193OPERATE_RET tkl_disp_wait_vsync(TKL_DISP_DEVICE_S *display_device);
194
202OPERATE_RET tkl_disp_set_brightness(TKL_DISP_DEVICE_S *display_device, INT_T brightness);
203
211OPERATE_RET tkl_disp_get_brightness(TKL_DISP_DEVICE_S *display_device, INT_T *brightness);
212
220OPERATE_RET tkl_disp_set_power_mode(TKL_DISP_DEVICE_S *display_device, TKL_DISP_POWER_MODE_E power_mode);
221
229OPERATE_RET tkl_disp_get_power_mode(TKL_DISP_DEVICE_S *display_device, TKL_DISP_POWER_MODE_E *power_mode);
230
231
239
248
257
266
267#ifdef __cplusplus
268}
269#endif
270
271#endif
Definition: tkl_display.h:118
Definition: tkl_display.h:101
Definition: tkl_display.h:91
Definition: tkl_display.h:107
Definition: tkl_display.h:83
OPERATE_RET tkl_disp_get_power_mode(TKL_DISP_DEVICE_S *display_device, TKL_DISP_POWER_MODE_E *power_mode)
Gets the display screen's power state
TKL_DISP_FRAMEBUFFER_S * tkl_disp_alloc_framebuffer(TKL_DISP_DEVICE_S *display_device)
Alloc mapped framebuffer or layer
OPERATE_RET tkl_disp_fill(TKL_DISP_DEVICE_S *display_device, TKL_DISP_RECT_S *rect, TKL_DISP_COLOR_U color)
Fill destination area with color
OPERATE_RET tkl_disp_get_brightness(TKL_DISP_DEVICE_S *display_device, INT_T *brightness)
Get display brightness(Backlight or HSB)
OPERATE_RET tkl_disp_set_info(TKL_DISP_DEVICE_S *display_device, TKL_DISP_INFO_S *info)
Set display info
OPERATE_RET tkl_disp_init(TKL_DISP_DEVICE_S *display_device, TKL_DISP_EVENT_HANDLER_S *event_handler)
Init and config display device
OPERATE_RET tkl_disp_get_capabilities(TKL_DISP_DEVICE_S *display_device, TKL_DISP_INFO_S **cfg)
Get capabilities supported by display(For external display device. e.g. HDMI/VGA)
OPERATE_RET tkl_disp_set_power_mode(TKL_DISP_DEVICE_S *display_device, TKL_DISP_POWER_MODE_E power_mode)
Sets the display screen's power state
OPERATE_RET tkl_disp_free_capabilities(TKL_DISP_DEVICE_S *display_device, TKL_DISP_INFO_S *cfg)
Free capabilities get by tkl_disp_get_capabilities()
OPERATE_RET tkl_disp_deinit(TKL_DISP_DEVICE_S *display_device)
Release display device
OPERATE_RET tkl_disp_get_info(TKL_DISP_DEVICE_S *display_device, TKL_DISP_INFO_S *info)
Get display info
VOID_T tkl_disp_free_framebuffer(TKL_DISP_DEVICE_S *display_device, TKL_DISP_FRAMEBUFFER_S *buf)
Free mapped framebuffer or layer
OPERATE_RET tkl_disp_set_brightness(TKL_DISP_DEVICE_S *display_device, INT_T brightness)
Set display brightness(Backlight or HSB)
OPERATE_RET tkl_disp_blit(TKL_DISP_DEVICE_S *display_device, TKL_DISP_FRAMEBUFFER_S *buf, TKL_DISP_RECT_S *rect)
OPERATE_RET tkl_disp_flush(TKL_DISP_DEVICE_S *display_device)
Flush buffers to display device
OPERATE_RET tkl_disp_wait_vsync(TKL_DISP_DEVICE_S *display_device)
Wait for vsync signal
Definition: tkl_display.h:57