/* * Copyright (c) 2023 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. */ #include "camera_device_service.h" #include "stream_operator_service_callback.h" namespace OHOS::Camera { CameraDeviceService::CameraDeviceService(OHOS::sptr cameraDeviceServiceVdi) : cameraDeviceServiceVdi_(cameraDeviceServiceVdi) { CAMERA_LOGD("ctor, instance"); } int32_t CameraDeviceService::GetStreamOperator(const sptr &callbackObj, sptr &streamOperator) { OHOS::sptr streamOperatorVdi = nullptr; CHECK_IF_PTR_NULL_RETURN_VALUE(cameraDeviceServiceVdi_, OHOS::HDI::Camera::V1_0::INVALID_ARGUMENT); OHOS::sptr vdiCallbackObj = new StreamOperatorServiceCallback(callbackObj); if (vdiCallbackObj == nullptr) { CAMERA_LOGE("Get stream operator error, vdiCallbackObj is nullptr"); return OHOS::HDI::Camera::V1_0::INSUFFICIENT_RESOURCES; } int32_t ret = cameraDeviceServiceVdi_->GetStreamOperator(vdiCallbackObj, streamOperatorVdi); if (ret != OHOS::HDI::Camera::V1_0::NO_ERROR) { CAMERA_LOGE("Get stream operator error, ret=%{public}d", ret); return ret; } if (streamOperatorVdi == nullptr) { CAMERA_LOGE("Get stream operator error, streamOperatorVdi is nullptr"); return OHOS::HDI::Camera::V1_0::INSUFFICIENT_RESOURCES; } streamOperator = new StreamOperatorService(streamOperatorVdi); if (streamOperator == nullptr) { CAMERA_LOGE("Get stream operator error, streamOperator is nullptr"); return OHOS::HDI::Camera::V1_0::INSUFFICIENT_RESOURCES; } return OHOS::HDI::Camera::V1_0::NO_ERROR; } int32_t CameraDeviceService::UpdateSettings(const std::vector &settings) { CHECK_IF_PTR_NULL_RETURN_VALUE(cameraDeviceServiceVdi_, OHOS::HDI::Camera::V1_0::INVALID_ARGUMENT); return cameraDeviceServiceVdi_->UpdateSettings(settings); } int32_t CameraDeviceService::SetResultMode(ResultCallbackMode mode) { CHECK_IF_PTR_NULL_RETURN_VALUE(cameraDeviceServiceVdi_, OHOS::HDI::Camera::V1_0::INVALID_ARGUMENT); return cameraDeviceServiceVdi_->SetResultMode(static_cast(mode)); } int32_t CameraDeviceService::GetEnabledResults(std::vector &results) { CHECK_IF_PTR_NULL_RETURN_VALUE(cameraDeviceServiceVdi_, OHOS::HDI::Camera::V1_0::INVALID_ARGUMENT); return cameraDeviceServiceVdi_->GetEnabledResults(results); } int32_t CameraDeviceService::EnableResult(const std::vector &results) { CHECK_IF_PTR_NULL_RETURN_VALUE(cameraDeviceServiceVdi_, OHOS::HDI::Camera::V1_0::INVALID_ARGUMENT); return cameraDeviceServiceVdi_->EnableResult(results); } int32_t CameraDeviceService::DisableResult(const std::vector &results) { CHECK_IF_PTR_NULL_RETURN_VALUE(cameraDeviceServiceVdi_, OHOS::HDI::Camera::V1_0::INVALID_ARGUMENT); return cameraDeviceServiceVdi_->DisableResult(results); } int32_t CameraDeviceService::Close() { CHECK_IF_PTR_NULL_RETURN_VALUE(cameraDeviceServiceVdi_, OHOS::HDI::Camera::V1_0::INVALID_ARGUMENT); return cameraDeviceServiceVdi_->Close(); } } // end namespace OHOS::Camera