1 /* 2 * Copyright (c) 2021-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 16 #ifndef OHOS_CAMERA_HCAMERA_SERVICE_STUB_H 17 #define OHOS_CAMERA_HCAMERA_SERVICE_STUB_H 18 #define EXPORT_API __attribute__((visibility("default"))) 19 20 #include "camera_util.h" 21 #include "icamera_service.h" 22 #include "iremote_stub.h" 23 #include "input/camera_death_recipient.h" 24 #include "input/i_standard_camera_listener.h" 25 26 namespace OHOS { 27 namespace CameraStandard { 28 class EXPORT_API HCameraServiceStub : public IRemoteStub<ICameraService> { 29 public: 30 HCameraServiceStub(); 31 ~HCameraServiceStub(); 32 int OnRemoteRequest(uint32_t code, MessageParcel &data, 33 MessageParcel &reply, MessageOption &option) override; 34 35 private: 36 int HandleGetCameras(MessageParcel &data, MessageParcel &reply); 37 int HandleGetCameraIds(MessageParcel &data, MessageParcel &reply); 38 int HandleGetCameraAbility(MessageParcel &data, MessageParcel &reply); 39 int HandleCreateCameraDevice(MessageParcel &data, MessageParcel &reply); 40 int HandleSetCameraCallback(MessageParcel &data, MessageParcel &reply); 41 int HandleSetMuteCallback(MessageParcel &data, MessageParcel &reply); 42 int HandleSetTorchCallback(MessageParcel &data, MessageParcel &reply); 43 int HandleSetFoldStatusCallback(MessageParcel &data, MessageParcel &reply); 44 int HandleCreateCaptureSession(MessageParcel &data, MessageParcel &reply); 45 int HandleCreateDeferredPhotoProcessingSession(MessageParcel &data, MessageParcel &reply); 46 int HandleCreateDeferredVideoProcessingSession(MessageParcel &data, MessageParcel &reply); 47 int HandleCreatePhotoOutput(MessageParcel &data, MessageParcel &reply); 48 int HandleCreatePreviewOutput(MessageParcel &data, MessageParcel &reply); 49 int HandleCreateDeferredPreviewOutput(MessageParcel &data, MessageParcel &reply); 50 int HandleCreateDepthDataOutput(MessageParcel &data, MessageParcel &reply); 51 int HandleCreateMetadataOutput(MessageParcel &data, MessageParcel &reply); 52 int HandleCreateVideoOutput(MessageParcel &data, MessageParcel &reply); 53 int HandleMuteCamera(MessageParcel &data, MessageParcel &reply); 54 int HandleMuteCameraPersist(MessageParcel &data, MessageParcel &reply); 55 int HandleIsCameraMuted(MessageParcel &data, MessageParcel &reply); 56 int HandlePrelaunchCamera(MessageParcel &data, MessageParcel &reply); 57 int HandlePreSwitchCamera(MessageParcel& data, MessageParcel& reply); 58 int HandleSetPrelaunchConfig(MessageParcel &data, MessageParcel &reply); 59 int HandleSetTorchLevel(MessageParcel &data, MessageParcel &reply); 60 int HandleAllowOpenByOHSide(MessageParcel& data, MessageParcel& reply); 61 int HandleNotifyCameraState(MessageParcel& data); 62 int HandleSetPeerCallback(MessageParcel& data); 63 int HandleUnsetPeerCallback(MessageParcel& data); 64 int HandleProxyForFreeze(MessageParcel& data, MessageParcel& reply); 65 int HandleResetAllFreezeStatus(MessageParcel& data, MessageParcel& reply); 66 int HandleGetDmDeviceInfo(MessageParcel& data, MessageParcel& reply); 67 int HandleGetCameraOutputStatus(MessageParcel& data, MessageParcel& reply); 68 int HandleRequireMemorySize(MessageParcel& data, MessageParcel& reply); 69 int DestroyStubObj() override; 70 int DestroyStubForPid(pid_t pid); 71 void ClientDied(pid_t pid); 72 void ClearCameraListenerByPid(pid_t pid); 73 int SetListenerObject(const sptr<IRemoteObject> &object) override; 74 int SetListenerObject(MessageParcel &data, MessageParcel &reply); 75 virtual int32_t UnSetAllCallback(pid_t pid); 76 virtual int32_t CloseCameraForDestory(pid_t pid); 77 78 SafeMap<pid_t, sptr<IStandardCameraListener>> cameraListenerMap_; 79 }; 80 } // namespace CameraStandard 81 } // namespace OHOS 82 #endif // OHOS_CAMERA_HCAMERA_SERVICE_STUB_H 83 84