diff options
author | Eino-Ville Talvala <etalvala@google.com> | 2012-05-17 10:30:54 -0700 |
---|---|---|
committer | Eino-Ville Talvala <etalvala@google.com> | 2012-05-17 16:58:04 -0700 |
commit | 61ab9f93315ea817cd1ac110e2a95da4dab6b4d1 (patch) | |
tree | 595ab34a38c8ece6155608553f7cba196a036786 /services/camera/libcameraservice/Camera2Device.cpp | |
parent | 44631c2939369e66df7021b1f359ded319971d26 (diff) | |
download | frameworks_av-61ab9f93315ea817cd1ac110e2a95da4dab6b4d1.zip frameworks_av-61ab9f93315ea817cd1ac110e2a95da4dab6b4d1.tar.gz frameworks_av-61ab9f93315ea817cd1ac110e2a95da4dab6b4d1.tar.bz2 |
Camera service: Add skeleton support for camera2 devices.
- Add Camera2Client, which maps the current android.hardware.Camera
API to the new camera2 semantics
- Add Camera2Device, a C++ wrapper for the HAL camera 2 device
No functionality besides create/destroy; all client methods return
error or null.
Bug: 6243944
Change-Id: I6bd5136fa1efd8279b8cd2d9847d9b0bb2862294
Diffstat (limited to 'services/camera/libcameraservice/Camera2Device.cpp')
-rw-r--r-- | services/camera/libcameraservice/Camera2Device.cpp | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/services/camera/libcameraservice/Camera2Device.cpp b/services/camera/libcameraservice/Camera2Device.cpp new file mode 100644 index 0000000..ff5b057 --- /dev/null +++ b/services/camera/libcameraservice/Camera2Device.cpp @@ -0,0 +1,66 @@ +/* + * Copyright (C) 2012 The Android Open Source Project + * + * 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. + */ + +#define LOG_TAG "Camera2Device" +//#define LOG_NDEBUG 0 + +#include <utils/Log.h> +#include "Camera2Device.h" + +namespace android { + +Camera2Device::Camera2Device(const char *name): + mName(name), + mDevice(NULL) +{ + +} + +Camera2Device::~Camera2Device() +{ + if (mDevice) { + status_t res; + res = mDevice->common.close(&mDevice->common); + if (res != OK) { + ALOGE("Could not close camera2 %s: %s (%d)", + mName, strerror(-res), res); + } + } +} + +status_t Camera2Device::initialize(hw_module_t *module) +{ + status_t res; + res = module->methods->open(module, mName, + reinterpret_cast<hw_device_t**>(&mDevice)); + + if (res != OK) { + ALOGE("Could not open camera %s: %s (%d)", mName, strerror(-res), res); + return res; + } + + if (mDevice->common.version != CAMERA_DEVICE_API_VERSION_2_0) { + ALOGE("Could not open camera %s: " + "Camera device is not version 2.0, reports %x instead", + mName, mDevice->common.version); + return BAD_VALUE; + } + + return OK; +} + + +}; // namespace android |