• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2023 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 
16 //
17 // Created on 2024/8/6.
18 //
19 // Node APIs are not fully supported. To solve the compilation error of the interface cannot be found,
20 // please include "napi/native_api.h".
21 
22 #ifndef NATIVEWINDOW_USELESS_H
23 #define NATIVEWINDOW_USELESS_H
24 
25 #include "napi/native_api.h"
26 #include <IPCKit/ipc_cparcel.h>
27 #include <bits/alltypes.h>
28 #include <chrono>
29 #include <multimedia/player_framework/native_avcodec_base.h>
30 #include <native_image/native_image.h>
31 #include <native_window/external_window.h>
32 #include <native_buffer/native_buffer.h>
33 
34 class InitNativeWindow {
35 private:
36     int32_t width_ = 0x100;
37     int32_t height_ = 0x100;
38     int32_t usage = NATIVEBUFFER_USAGE_CPU_READ | NATIVEBUFFER_USAGE_CPU_WRITE | NATIVEBUFFER_USAGE_MEM_DMA;
39     OH_NativeImage* _image = nullptr;
40     OHNativeWindow* _nativeWindow = nullptr;
41 
42 public:
InitNativeWindow()43     InitNativeWindow()
44     {
45         _image = OH_ConsumerSurface_Create();
46         if (_image != nullptr) {
47             _nativeWindow = OH_NativeImage_AcquireNativeWindow(_image);
48             if (_nativeWindow != nullptr) {
49                 OH_NativeWindow_NativeWindowHandleOpt(_nativeWindow, SET_BUFFER_GEOMETRY, width_, height_);
50                 OH_NativeWindow_NativeWindowHandleOpt(_nativeWindow, SET_USAGE, usage);
51             } else {
52                 _nativeWindow = nullptr;
53             }
54         } else {
55             _image = nullptr;
56             _nativeWindow = nullptr;
57         }
58     }
~InitNativeWindow()59     ~InitNativeWindow()
60     {
61         _image = nullptr;
62         _nativeWindow = nullptr;
63     }
returnNativeWindow()64     OHNativeWindow* returnNativeWindow()
65     {
66         if (_nativeWindow == nullptr) {
67             return nullptr;
68         } else {
69             return _nativeWindow;
70         }
71     };
returnNativeImage()72     OH_NativeImage* returnNativeImage()
73     {
74         if (_image == nullptr) {
75             return nullptr;
76         } else {
77             return _image;
78         }
79     }
80 };
81 
82 napi_value testNativeWindowCreateNativeWindowNullptr(napi_env env, napi_callback_info info);
83 napi_value testNativeWindowDestroyNativeWindowNullptr(napi_env env, napi_callback_info info);
84 napi_value testNativeWindowGetSurfaceIdNullptr(napi_env env, napi_callback_info info);
85 
86 napi_value testNativeWindowCreateNativeWindowFromSurfaceIdNullptr(napi_env env, napi_callback_info info);
87 napi_value testNativeWindowCreateNativeWindowFromSurfaceIdNormal(napi_env env, napi_callback_info info);
88 napi_value testNativeWindowCreateNativeWindowFromSurfaceIdSurfaceId(napi_env env, napi_callback_info info);
89 napi_value testNativeWindowCreateNativeWindowBufferFromNativeBufferNullptr(napi_env env, napi_callback_info info);
90 
91 napi_value testNativeWindowCreateNativeWindowBufferFromSurfaceBufferNullptr(napi_env env, napi_callback_info info);
92 napi_value testNativeWindowDestroyNativeWindowBufferNullptr(napi_env env, napi_callback_info info);
93 napi_value testNativeWindowGetBufferHandleFromNativeNullptr(napi_env env, napi_callback_info info);
94 napi_value testNativeWindowCreateNativeWindowBufferFromNativeBufferNormal(napi_env env, napi_callback_info info);
95 napi_value testNativeWindowCreateNativeWindowBufferFromNativeBufferMuch(napi_env env, napi_callback_info info);
96 
97 napi_value testNativeWindowNativeWindowRequestBufferNullptr(napi_env env, napi_callback_info info);
98 napi_value testNativeWindowNativeWindowAbortBufferNullptr(napi_env env, napi_callback_info info);
99 napi_value testNativeWindowNativeWindowRequestAbortBufferNormal(napi_env env, napi_callback_info info);
100 napi_value testNativeWindowNativeWindowRequestAbortBufferAbnormal(napi_env env, napi_callback_info info);
101 napi_value testNativeWindowNativeWindowRequestBufferFenceFdNormal(napi_env env, napi_callback_info info);
102 napi_value testNativeWindowNativeWindowRequestBufferFenceFdAbnormal(napi_env env, napi_callback_info info);
103 napi_value testNativeWindowNativeWindowRequestAbortBufferMax(napi_env env, napi_callback_info info);
104 napi_value testNativeWindowNativeWindowRequestAbortBufferErrorCode(napi_env env, napi_callback_info info);
105 
106 napi_value testNativeWindowWriteToParcelErrptr(napi_env env, napi_callback_info info);
107 napi_value testNativeWindowReadFromParcelErrptr(napi_env env, napi_callback_info info);
108 napi_value testNativeWindowWRParcelNormal(napi_env env, napi_callback_info info);
109 napi_value testNativeWindowWriteToParcelAbNormal(napi_env env, napi_callback_info info);
110 napi_value testNativeWindowReadFromParcelAbNormal(napi_env env, napi_callback_info info);
111 napi_value testNativeWindowWRParcelDifferent(napi_env env, napi_callback_info info);
112 
113 napi_value testNativeWindowNativeWindowFlushBufferNullptr(napi_env env, napi_callback_info info);
114 napi_value testNativeWindowNativeWindowFlushBufferNormal(napi_env env, napi_callback_info info);
115 napi_value testNativeWindowNativeWindowFlushBufferAbnormal(napi_env env, napi_callback_info info);
116 napi_value testNativeWindowNativeWindowFlushBufferErrorCode(napi_env env, napi_callback_info info);
117 
118 napi_value testNativeWindowGetLastFlushedBufferV2Nullptr(napi_env env, napi_callback_info info);
119 napi_value testNativeWindowGetLastFlushedBufferNullptr(napi_env env, napi_callback_info info);
120 napi_value testNativeWindowGetLastFlushedBufferV2Normal(napi_env env, napi_callback_info info);
121 napi_value testNativeWindowGetLastFlushedBufferNormal(napi_env env, napi_callback_info info);
122 napi_value testNativeWindowGetLastFlushedBufferV2ErrorCode(napi_env env, napi_callback_info info);
123 
124 napi_value testNativeWindowSetBufferHold(napi_env env, napi_callback_info info);
125 napi_value testNativeWindowGetNativeObjectMagicNullptr(napi_env env, napi_callback_info info);
126 napi_value testNativeWindowGetNativeObjectMagicNormal(napi_env env, napi_callback_info info);
127 napi_value testNativeWindowNativeObjectReferenceNullptr(napi_env env, napi_callback_info info);
128 napi_value testNativeWindowNativeObjectReferenceNormal(napi_env env, napi_callback_info info);
129 napi_value testNativeWindowNativeObjectUnreferenceNullptr(napi_env env, napi_callback_info info);
130 napi_value testNativeWindowNativeObjectUnreferenceNormal(napi_env env, napi_callback_info info);
131 napi_value testNativeWindowNativeWindowAttachBufferNullptr(napi_env env, napi_callback_info info);
132 napi_value testNativeWindowNativeWindowDetachBufferNullptr(napi_env env, napi_callback_info info);
133 napi_value testNativeWindowNativeWindowDetachBufferNormal(napi_env env, napi_callback_info info);
134 napi_value testNativeWindowNativeWindowAttachBufferErrorCode(napi_env env, napi_callback_info info);
135 
136 napi_value testNativeWindowNativeWindowAttachBufferNormal(napi_env env, napi_callback_info info);
137 napi_value testNativeWindowNativeWindowDetachBufferErrorCode(napi_env env, napi_callback_info info);
138 
139 napi_value testNativeWindowNativeWindowAtDetachDifferentBufferNormal(napi_env env, napi_callback_info info);
140 napi_value testNativeWindowNativeWindowAtDetachDifferentBufferAbnormal(napi_env env, napi_callback_info info);
141 napi_value testNativeWindowNativeWindowHandleOptNullptr(napi_env env, napi_callback_info info);
142 napi_value testNativeWindowNativeWindowHandleOptSetGetBufferGeometryNormal(napi_env env, napi_callback_info info);
143 napi_value testNativeWindowNativeWindowHandleOptSetGetBufferGeometryAbnormal(napi_env env, napi_callback_info info);
144 
145 // Native Window 2
146 napi_value testNativeWindowNativeWindowHandleOptSetGetFormatNormal(napi_env env, napi_callback_info info);
147 napi_value testNativeWindowNativeWindowHandleOptSetGetFormatAbnormal(napi_env env, napi_callback_info info);
148 napi_value testNativeWindowNativeWindowHandleOptSetGetUsageNormal(napi_env env, napi_callback_info info);
149 napi_value testNativeWindowNativeWindowHandleOptSetGetUsageAbnormal(napi_env env, napi_callback_info info);
150 napi_value testNativeWindowNativeWindowHandleOptSetGetStrideNormal(napi_env env, napi_callback_info info);
151 napi_value testNativeWindowNativeWindowHandleOptSetGetStrideAbnormal(napi_env env, napi_callback_info info);
152 napi_value testNativeWindowNativeWindowHandleOptSetGetSwapIntervalNormal(napi_env env, napi_callback_info info);
153 napi_value testNativeWindowNativeWindowHandleOptSetGetSwapIntervalAbnormal(napi_env env, napi_callback_info info);
154 napi_value testNativeWindowNativeWindowHandleOptSetGetColorGamutNormal(napi_env env, napi_callback_info info);
155 napi_value testNativeWindowNativeWindowHandleOptSetGetColorGamutAbnormal(napi_env env, napi_callback_info info);
156 napi_value testNativeWindowNativeWindowHandleOptSetGetTransformNormal(napi_env env, napi_callback_info info);
157 napi_value testNativeWindowNativeWindowHandleOptSetGetTransformAbnormal(napi_env env, napi_callback_info info);
158 napi_value testNativeWindowNativeWindowHandleOptSetUiTimeStampNormal(napi_env env, napi_callback_info info);
159 napi_value testNativeWindowNativeWindowHandleOptSetUiTimeStampAbnormal(napi_env env, napi_callback_info info);
160 napi_value testNativeWindowNativeWindowHandleOptGetBufferQueueSize(napi_env env, napi_callback_info info);
161 napi_value testNativeWindowNativeWindowHandleOptSetHdrWhitePointBrightnessNormal(napi_env env, napi_callback_info info);
162 napi_value testNativeWindowNativeWindowHandleOptSetHdrWhitePointBrightnessAbnormal(napi_env env,
163                                                                                    napi_callback_info info);
164 napi_value testNativeWindowNativeWindowHandleOptSetSdrWhitePointBrightnessNormal(napi_env env, napi_callback_info info);
165 napi_value testNativeWindowNativeWindowHandleOptSetSdrWhitePointBrightnessAbnormal(napi_env env,
166                                                                                    napi_callback_info info);
167 napi_value testNativeWindowNativeWindowHandleOptSetGetSourceTypeNormal(napi_env env, napi_callback_info info);
168 napi_value testNativeWindowNativeWindowHandleOptSetGetSourceTypeAbnormal(napi_env env, napi_callback_info info);
169 napi_value testNativeWindowNativeWindowHandleOptSetGetAppFrameworkTypeNormal(napi_env env, napi_callback_info info);
170 napi_value testNativeWindowNativeWindowHandleOptSetGetAppFrameworkTypeAbnormal(napi_env env, napi_callback_info info);
171 napi_value testNativeWindowNativeWindowSetSetScalingModeV2Nullptr(napi_env env, napi_callback_info info);
172 napi_value testNativeWindowNativeWindowSetScalingModeV2ScalingMode(napi_env env, napi_callback_info info);
173 napi_value testNativeWindowGetColorSpaceFirst(napi_env env, napi_callback_info info);
174 napi_value testNativeWindowSetColorSpaceNormal(napi_env env, napi_callback_info info);
175 napi_value testNativeWindowSetColorSpaceNullptr(napi_env env, napi_callback_info info);
176 napi_value testNativeWindowGetColorSpaceNullptr(napi_env env, napi_callback_info info);
177 napi_value testNativeWindowSetColorSpaceAbnormal(napi_env env, napi_callback_info info);
178 napi_value testNativeWindowGetMetadataValueFirst(napi_env env, napi_callback_info info);
179 napi_value testNativeWindowSetDynamicMetadataValue(napi_env env, napi_callback_info info);
180 napi_value testNativeWindowSetMetadataValueTimes(napi_env env, napi_callback_info info);
181 napi_value testNativeWindowSetStaticMetadataValue(napi_env env, napi_callback_info info);
182 napi_value testNativeWindowSetMetadataValue(napi_env env, napi_callback_info info);
183 napi_value testNativeWindowSetNullMetadataValue(napi_env env, napi_callback_info info);
184 napi_value testNativeWindowSetMetadataValueNullptr(napi_env env, napi_callback_info info);
185 napi_value testNativeWindowGetMetadataValueAbnormal(napi_env env, napi_callback_info info);
186 napi_value testNativeWindowGetMetadataValueNullptr(napi_env env, napi_callback_info info);
187 napi_value testNativeWindowNativeWindowHandleOptSetDesiredPresentTimeStampNormal(napi_env env,
188                                                                                  napi_callback_info info);
189 napi_value testNativeWindowNativeWindowHandleOptSetDesiredPresentTimeStampAbNormal(napi_env env,
190                                                                                    napi_callback_info info);
191 napi_value testNativeWindowSetMetadataValue_metadata_type(napi_env env, napi_callback_info info);
192 napi_value testNativeWindowCreateNativeWindow(napi_env env, napi_callback_info info);
193 napi_value testNativeWindowNativeWindowSetSetScalingMode(napi_env env, napi_callback_info info);
194 napi_value testNativeWindowNativeWindowSetMetaData(napi_env env, napi_callback_info info);
195 napi_value testNativeWindowNativeWindowSetMetaDataSet(napi_env env, napi_callback_info info);
196 napi_value testNativeWindowNativeWindowSetTunnelHandle(napi_env env, napi_callback_info info);
197 #endif // NATIVEWINDOW_USELESS_H
198