summaryrefslogtreecommitdiffstats
path: root/modules/camera/CameraHAL.cpp
diff options
context:
space:
mode:
authorAlex Ray <aray@google.com>2013-02-25 15:02:16 -0800
committerAlex Ray <aray@google.com>2013-02-27 00:02:37 -0800
commita0ed4bead4d7a9b9031f7cefe0ef49a951443461 (patch)
treeb02ec06826a5358c28b86010902ea684a7ff7fe4 /modules/camera/CameraHAL.cpp
parent819cfd87bad560fbd89747371088ad35aaef8d43 (diff)
downloadhardware_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.cpp18
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" {