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