• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright (c) 2022 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 *     http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16package ohos.hdi.display.composer.v1_0;
17sequenceable OHOS.HDI.Display.BufferHandleParcelable;
18sequenceable OHOS.HDI.Display.HdifdParcelable;
19
20enum DispCmd {
21    /* request cmd */
22    REQUEST_CMD_PREPAREDISPLAYLAYERS = 256,
23    REQUEST_CMD_SETDISPLAYCLIENTBUFFER = 257,
24    REQUEST_CMD_SETDISPLAYCLIENTDAMAGE = 258,
25    REQUEST_CMD_COMMIT = 259,
26    REQUEST_CMD_SETLAYERALPHA = 260,
27    REQUEST_CMD_SETLAYERPOSITION = 261,
28    REQUEST_CMD_SETLAYERCROP = 262,
29    REQUEST_CMD_SETLAYERZORDER = 263,
30    REQUEST_CMD_SETLAYERPREMULTI = 264,
31    REQUEST_CMD_SETTRANSFORMMODE = 265,
32    REQUEST_CMD_SETLAYERDIRTYREGION = 266,
33    REQUEST_CMD_SETLAYERVISIBLEREGION = 267,
34    REQUEST_CMD_SETLAYERBUFFER = 268,
35    REQUEST_CMD_SETLAYERCOMPOSITIONTYPE = 269,
36    REQUEST_CMD_SETLAYERBLENDTYPE = 270,
37    REQUEST_CMD_SETLAYERVISIBLE = 271,
38    /* reply cmd */
39    REPLY_CMD_SETERROR = 1024,
40    REPLY_CMD_PREPAREDISPLAYLAYERS = 1025,
41    REPLY_CMD_COMMIT = 1026,
42    /* Pack control cmd */
43    CONTROL_CMD_REQUEST_BEGIN = 8192,
44    CONTROL_CMD_REPLY_BEGIN = 8193,
45    CONTROL_CMD_REQUEST_END = 8194,
46    CONTROL_CMD_REPLY_END = 8195,
47};
48
49enum InterfaceType {
50    DISP_INTF_HDMI = 0,
51    DISP_INTF_LCD = 1,
52    DISP_INTF_BT1120 = 2,
53    DISP_INTF_BT656 = 3,
54    DISP_INTF_YPBPR = 4,
55    DISP_INTF_RGB = 5,
56    DISP_INTF_CVBS = 6,
57    DISP_INTF_SVIDEO = 7,
58    DISP_INTF_VGA = 8,
59    DISP_INTF_MIPI = 9,
60    DISP_INTF_PANEL = 10,
61    DISP_INTF_BUTT = 11,
62};
63
64enum DispErrCode {
65    DISPLAY_SUCCESS = 0,
66    DISPLAY_FAILURE = -1,
67    DISPLAY_FD_ERR = -2,
68    DISPLAY_PARAM_ERR = -3,
69    DISPLAY_NULL_PTR = -4,
70    DISPLAY_NOT_SUPPORT = -5,
71    DISPLAY_NOMEM = -6,
72    DISPLAY_SYS_BUSY = -7,
73    DISPLAY_NOT_PERM = -8,
74};
75
76enum LayerType {
77    LAYER_TYPE_GRAPHIC = 0,
78    LAYER_TYPE_OVERLAY = 1,
79    LAYER_TYPE_SIDEBAND = 2,
80    LAYER_TYPE_CURSOR = 3,
81    LAYER_TYPE_BUTT = 4,
82};
83
84enum BufferUsage {
85    HBM_USE_CPU_READ = ( 1 << 0 ),
86    HBM_USE_CPU_WRITE = ( 1 << 1 ),
87    HBM_USE_MEM_MMZ = ( 1 << 2 ),
88    HBM_USE_MEM_DMA = ( 1 << 3 ),
89    HBM_USE_MEM_SHARE = ( 1 << 4 ),
90    HBM_USE_MEM_MMZ_CACHE = ( 1 << 5 ),
91    HBM_USE_MEM_FB = ( 1 << 6 ),
92    HBM_USE_ASSIGN_SIZE = ( 1 << 7 ),
93};
94
95enum PixelFormat {
96    PIXEL_FMT_CLUT8 = 0,
97    PIXEL_FMT_CLUT1 = 1,
98    PIXEL_FMT_CLUT4 = 2,
99    PIXEL_FMT_RGB_565 = 3,
100    PIXEL_FMT_RGBA_5658 = 4,
101    PIXEL_FMT_RGBX_4444 = 5,
102    PIXEL_FMT_RGBA_4444 = 6,
103    PIXEL_FMT_RGB_444 = 7,
104    PIXEL_FMT_RGBX_5551 = 8,
105    PIXEL_FMT_RGBA_5551 = 9,
106    PIXEL_FMT_RGB_555 = 10,
107    PIXEL_FMT_RGBX_8888 = 11,
108    PIXEL_FMT_RGBA_8888 = 12,
109    PIXEL_FMT_RGB_888 = 13,
110    PIXEL_FMT_BGR_565 = 14,
111    PIXEL_FMT_BGRX_4444 = 15,
112    PIXEL_FMT_BGRA_4444 = 16,
113    PIXEL_FMT_BGRX_5551 = 17,
114    PIXEL_FMT_BGRA_5551 = 18,
115    PIXEL_FMT_BGRX_8888 = 19,
116    PIXEL_FMT_BGRA_8888 = 20,
117    PIXEL_FMT_YUV_422_I = 21,
118    PIXEL_FMT_YCBCR_422_SP = 22,
119    PIXEL_FMT_YCRCB_422_SP = 23,
120    PIXEL_FMT_YCBCR_420_SP = 24,
121    PIXEL_FMT_YCRCB_420_SP = 25,
122    PIXEL_FMT_YCBCR_422_P = 26,
123    PIXEL_FMT_YCRCB_422_P = 27,
124    PIXEL_FMT_YCBCR_420_P = 28,
125    PIXEL_FMT_YCRCB_420_P = 29,
126    PIXEL_FMT_YUYV_422_PKG = 30,
127    PIXEL_FMT_UYVY_422_PKG = 31,
128    PIXEL_FMT_YVYU_422_PKG = 32,
129    PIXEL_FMT_VYUY_422_PKG = 33,
130    PIXEL_FMT_BUTT = 34,
131};
132
133enum TransformType {
134    ROTATE_NONE = 0,
135    ROTATE_90 = 1,
136    ROTATE_180 = 2,
137    ROTATE_270 = 3,
138    ROTATE_BUTT = 4,
139};
140
141enum BlendType {
142    BLEND_NONE = 0,
143    BLEND_CLEAR = 1,
144    BLEND_SRC = 2,
145    BLEND_SRCOVER = 3,
146    BLEND_DSTOVER = 4,
147    BLEND_SRCIN = 5,
148    BLEND_DSTIN = 6,
149    BLEND_SRCOUT = 7,
150    BLEND_DSTOUT = 8,
151    BLEND_SRCATOP = 9,
152    BLEND_DSTATOP = 10,
153    BLEND_ADD = 11,
154    BLEND_XOR = 12,
155    BLEND_DST = 13,
156    BLEND_AKS = 14,
157    BLEND_AKD = 15,
158    BLEND_BUTT = 16,
159};
160
161enum RopType {
162    ROP_BLACK = 0,
163    ROP_NOTMERGEPEN = 1,
164    ROP_MASKNOTPEN = 2,
165    ROP_NOTCOPYPEN = 3,
166    ROP_MASKPENNOT = 4,
167    ROP_NOT = 5,
168    ROP_XORPEN = 6,
169    ROP_NOTMASKPEN = 7,
170    ROP_MASKPEN = 8,
171    ROP_NOTXORPEN = 9,
172    ROP_NOP = 10,
173    ROP_MERGENOTPEN = 11,
174    ROP_COPYPE = 12,
175    ROP_MERGEPENNOT = 13,
176    ROP_MERGEPEN = 14,
177    ROP_WHITE = 15,
178    ROP_BUTT = 16,
179};
180
181enum ColorKey {
182    CKEY_NONE = 0,
183    CKEY_SRC = 1,
184    CKEY_DST = 2,
185    CKEY_BUTT = 3,
186};
187
188enum MirrorType {
189    MIRROR_NONE = 0,
190    MIRROR_LR = 1,
191    MIRROR_TB = 2,
192    MIRROR_BUTT = 3,
193};
194
195enum Connection {
196    CON_INVALID = 0,
197    CONNECTED = 1,
198    DISCONNECTED = 2,
199};
200
201enum DispPowerStatus {
202    POWER_STATUS_ON = 0,
203    POWER_STATUS_STANDBY = 1,
204    POWER_STATUS_SUSPEND = 2,
205    POWER_STATUS_OFF = 3,
206    POWER_STATUS_BUTT = 4,
207};
208
209enum CompositionType {
210    COMPOSITION_CLIENT = 0,
211    COMPOSITION_DEVICE = 1,
212    COMPOSITION_CURSOR = 2,
213    COMPOSITION_VIDEO = 3,
214    COMPOSITION_BUTT = 4,
215};
216
217enum ColorGamut {
218    COLOR_GAMUT_INVALID = -1,
219    COLOR_GAMUT_NATIVE = 0,
220    COLOR_GAMUT_STANDARD_BT601 = 1,
221    COLOR_GAMUT_STANDARD_BT709 = 2,
222    COLOR_GAMUT_DCI_P3 = 3,
223    COLOR_GAMUT_SRGB = 4,
224    COLOR_GAMUT_ADOBE_RGB = 5,
225    COLOR_GAMUT_DISPLAY_P3 = 6,
226    COLOR_GAMUT_BT2020 = 7,
227    COLOR_GAMUT_BT2100_PQ = 8,
228    COLOR_GAMUT_BT2100_HLG = 9,
229    COLOR_GAMUT_DISPLAY_BT2020 = 10,
230};
231
232enum GamutMap {
233    GAMUT_MAP_CONSTANT = 0,
234    GAMUT_MAP_EXPANSION = 1,
235    GAMUT_MAP_HDR_CONSTANT = 2,
236    GAMUT_MAP_HDR_EXPANSION = 3,
237};
238
239enum ColorDataSpace {
240    COLOR_DATA_SPACE_UNKNOWN = 0,
241    GAMUT_BT601 = 1,
242    GAMUT_BT709 = 2,
243    GAMUT_DCI_P3 = 3,
244    GAMUT_SRGB = 4,
245    GAMUT_ADOBE_RGB = 5,
246    GAMUT_DISPLAY_P3 = 6,
247    GAMUT_BT2020 = 7,
248    GAMUT_BT2100_PQ = 8,
249    GAMUT_BT2100_HLG = 9,
250    GAMUT_DISPLAY_BT2020 = 10,
251    TRANSFORM_FUNC_UNSPECIFIED = 256,
252    TRANSFORM_FUNC_LINEAR = 512,
253    TRANSFORM_FUNC_SRGB = 768,
254    TRANSFORM_FUNC_SMPTE_170M = 1024,
255    TRANSFORM_FUNC_GM2_2 = 1280,
256    TRANSFORM_FUNC_GM2_6 = 1536,
257    TRANSFORM_FUNC_GM2_8 = 1792,
258    TRANSFORM_FUNC_ST2084 = 2048,
259    TRANSFORM_FUNC_HLG = 2304,
260    PRECISION_UNSPECIFIED = 65536,
261    PRECISION_FULL = 131072,
262    PRESION_LIMITED = 196608,
263    PRESION_EXTENDED = 262144,
264    BT601_SMPTE170M_FULL = GAMUT_BT601 | TRANSFORM_FUNC_SMPTE_170M | PRECISION_FULL,
265    BT601_SMPTE170M_LIMITED = GAMUT_BT601 | TRANSFORM_FUNC_SMPTE_170M | PRESION_LIMITED,
266    BT709_LINEAR_FULL = GAMUT_BT709 | TRANSFORM_FUNC_LINEAR | PRECISION_FULL,
267    BT709_LINEAR_EXTENDED = GAMUT_BT709 | TRANSFORM_FUNC_LINEAR | PRESION_EXTENDED,
268    BT709_SRGB_FULL = GAMUT_BT709 | TRANSFORM_FUNC_SRGB | PRECISION_FULL,
269    BT709_SRGB_EXTENDED = GAMUT_BT709 | TRANSFORM_FUNC_SRGB | PRESION_EXTENDED,
270    BT709_SMPTE170M_LIMITED = GAMUT_BT709 | TRANSFORM_FUNC_SMPTE_170M | PRESION_LIMITED,
271    DCI_P3_LINEAR_FULL = GAMUT_DCI_P3 | TRANSFORM_FUNC_LINEAR | PRECISION_FULL,
272    DCI_P3_GAMMA26_FULL = GAMUT_DCI_P3 | TRANSFORM_FUNC_GM2_6 | PRECISION_FULL,
273    DISPLAY_P3_LINEAR_FULL = GAMUT_DISPLAY_P3 | TRANSFORM_FUNC_LINEAR | PRECISION_FULL,
274    DCI_P3_SRGB_FULL = GAMUT_DCI_P3 | TRANSFORM_FUNC_SRGB | PRECISION_FULL,
275    ADOBE_RGB_GAMMA22_FULL = GAMUT_ADOBE_RGB | TRANSFORM_FUNC_GM2_2 | PRECISION_FULL,
276    BT2020_LINEAR_FULL = GAMUT_BT2020 | TRANSFORM_FUNC_LINEAR | PRECISION_FULL,
277    BT2020_SRGB_FULL = GAMUT_BT2020 | TRANSFORM_FUNC_SRGB | PRECISION_FULL,
278    BT2020_SMPTE170M_FULL = GAMUT_BT2020 | TRANSFORM_FUNC_SMPTE_170M | PRECISION_FULL,
279    BT2020_ST2084_FULL = GAMUT_BT2020 | TRANSFORM_FUNC_ST2084 | PRECISION_FULL,
280    BT2020_HLG_FULL = GAMUT_BT2020 | TRANSFORM_FUNC_HLG | PRECISION_FULL,
281    BT2020_ST2084_LIMITED = GAMUT_BT2020 | TRANSFORM_FUNC_ST2084 | PRESION_LIMITED,
282};
283
284enum HDRFormat {
285    NOT_SUPPORT_HDR = 0,
286    DOLBY_VISION = 1,
287    HDR10 = 2,
288    HLG = 3,
289    HDR10_PLUS = 4,
290    HDR_VIVID = 5,
291};
292
293enum HDRMetadataKey {
294    MATAKEY_RED_PRIMARY_X = 0,
295    MATAKEY_RED_PRIMARY_Y = 1,
296    MATAKEY_GREEN_PRIMARY_X = 2,
297    MATAKEY_GREEN_PRIMARY_Y = 3,
298    MATAKEY_BLUE_PRIMARY_X = 4,
299    MATAKEY_BLUE_PRIMARY_Y = 5,
300    MATAKEY_WHITE_PRIMARY_X = 6,
301    MATAKEY_WHITE_PRIMARY_Y = 7,
302    MATAKEY_MAX_LUMINANCE = 8,
303    MATAKEY_MIN_LUMINANCE = 9,
304    MATAKEY_MAX_CONTENT_LIGHT_LEVEL = 10,
305    MATAKEY_MAX_FRAME_AVERAGE_LIGHT_LEVEL = 11,
306    MATAKEY_HDR10_PLUS = 12,
307    MATAKEY_HDR_VIVID = 13,
308};
309
310struct HdiBufferHandleInfo {
311    unsigned int seqId;
312    BufferHandleParcelable hdl;
313};
314
315struct HdifdInfo {
316    int id;
317    HdifdParcelable hdiFd;
318};
319
320struct PropertyObject {
321    String name;
322    unsigned int propId;
323    unsigned long value;
324};
325
326struct DisplayCapability {
327    String name;
328    enum InterfaceType type;
329    unsigned int phyWidth;
330    unsigned int phyHeight;
331    unsigned int supportLayers;
332    unsigned int virtualDispCount;
333    boolean supportWriteBack;
334    unsigned int propertyCount;
335    struct PropertyObject[] props;
336};
337
338struct DisplayInfo {
339    unsigned int width;
340    unsigned int height;
341    int rotAngle;
342};
343
344struct LayerInfo {
345    int width;
346    int height;
347    enum LayerType type;
348    int bpp;
349    enum PixelFormat pixFormat;
350};
351
352struct LayerAlpha {
353    boolean enGlobalAlpha;
354    boolean enPixelAlpha;
355    unsigned char alpha0;
356    unsigned char alpha1;
357    unsigned char gAlpha;
358};
359
360struct BufferData {
361    unsigned long phyAddr;
362    unsigned long long virAddr;
363};
364
365struct LayerBuffer {
366    FileDescriptor fenceId;
367    int width;
368    int height;
369    int pitch;
370    enum PixelFormat pixFormat;
371    struct BufferData data;
372    BufferHandleParcelable hdl;
373};
374
375struct IRect {
376    int x;
377    int y;
378    int w;
379    int h;
380};
381
382struct ISurface {
383    unsigned long phyAddr;
384    int height;
385    int width;
386    int stride;
387    enum PixelFormat enColorFmt;
388    boolean bYCbCrClut;
389    boolean bAlphaMax255;
390    boolean bAlphaExt1555;
391    unsigned char alpha0;
392    unsigned char alpha1;
393    unsigned long cbcrPhyAddr;
394    int cbcrStride;
395    unsigned long clutPhyAddr;
396};
397
398struct ILine {
399    int x0;
400    int y0;
401    int x1;
402    int y1;
403    unsigned int color;
404};
405
406struct ICircle {
407    int x;
408    int y;
409    int r;
410    unsigned int color;
411};
412
413struct Rectangle {
414    struct IRect rect;
415    unsigned int color;
416};
417
418struct GfxOpt {
419    boolean enGlobalAlpha;
420    unsigned int globalAlpha;
421    boolean enPixelAlpha;
422    enum BlendType blendType;
423    enum ColorKey colorKeyFrom;
424    boolean enableRop;
425    enum RopType colorRopType;
426    enum RopType alphaRopType;
427    boolean enableScale;
428    enum TransformType rotateType;
429    enum MirrorType mirrorType;
430};
431
432struct DisplayModeInfo {
433    int width;
434    int height;
435    unsigned int freshRate;
436    int id;
437};
438
439struct HDRCapability {
440    unsigned int formatCount;
441    enum HDRFormat[] formats;
442    float maxLum;
443    float maxAverageLum;
444    float minLum;
445};
446
447struct HDRMetaData {
448    enum HDRMetadataKey key;
449    float value;
450};
451
452enum PresentTimestampType {
453    HARDWARE_DISPLAY_PTS_UNSUPPORTED = 0,
454    HARDWARE_DISPLAY_PTS_DELAY = 1 << 0,
455    HARDWARE_DISPLAY_PTS_TIMESTAMP = 1 << 1,
456};
457
458struct PresentTimestamp {
459    enum PresentTimestampType type;
460    long time;
461};
462
463struct ExtDataHandle {
464    int fd;
465    unsigned int reserveInts;
466    int[] reserve;
467};
468
469struct YUVDescInfo {
470    unsigned long baseAddr;
471    unsigned int yOffset;
472    unsigned int uOffset;
473    unsigned int vOffset;
474    unsigned int yStride;
475    unsigned int uvStride;
476    unsigned int uvStep;
477};
478