• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2023 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 #include "camera_device_service.h"
17 #include "camera.h"
18 #include "stream_operator_service_callback.h"
19 
20 namespace OHOS::Camera {
21 
CameraDeviceService(OHOS::sptr<ICameraDeviceVdi> cameraDeviceServiceVdi)22 CameraDeviceService::CameraDeviceService(OHOS::sptr<ICameraDeviceVdi> cameraDeviceServiceVdi)
23     : cameraDeviceServiceVdi_(cameraDeviceServiceVdi)
24 {
25     CAMERA_LOGI("ctor, instance");
26 }
27 
GetStreamOperator(const sptr<IStreamOperatorCallback> & callbackObj,sptr<IStreamOperator> & streamOperator)28 int32_t CameraDeviceService::GetStreamOperator(const sptr<IStreamOperatorCallback> &callbackObj,
29     sptr<IStreamOperator> &streamOperator)
30 {
31     CAMERA_LOGI("CameraHost:GetStreamOperator");
32     OHOS::sptr<IStreamOperatorVdi> streamOperatorVdi = nullptr;
33     CHECK_IF_PTR_NULL_RETURN_VALUE(cameraDeviceServiceVdi_, OHOS::HDI::Camera::V1_0::INVALID_ARGUMENT);
34     OHOS::sptr<IStreamOperatorVdiCallback> vdiCallbackObj = new StreamOperatorServiceCallback(callbackObj);
35     if (vdiCallbackObj == nullptr) {
36         CAMERA_LOGE("Get stream operator error, vdiCallbackObj is nullptr");
37         return OHOS::HDI::Camera::V1_0::INSUFFICIENT_RESOURCES;
38     }
39     int32_t ret = cameraDeviceServiceVdi_->GetStreamOperator(vdiCallbackObj, streamOperatorVdi);
40     if (ret != OHOS::HDI::Camera::V1_0::NO_ERROR) {
41         CAMERA_LOGE("Get stream operator error, ret=%{public}d", ret);
42         return ret;
43     }
44     if (streamOperatorVdi == nullptr) {
45         CAMERA_LOGE("Get stream operator error, streamOperatorVdi is nullptr");
46         return OHOS::HDI::Camera::V1_0::INSUFFICIENT_RESOURCES;
47     }
48     streamOperator = new StreamOperatorService(streamOperatorVdi);
49     if (streamOperator == nullptr) {
50         CAMERA_LOGE("Get stream operator error, streamOperator is nullptr");
51         return OHOS::HDI::Camera::V1_0::INSUFFICIENT_RESOURCES;
52     }
53 
54     return OHOS::HDI::Camera::V1_0::NO_ERROR;
55 }
56 
UpdateSettings(const std::vector<uint8_t> & settings)57 int32_t CameraDeviceService::UpdateSettings(const std::vector<uint8_t> &settings)
58 {
59     CAMERA_LOGI("CameraHost:UpdateSettings");
60     CHECK_IF_PTR_NULL_RETURN_VALUE(cameraDeviceServiceVdi_, OHOS::HDI::Camera::V1_0::INVALID_ARGUMENT);
61     return cameraDeviceServiceVdi_->UpdateSettings(settings);
62 }
63 
SetResultMode(ResultCallbackMode mode)64 int32_t CameraDeviceService::SetResultMode(ResultCallbackMode mode)
65 {
66     CAMERA_LOGI("CameraHost:SetResultMode");
67     CHECK_IF_PTR_NULL_RETURN_VALUE(cameraDeviceServiceVdi_, OHOS::HDI::Camera::V1_0::INVALID_ARGUMENT);
68     return cameraDeviceServiceVdi_->SetResultMode(static_cast<VdiResultCallbackMode>(mode));
69 }
70 
GetEnabledResults(std::vector<int32_t> & results)71 int32_t CameraDeviceService::GetEnabledResults(std::vector<int32_t> &results)
72 {
73     CAMERA_LOGI("CameraHost:GetEnabledResults");
74     CHECK_IF_PTR_NULL_RETURN_VALUE(cameraDeviceServiceVdi_, OHOS::HDI::Camera::V1_0::INVALID_ARGUMENT);
75     return cameraDeviceServiceVdi_->GetEnabledResults(results);
76 }
77 
EnableResult(const std::vector<int32_t> & results)78 int32_t CameraDeviceService::EnableResult(const std::vector<int32_t> &results)
79 {
80     CAMERA_LOGI("CameraHost:EnableResult");
81     CHECK_IF_PTR_NULL_RETURN_VALUE(cameraDeviceServiceVdi_, OHOS::HDI::Camera::V1_0::INVALID_ARGUMENT);
82     return cameraDeviceServiceVdi_->EnableResult(results);
83 }
84 
DisableResult(const std::vector<int32_t> & results)85 int32_t CameraDeviceService::DisableResult(const std::vector<int32_t> &results)
86 {
87     CAMERA_LOGI("CameraHost:DisableResult");
88     CHECK_IF_PTR_NULL_RETURN_VALUE(cameraDeviceServiceVdi_, OHOS::HDI::Camera::V1_0::INVALID_ARGUMENT);
89     return cameraDeviceServiceVdi_->DisableResult(results);
90 }
91 
Close()92 int32_t CameraDeviceService::Close()
93 {
94     CAMERA_LOGI("CameraHost:Close");
95     CHECK_IF_PTR_NULL_RETURN_VALUE(cameraDeviceServiceVdi_, OHOS::HDI::Camera::V1_0::INVALID_ARGUMENT);
96     return cameraDeviceServiceVdi_->Close();
97 }
98 } // end namespace OHOS::Camera
99