1/* 2 * Copyright (C) 2024 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 */ 15import { image } from "@kit.ImageKit"; 16import { Callback } from "@kit.BasicServicesKit"; 17 18interface cameraInfo { 19 cameraPosition: number, 20 cameraType: number, 21 connectionType: number, 22 cameraId: string 23} 24 25interface imageSize { 26 width: number, 27 height: number 28} 29 30interface imageClipRectSize { 31 x: number, 32 y: number, 33 width: number, 34 height: number 35} 36 37interface imageComponent { 38 byteBuffer: Uint8Array, 39 componentType: number, 40 rowStride: number, 41 pixelStride: number 42} 43 44export const initCamera: (a: number) => number; 45export const getSupportedCameras: () => cameraInfo; 46export const createCameraInput: () => number; 47export const createCameraInputWithPositionAndType: () => number; 48export const getSupportedOutputCapability: () => number; 49export const createPreviewOutput: () => number; 50export const createPhotoOutput: (a: number, b: number,c :number) => number; 51export const createVideoOutput: () => number; 52export const createMetadataOutput: () => number; 53export const createSession: () => number; 54export const isCameraMuted: () => number; 55export const cameraInputOpen: () => number; 56export const cameraInputClose: () => number; 57export const cameraInputRelease: () => number; 58export const previewOutputStart: () => number; 59export const previewOutputRelease: () => number; 60export const photoOutputCapture: () => number; 61export const photoOutputRelease: () => number; 62export const isMirrorSupported: () => number; 63export const videoOutputStart: () => number; 64export const videoOutputStop: () => number; 65export const videoOutputRelease: () => number; 66export const metadataOutputStart: () => number; 67export const metadataOutputStop: () => number; 68export const metadataOutputRelease: () => number; 69export const previewOutputStop: () => number; 70export const sessionAddInput: () => number; 71export const sessionRemoveInput: () => number; 72export const sessionAddPreviewOutput: () => number; 73export const sessionAddPhotoOutput: () => number; 74export const sessionAddVideoOutput: () => number; 75export const sessionAddMetadataOutput: () => number; 76export const sessionRemovePreviewOutput: () => number; 77export const sessionRemovePhotoOutput: () => number; 78export const sessionRemoveVideoOutput: () => number; 79export const sessionRemoveMetadataOutput: () => number; 80export const sessionStart: () => number; 81export const sessionStop: () => number; 82export const sessionBegin: () => number; 83export const sessionCommitConfig: () => number; 84export const sessionRelease: () => number; 85export const sessionHasFlash: () => number; 86export const sessionIsFlashModeSupported: () => number; 87export const sessionGetFlashMode: () => number; 88export const sessionSetFlashMode: () => number; 89export const sessionIsExposureModeSupported: () => number; 90export const sessionGetExposureMode: () => number; 91export const sessionSetExposureMode: () => number; 92export const sessionGetMeteringPoint: () => number; 93export const sessionSetMeteringPoint: () => number; 94export const sessionGetExposureBiasRange: () => number; 95export const sessionSetExposureBias: () => number; 96export const sessionGetExposureBias: () => number; 97export const sessionIsFocusModeSupported: () => number; 98export const sessionGetFocusMode: () => number; 99export const sessionSetFocusMode: () => number; 100export const sessionSetFocusPoint: () => number; 101export const sessionGetFocusPoint: () => number; 102export const sessionGetZoomRatioRange: () => number; 103export const sessionGetZoomRatio: () => number; 104export const sessionSetZoomRatio: () => number; 105export const sessionIsVideoStabilizationModeSupported: () => number; 106export const sessionGetVideoStabilizationMode: () => number; 107export const sessionSetVideoStabilizationMode: () => number; 108export const getCameraCallbackCode: () => number; 109export const takePictureWithSettings: () => number; 110export const createImageReceiver: (...params: ESObject[]) => image.ImageReceiver 111export const getReceivingSurfaceId: (a: image.ImageReceiver) => string 112export const readLatestImage: (a: image.ImageReceiver) => image.Image 113export const readNextImage: (a: image.ImageReceiver) => image.Image 114export const on: (a: image.ImageReceiver) => number 115export const getSize: (a: image.ImageReceiver) => imageSize 116export const getCapacity: (a: image.ImageReceiver) => number 117export const getFormat: (a: image.ImageReceiver) => number 118export const getOnEventCount: (a: image.ImageReceiver) => number 119export const imageClipRect: (a: image.Image) => imageClipRectSize 120export const imageSize: (a: image.Image) => imageSize 121export const imageFormat: (a: image.Image) => number 122export const imageGetComponent: (a: image.Image, b: image.ComponentType.JPEG) => imageComponent 123export const receiverRelease: (a: image.ImageReceiver) => number 124export const imageRelease: (a: image.Image) => number 125export const JsCreateImageReceiverOptions: (a: number, b: number, c:number) => number 126export const JsImageReceiverOptionsGetSize: (a: number) => imageSize 127export const JsImageReceiverOptionsSetSize: (a: number, b: number | string, c:number | string) => number 128export const JsImageReceiverOptionsGetCapacity: (a: number) => number 129export const JsImageReceiverOptionsSetCapacity: (a: number, b: number | boolean) => number 130export const JsReleaseImageReceiverOptions: (a: number) => number 131export const JsCreateImageReceiver: (a: number) => image.ImageReceiver 132export const JsGetReceivingSurfaceId: (a: image.ImageReceiver) => string; 133export const JsReadLatestImage: (a: image.ImageReceiver) => image.Image 134export const JsReadNextImage: (a: image.ImageReceiver) => image.Image 135export const JsOn: (a: image.ImageReceiver, b: Callback<image.ImageReceiver>) => number 136export const JsOff: (a: image.ImageReceiver) => number 137export const JsGetSize: (a: image.ImageReceiver) => imageSize 138export const JsGetCapacity: (a: image.ImageReceiver) => number 139export const JsReleaseImageReceiver: (a: image.ImageReceiver) => number 140export const JsGetImageSize: (a: image.Image) => imageSize 141export const JsGetImageComponentTypes: (a: image.Image) => number[] 142export const JsGetImageByteBuffer: (a: image.Image, b: number[]) => number 143export const JsGetImageBufferSize: (a: image.Image, b: number[]) => number 144export const JsGetImageRowStride: (a: image.Image, b: number[]) => number 145export const JsGetImagePixelStride: (a: image.Image, b: number[]) => number 146export const JsReleaseImage: (a: image.Image) => number