diff options
author | Alex Ray <aray@google.com> | 2013-02-25 15:02:16 -0800 |
---|---|---|
committer | Alex Ray <aray@google.com> | 2013-02-27 00:02:37 -0800 |
commit | a0ed4bead4d7a9b9031f7cefe0ef49a951443461 (patch) | |
tree | b02ec06826a5358c28b86010902ea684a7ff7fe4 /modules/camera/CameraHAL.cpp | |
parent | 819cfd87bad560fbd89747371088ad35aaef8d43 (diff) | |
download | hardware_libhardware-a0ed4bead4d7a9b9031f7cefe0ef49a951443461.zip hardware_libhardware-a0ed4bead4d7a9b9031f7cefe0ef49a951443461.tar.gz hardware_libhardware-a0ed4bead4d7a9b9031f7cefe0ef49a951443461.tar.bz2 |
modules: camera: Camera v3 Devices
Default camera HAL statically allocates camera devices. Update camera
device to API v3.
Change-Id: Ic53ffcf3b746b9b4011b932e26dbb0f533cba554
Diffstat (limited to 'modules/camera/CameraHAL.cpp')
-rw-r--r-- | modules/camera/CameraHAL.cpp | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/modules/camera/CameraHAL.cpp b/modules/camera/CameraHAL.cpp index 9880908..6cae7d2 100644 --- a/modules/camera/CameraHAL.cpp +++ b/modules/camera/CameraHAL.cpp @@ -17,6 +17,7 @@ #include <cstdlib> #include <hardware/camera_common.h> #include <hardware/hardware.h> +#include "Camera.h" //#define LOG_NDEBUG 0 #define LOG_TAG "DefaultCameraHAL" @@ -42,10 +43,23 @@ CameraHAL::CameraHAL(int num_cameras) : mNumberOfCameras(num_cameras), mCallbacks(NULL) { + int i; + + // Allocate camera array and instantiate camera devices + mCameras = new Camera*[mNumberOfCameras]; + for (i = 0; i < mNumberOfCameras; i++) { + mCameras[i] = new Camera(i); + } } CameraHAL::~CameraHAL() { + int i; + + for (i = 0; i < mNumberOfCameras; i++) { + delete mCameras[i]; + } + delete [] mCameras; } int CameraHAL::getNumberOfCameras() @@ -76,6 +90,7 @@ int CameraHAL::open(const hw_module_t* mod, const char* name, hw_device_t** dev) { int id; char *nameEnd; + Camera *cam; ALOGV("%s: module=%p, name=%s, device=%p", __func__, mod, name, dev); id = strtol(name, &nameEnd, 10); @@ -86,8 +101,7 @@ int CameraHAL::open(const hw_module_t* mod, const char* name, hw_device_t** dev) ALOGE("%s: Invalid camera id %d", __func__, id); return -ENODEV; } - // TODO: check for existing use; allocate and return new camera device - return 0; + return mCameras[id]->open(mod, dev); } extern "C" { |