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 16import { paramMock } from "../utils" 17 18const SizeMock = { 19 height: "[PC Preview] unknow height", 20 width: "[PC Preview] unknow width" 21} 22const ImageInfoMock = { 23 size: SizeMock 24} 25 26export const PixelMapMock = { 27 isEditable: "[PC Preview] unknow isEditable", 28 readPixelsToBuffer: function (...args) { 29 console.warn("PixelMap.readPixelsToBuffer interface mocked in the Previewer. How this interface works on the Previewer" + 30 " may be different from that on a real device.") 31 const len = args.length 32 if (typeof args[len - 1] === 'function') { 33 args[len - 1].call(this, paramMock.businessErrorMock); 34 } else { 35 return new Promise((resolve, reject) => { 36 resolve(); 37 }) 38 } 39 }, 40 readPixels: function (...args) { 41 console.warn("PixelMap.readPixels interface mocked in the Previewer. How this interface works on the Previewer" + 42 " may be different from that on a real device.") 43 const len = args.length 44 if (typeof args[len - 1] === 'function') { 45 args[len - 1].call(this, paramMock.businessErrorMock); 46 } else { 47 return new Promise((resolve, reject) => { 48 resolve(); 49 }) 50 } 51 }, 52 writePixels: function (...args) { 53 console.warn("PixelMap.writePixels interface mocked in the Previewer. How this interface works on the Previewer" + 54 " may be different from that on a real device.") 55 const len = args.length 56 if (typeof args[len - 1] === 'function') { 57 args[len - 1].call(this, paramMock.businessErrorMock); 58 } else { 59 return new Promise((resolve, reject) => { 60 resolve(); 61 }) 62 } 63 }, 64 writeBufferToPixels: function (...args) { 65 console.warn("PixelMap.writeBufferToPixels interface mocked in the Previewer. How this interface works on the Previewer" + 66 " may be different from that on a real device.") 67 const len = args.length 68 if (typeof args[len - 1] === 'function') { 69 args[len - 1].call(this, paramMock.businessErrorMock); 70 } else { 71 return new Promise((resolve, reject) => { 72 resolve(); 73 }) 74 } 75 }, 76 getImageInfo: function (...args) { 77 console.warn("PixelMap.getImageInfo interface mocked in the Previewer. How this interface works on the Previewer" + 78 " may be different from that on a real device.") 79 const len = args.length 80 if (len > 0 && typeof args[len - 1] === 'function') { 81 args[len - 1].call(this, paramMock.businessErrorMock, ImageInfoMock); 82 } else { 83 return new Promise((resolve, reject) => { 84 resolve(ImageInfoMock); 85 }) 86 } 87 }, 88 getBytesNumberPerRow: function (...args) { 89 console.warn("PixelMap.getBytesNumberPerRow interface mocked in the Previewer. How this interface works on the Previewer" + 90 " may be different from that on a real device.") 91 return paramMock.paramNumberMock 92 }, 93 getPixelBytesNumber: function (...args) { 94 console.warn("PixelMap.getPixelBytesNumber interface mocked in the Previewer. How this interface works on the Previewer" + 95 " may be different from that on a real device.") 96 return paramMock.paramNumberMock 97 }, 98 release: function (...args) { 99 console.warn("PixelMap.release interface mocked in the Previewer. How this interface works on the Previewer" + 100 " may be different from that on a real device.") 101 const len = args.length 102 if (len > 0 && typeof args[len - 1] === 'function') { 103 args[len - 1].call(this, paramMock.businessErrorMock); 104 } else { 105 return new Promise((resolve, reject) => { 106 resolve(); 107 }) 108 } 109 } 110} 111 112export function mockMultimediaImage() { 113 const RegionMock = { 114 size: SizeMock, 115 x: "[PC Preview] unknow x", 116 y: "[PC Preview] unknow y" 117 } 118 const PositionAreaMock = { 119 pixels: "[PC Preview] unknow pixels", 120 offset: "[PC Preview] unknow offset", 121 stride: "[PC Preview] unknow stride", 122 region: RegionMock 123 } 124 const PackingOptionMock = { 125 format: "[PC Preview] unknow format", 126 quality: "[PC Preview] unknow quality" 127 } 128 const GetImagePropertyOptionsMock = { 129 index: "[PC Preview] unknow index", 130 defaultValue: "[PC Preview] unknow defaultValue" 131 } 132 const DecodingOptionsMock = { 133 index: "[PC Preview] unknow index", 134 sampleSize: "[PC Preview] unknow sampleSize", 135 rotate: "[PC Preview] unknow rotate", 136 editable: "[PC Preview] unknow editable", 137 desiredSize: SizeMock, 138 desiredRegion: RegionMock, 139 desiredPixelFormat: "[PC Preview] unknow desiredPixelFormat" 140 } 141 const ComponentMock = { 142 componentType: "[PC Preview] unknow componentType", 143 rowStride: "[PC Preview] unknow rowStride", 144 pixelStride: "[PC Preview] unknow pixelStride", 145 byteBuffer: "[PC Preview] unknow pixelStride" 146 } 147 const InitializationOptionsMock = { 148 size: SizeMock, 149 pixelFormat: "[PC Preview] unknow pixelFormat", 150 editable: "[PC Preview] unknow editable", 151 alphaType: "[PC Preview] unknow alphaType", 152 scaleMode: "[PC Preview] unknow scaleMode" 153 } 154 155 const ImageSourceMock = { 156 getImageInfo: function (...args) { 157 console.warn("ImageSource.getImageInfo interface mocked in the Previewer. How this interface works on the" + 158 " Previewer may be different from that on a real device.") 159 const len = args.length 160 if (typeof args[len - 1] === 'function') { 161 args[len - 1].call(this, paramMock.businessErrorMock, ImageInfoMock); 162 } else { 163 return new Promise((resolve, reject) => { 164 resolve(ImageInfoMock); 165 }) 166 } 167 }, 168 release: function (...args) { 169 console.warn("ImageSource.release interface mocked in the Previewer. How this interface works on the Previewer" + 170 " may be different from that on a real device.") 171 const len = args.length 172 if (len > 0 && typeof args[len - 1] === 'function') { 173 args[len - 1].call(this, paramMock.businessErrorMock); 174 } else { 175 return new Promise((resolve, reject) => { 176 resolve(); 177 }) 178 } 179 }, 180 createPixelMap: function (...args) { 181 console.warn("ImageSource.createPixelMap interface mocked in the Previewer. How this interface works on the Previewer" + 182 " may be different from that on a real device.") 183 const len = args.length 184 if (len > 0 && typeof args[len - 1] === 'function') { 185 args[len - 1].call(this, paramMock.businessErrorMock, PixelMapMock); 186 } else { 187 return new Promise((resolve, reject) => { 188 resolve(PixelMapMock); 189 }) 190 } 191 }, 192 getImageProperty: function (...args) { 193 console.warn("ImageSource.getImageProperty interface mocked in the Previewer. How this interface works on the Previewer" + 194 " may be different from that on a real device.") 195 const len = args.length 196 if (len > 0 && typeof args[len - 1] === 'function') { 197 args[len - 1].call(this, paramMock.businessErrorMock, paramMock.paramStringMock); 198 } else { 199 return new Promise((resolve, reject) => { 200 resolve(paramMock.paramStringMock); 201 }) 202 } 203 }, 204 release: function (...args) { 205 console.warn("ImageSource.release interface mocked in the Previewer. How this interface works on the Previewer" + 206 " may be different from that on a real device.") 207 const len = args.length 208 if (len > 0 && typeof args[len - 1] === 'function') { 209 args[len - 1].call(this, paramMock.businessErrorMock); 210 } else { 211 return new Promise((resolve, reject) => { 212 resolve(); 213 }) 214 } 215 }, 216 supportedFormats: "[PC Preview] unknow supportedFormats" 217 } 218 const ImagePackerMock = { 219 packing: function (...args) { 220 console.warn("ImagePacker.packing interface mocked in the Previewer. How this interface works on the Previewer" + 221 " may be different from that on a real device.") 222 const len = args.length 223 if (typeof args[len - 1] === 'function') { 224 args[len - 1].call(this, paramMock.businessErrorMock, paramMock.paramArrayMock); 225 } else { 226 return new Promise((resolve, reject) => { 227 resolve(paramMock.paramArrayMock); 228 }) 229 } 230 }, 231 release: function (...args) { 232 console.warn("ImagePacker.release interface mocked in the Previewer. How this interface works on the Previewer" + 233 " may be different from that on a real device.") 234 const len = args.length 235 if (typeof args[len - 1] === 'function') { 236 args[len - 1].call(this, paramMock.businessErrorMock); 237 } else { 238 return new Promise((resolve, reject) => { 239 resolve(); 240 }) 241 } 242 }, 243 supportedFormats: "[PC Preview] unknow supportedFormats" 244 } 245 const ImageMock = { 246 clipRect: RegionMock, 247 size: SizeMock, 248 format: "[PC Preview] unknow format", 249 getComponent: function (...args) { 250 console.warn("Image.getComponent interface mocked in the Previewer. How this interface works on the Previewer" + 251 " may be different from that on a real device.") 252 const len = args.length 253 if (typeof args[len - 1] === 'function') { 254 args[len - 1].call(this, paramMock.businessErrorMock,ComponentMock); 255 } else { 256 return new Promise((resolve, reject) => { 257 resolve(ComponentMock); 258 }) 259 } 260 }, 261 release: function (...args) { 262 console.warn("Image.release interface mocked in the Previewer. How this interface works on the Previewer" + 263 " may be different from that on a real device.") 264 const len = args.length 265 if (typeof args[len - 1] === 'function') { 266 args[len - 1].call(this, paramMock.businessErrorMock); 267 } else { 268 return new Promise((resolve, reject) => { 269 resolve(); 270 }) 271 } 272 } 273 } 274 const ImageReceiverMock = { 275 size: SizeMock, 276 capacity: "[PC Preview] unknow width", 277 format: "[PC Preview] unknow format", 278 getReceivingSurfaceId: function (...args) { 279 console.warn("ImageReceiver.getReceivingSurfaceId interface mocked in the Previewer. How this interface works on the Previewer" + 280 " may be different from that on a real device.") 281 const len = args.length 282 if (len > 0 && typeof args[len - 1] === 'function') { 283 args[len - 1].call(this, paramMock.businessErrorMock, paramMock.paramStringMock); 284 } else { 285 return new Promise((resolve, reject) => { 286 resolve(paramMock.paramStringMock); 287 }) 288 } 289 }, 290 readLatestImage: function (...args) { 291 console.warn("ImageReceiver.readLatestImage interface mocked in the Previewer. How this interface works on the Previewer" + 292 " may be different from that on a real device.") 293 const len = args.length 294 if (len > 0 && typeof args[len - 1] === 'function') { 295 args[len - 1].call(this, paramMock.businessErrorMock, paramMock.ImageMock); 296 } else { 297 return new Promise((resolve, reject) => { 298 resolve(paramMock.ImageMock); 299 }) 300 } 301 }, 302 readLatestImage: function (...args) { 303 console.warn("ImageReceiver.readLatestImage interface mocked in the Previewer. How this interface works on the Previewer" + 304 " may be different from that on a real device.") 305 const len = args.length 306 if (len > 0 && typeof args[len - 1] === 'function') { 307 args[len - 1].call(this, paramMock.businessErrorMock, paramMock.ImageMock); 308 } else { 309 return new Promise((resolve, reject) => { 310 resolve(paramMock.ImageMock); 311 }) 312 } 313 }, 314 on: function (...args) { 315 console.warn("ImageReceiver.on interface mocked in the Previewer. How this interface works on the Previewer" + 316 " may be different from that on a real device.") 317 }, 318 release: function (...args) { 319 console.warn("ImageReceiver.release interface mocked in the Previewer. How this interface works on the Previewer" + 320 " may be different from that on a real device.") 321 const len = args.length 322 if (len > 0 && typeof args[len - 1] === 'function') { 323 args[len - 1].call(this, paramMock.businessErrorMock); 324 } else { 325 return new Promise((resolve, reject) => { 326 resolve(); 327 }) 328 } 329 } 330 } 331 const image = { 332 PixelMapFormat: { 333 UNKNOWN: 0, 334 RGB_565: 2, 335 RGBA_8888: 3, 336 }, 337 PropertyKey: { 338 BITS_PER_SAMPLE: "BitsPerSample", 339 ORIENTATION: "Orientation", 340 IMAGE_LENGTH: "ImageLength", 341 IMAGE_WIDTH: "ImageWidth", 342 GPS_LATITUDE: "GPSLatitude", 343 GPS_LONGITUDE: "GPSLongitude", 344 GPS_LATITUDE_REF: "GPSLatitudeRef", 345 GPS_LONGITUDE_REF: "GPSLongitudeRef", 346 }, 347 ImageFormat: { 348 YCBCR_422_SP: 1000, 349 JPEG: 2000, 350 }, 351 AlphaType: { 352 UNKNOWN: 0, 353 OPAQUE: 1, 354 PREMUL: 2, 355 UNPREMUL: 3, 356 }, 357 ScaleMode: { 358 CENTER_CROP: 1, 359 FIT_TARGET_SIZE: 2, 360 }, 361 ComponentType: { 362 YUV_Y: 1, 363 YUV_U: 2, 364 YUV_V: 3, 365 JPEG: 4, 366 }, 367 createPixelMap: function (...args) { 368 console.warn("image.createPixelMap interface mocked in the Previewer. How this interface works on the Previewer" + 369 " may be different from that on a real device.") 370 const len = args.length 371 if (len > 0 && typeof args[len - 1] === 'function') { 372 args[len - 1].call(this, paramMock.businessErrorMock, PixelMapMock); 373 } else { 374 return new Promise((resolve, reject) => { 375 resolve(PixelMapMock); 376 }) 377 } 378 }, 379 createImageSource: function () { 380 console.warn("image.createImageSource interface mocked in the Previewer. How this interface works" + 381 " on the Previewer may be different from that on a real device.") 382 return ImageSourceMock; 383 }, 384 createImagePacker: function () { 385 console.warn("image.createImagePacker interface mocked in the Previewer. How this interface works" + 386 " on the Previewer may be different from that on a real device.") 387 return ImagePackerMock; 388 }, 389 createImageReceiver: function () { 390 console.warn("image.createImageReceiver interface mocked in the Previewer. How this interface works" + 391 " on the Previewer may be different from that on a real device.") 392 return ImageReceiverMock; 393 } 394 } 395 return image; 396} 397