/*
* Copyright (c) 2025 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package OHOS.CameraStandard;
import CameraTypes;
import ICameraDeviceService;
import ICameraMuteServiceCallback;
import ICameraSharedServiceCallback;
import IControlCenterStatusCallback;
import ICaptureSession;
import IFoldServiceCallback;
import ITorchServiceCallback;
import ICameraServiceCallback;
import IStreamCapture;
import IStreamRepeat;
import IStreamMetadata;
import IStreamDepthData;
import IMechSession;
import IMovieFileOutput;
import ICameraSwitchSession;
import ICameraSpectrumInfoCallback;
sequenceable OHOS.IRemoteObject;
sequenceable CameraMetadataInfo..OHOS.Camera.CameraMetadata;
interface OHOS.IBufferProducer;
interface ICameraBroker;
interface OHOS.CameraStandard.DeferredProcessing.IDeferredPhotoProcessingSession;
interface OHOS.CameraStandard.DeferredProcessing.IDeferredVideoProcessingSession;
interface OHOS.CameraStandard.DeferredProcessing.IDeferredVideoProcessingSessionCallback;
interface OHOS.CameraStandard.DeferredProcessing.IDeferredPhotoProcessingSessionCallback;
option_stub_hooks on;
interface ICameraService{
[ipccode 0] void CreateCameraDevice([in] String cameraId, [out] ICameraDeviceService device);
[ipccode 1] void SetCameraCallback([in] ICameraServiceCallback callbackFunc, [in] boolean executeCallbackNow);
[ipccode 2] void SetMuteCallback([in] ICameraMuteServiceCallback callbackFunc);
[ipccode 3] void SetTorchCallback([in] ITorchServiceCallback callbackFunc);
[ipccode 4] void GetCameras([out] List<String> cameraIds, [out] List<sharedptr<CameraMetadata>> cameraAbilityList);
[ipccode 5] void CreateCaptureSession([out] ICaptureSession session, [in] int operationMode);
[ipccode 6] void CreatePhotoOutput([in] IBufferProducer producer, [in] int format, [in] int width, [in] int height, [out] IStreamCapture photoOutput);
[ipccode 7] void CreatePreviewOutput([in] IBufferProducer producer, [in] int format, [in] int width, [in] int height, [out] IStreamRepeat previewOutput);
[ipccode 8] void CreateDeferredPreviewOutput([in] int format, [in] int width, [in] int height, [out] IStreamRepeat previewOutput);
[ipccode 9] void CreateVideoOutput([in] IBufferProducer producer, [in] int format, [in] int width, [in] int height, [out] IStreamRepeat videoOutput);
[ipccode 10] void SetListenerObject([in] IRemoteObject object);
[ipccode 11] void CreateMetadataOutput([in] IBufferProducer producer, [in] int format, [in] List<int> metadataTypes, [out] IStreamMetadata metadataOutput);
[ipccode 12] void MuteCamera([in] boolean muteMode);
[ipccode 13] void IsCameraMuted([inout] boolean muteMode);
[ipccode 14] void IsTorchSupported([out] boolean isTorchSupported);
[ipccode 15] void IsCameraMuteSupported([out] boolean isCameraMuteSupported);
[ipccode 16] void PrelaunchCamera([in] int flag);
[ipccode 17] void ResetRssPriority();
[ipccode 18] void SetPrelaunchConfig([in] String cameraId, [in] RestoreParamTypeOhos restoreParamType, [in] int activeTime, [in] EffectParam effectParam);
[ipccode 19] void SetTorchLevel([in] float level);
[ipccode 20] void PreSwitchCamera([in] String cameraId);
[ipccode 21] void CreateDeferredPhotoProcessingSession([in] int userId, [in] IDeferredPhotoProcessingSessionCallback callbackFunc, [out] IDeferredPhotoProcessingSession session);
[ipccode 22] void GetCameraIds([out] List<String> cameraIds);
[ipccode 23] void GetCameraAbility([in] String cameraId, [out] sharedptr<CameraMetadata> cameraAbility);
[ipccode 24] void DestroyStubObj();
[ipccode 25] void MuteCameraPersist([in] PolicyType policyType, [in] boolean isMute);
[ipccode 26] void ProxyForFreeze([in] Set<int> pidList, [in] boolean isProxy);
[ipccode 27] void ResetAllFreezeStatus();
[ipccode 28] void GetDmDeviceInfo([out] List<dmDeviceInfo> deviceInfos);
[ipccode 29] void SetFoldStatusCallback([in] IFoldServiceCallback callbackFunc, [in] boolean isInnerCallback);
[ipccode 30] void GetCameraOutputStatus([in] int pid, [out] int status);
[ipccode 31] void CreateDepthDataOutput([in] IBufferProducer producer, [in] int format, [in] int width, [in] int height, [out] IStreamDepthData depthDataOutput);
[ipccode 32] void CreateDeferredVideoProcessingSession([in] int userId, [in] IDeferredVideoProcessingSessionCallback callbackFunc, [out] IDeferredVideoProcessingSession session);
[ipccode 33] void RequireMemorySize([in] int memSize);
[ipccode 34] void GetIdforCameraConcurrentType([in] int cameraPosition, [out] String cameraId);
[ipccode 35] void GetConcurrentCameraAbility([in] String cameraId, [out] sharedptr<CameraMetadata> cameraAbility);
[ipccode 36] void GetTorchStatus([out] int status);
[ipccode 37] void UnSetCameraCallback();
[ipccode 38] void UnSetMuteCallback();
[ipccode 39] void UnSetTorchCallback();
[ipccode 40] void UnSetFoldStatusCallback();
[ipccode 41] void CheckWhiteList([inout] boolean isInWhiteList);
[ipccode 42] void CloseDelayed([in] String cameraId);
[ipccode 43] void CreatePhotoOutput([in] int format, [in] int width, [in] int height, [out] IStreamCapture photoOutput);
[ipccode 44] void CreateMovieFileOutput([in] int format, [in] int width, [in] int height, [out] IStreamRepeat movieFileOutput);
[ipccode 45] void GetCameraStorageSize([out] long size);
[ipccode 46] void CreateMechSession([in] int userId, [out] IMechSession session);
[ipccode 47] void IsMechSupported([out] boolean isMechSupported);
[ipccode 48] void CreateMovieFileOutput([in] IpcVideoProfile videoProfile, [out] IMovieFileOutput movieFileOutput);
[ipccode 49] void GetVideoSessionForControlCenter([out] ICaptureSession session);
[ipccode 50] void SetControlCenterCallback([in] IControlCenterStatusCallback callbackFunc);
[ipccode 51] void UnSetControlCenterStatusCallback();
[ipccode 52] void EnableControlCenter([in] boolean status, [in] boolean needPersistEnable);
[ipccode 53] void SetControlCenterPrecondition([in] boolean condition);
[ipccode 54] void SetDeviceControlCenterAbility([in] boolean ability);
[ipccode 55] void GetControlCenterStatus([out] boolean status);
[ipccode 56] void CheckControlCenterPermission();
[ipccode 57] void SetUsePhysicalCameraOrientation([in] boolean isUsed);
[ipccode 58] void CreateCameraSwitchSession([out] ICameraSwitchSession session);
[ipccode 60] void GetDeviceControlCenterAbility([out] boolean ability);
[ipccode 63] void IsTorchLevelControlSupported([out] boolean isTorchLevelControlSupported);
[ipccode 73] void GetOnBoardDisplayId([out] int displayId);
[ipccode 74] void GetAppNaturalDirection([out] int naturalDirection);
[ipccode 75] void GetLogicCameraConfig([in] String clientName, [out] List<int> useLogicCamera, [out] List<int> customLogicDirection);
[ipccode 76] void SetParameters([in] Map<String, String> kvPairs);
[ipccode 77] void GetParameters([in] String key, [out] List<String> values);
[ipccode 78] void GetSupportedKeys([out] List<String> keys);
[ipccode 79] void GetActiveParameter([in] String key, [out] String value);
[ipccode 81] void SetCameraSharedStatusCallback([in] ICameraSharedServiceCallback callbackFunc);
[ipccode 82] void UnSetCameraSharedStatusCallback();
[ipccode 83] void GetNaturalDirectionCorrect([out] boolean isCorrect);
[ipccode 101] void AllowOpenByOHSide([in] String cameraId, [in] int state, [inout] boolean canOpenCamera);
[ipccode 102, oneway] void NotifyCameraState([in] String cameraId, [in] int state);
[ipccode 104] void SetPeerCallback([in] ICameraBroker callbackFunc);
[ipccode 105] void UnsetPeerCallback();
[ipccode 106] void PrelaunchScanCamera([in] String bundleName, [in] String pageName, [in] PrelaunchScanModeOhos prelaunchScanMode);
[ipccode 107] void RequireMemorySizeWithReason([in] String reason, [in] int requiredMemSizeKB);
[ipccode 108] void GetPhysicalCameraIds([out] List<String> cameraIds);
[ipccode 109] void SetSpectrumCallback([in] SpectrumCallerInfo info, [in] ICameraSpectrumInfoCallback callbackFunc);
[ipccode 110] void UnsetSpectrumCallback([in] SpectrumCallerInfo info);
[ipccode 111] void GetCameraIdByDisPlugin([in] int cameraPosition, [in] int cameraType, [out] String cameraId);
}