1 /*
2  * Copyright (c) 2021 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_ICAMERA_SERVICE_CALLBACK_H
17 #define OHOS_CAMERA_ICAMERA_SERVICE_CALLBACK_H
18 
19 #include "iremote_broker.h"
20 
21 namespace OHOS {
22 namespace CameraStandard {
23 enum CameraStatus {
24     CAMERA_STATUS_APPEAR = 0,
25     CAMERA_STATUS_DISAPPEAR,
26     CAMERA_STATUS_AVAILABLE,
27     CAMERA_STATUS_UNAVAILABLE,
28     CAMERA_SERVER_UNAVAILABLE
29 };
30 
31 enum FlashStatus {
32     FLASH_STATUS_OFF = 0,
33     FLASH_STATUS_ON,
34     FLASH_STATUS_UNAVAILABLE
35 };
36 
37 enum TorchStatus {
38     TORCH_STATUS_OFF = 0,
39     TORCH_STATUS_ON,
40     TORCH_STATUS_UNAVAILABLE
41 };
42 
43 enum class CallbackInvoker : int32_t {
44     CAMERA_HOST = 1,
45     APPLICATION,
46 };
47 
48 enum FoldStatus {
49     UNKNOWN_FOLD = 0,
50     EXPAND,
51     FOLDED,
52     HALF_FOLD
53 };
54 
55 class ICameraServiceCallback : public IRemoteBroker {
56 public:
57     virtual int32_t OnCameraStatusChanged(const std::string& cameraId, const CameraStatus status,
58         const std::string& bundleName = "") = 0;
59     virtual int32_t OnFlashlightStatusChanged(const std::string& cameraId, const FlashStatus status) = 0;
60 
61     DECLARE_INTERFACE_DESCRIPTOR(u"ICameraServiceCallback");
62 };
63 
64 class ICameraMuteServiceCallback : public IRemoteBroker {
65 public:
66     virtual int32_t OnCameraMute(bool muteMode) = 0;
67 
68     DECLARE_INTERFACE_DESCRIPTOR(u"ICameraMuteServiceCallback");
69 };
70 
71 class ITorchServiceCallback : public IRemoteBroker {
72 public:
73     virtual int32_t OnTorchStatusChange(const TorchStatus status) = 0;
74 
75     DECLARE_INTERFACE_DESCRIPTOR(u"ITorchServiceCallback");
76 };
77 
78 class IFoldServiceCallback : public IRemoteBroker {
79 public:
80     virtual int32_t OnFoldStatusChanged(const FoldStatus status) = 0;
81 
82     DECLARE_INTERFACE_DESCRIPTOR(u"IFoldServiceCallback");
83 };
84 } // namespace CameraStandard
85 } // namespace OHOS
86 #endif // OHOS_CAMERA_ICAMERA_SERVICE_CALLBACK_H
87 
88