summaryrefslogtreecommitdiff
path: root/libcamera/CameraHardware.h
diff options
context:
space:
mode:
authorVishal Bhoj <vishal.bhoj@linaro.org>2012-01-31 22:13:09 +0530
committerVishal Bhoj <vishal.bhoj@linaro.org>2012-01-31 22:16:05 +0530
commit1ad0e928edf6f046572b3f32eb5ee23d8d7f3f79 (patch)
tree5c4a1c48e7f64ddccbe801a6ba3d16d69e7464ea /libcamera/CameraHardware.h
parent120c22ceb513ca37685854e467fb4cb482840d1c (diff)
downloadcommon-1ad0e928edf6f046572b3f32eb5ee23d8d7f3f79.tar.gz
camera: Initial changes for ICS supportlinaro_android_4.0.3
Preview,Image capture and apps like skype, linphone, hangouts are working. Recording fails. Change-Id: I4587c31014e40b87146a2cafb294cc33e532a26f Signed-off-by: Vishal Bhoj <vishal.bhoj@linaro.org>
Diffstat (limited to 'libcamera/CameraHardware.h')
-rw-r--r--libcamera/CameraHardware.h56
1 files changed, 42 insertions, 14 deletions
diff --git a/libcamera/CameraHardware.h b/libcamera/CameraHardware.h
index 7491cce..b523668 100644
--- a/libcamera/CameraHardware.h
+++ b/libcamera/CameraHardware.h
@@ -22,31 +22,60 @@
#define ANDROID_HARDWARE_CAMERA_HARDWARE_H
#include <utils/threads.h>
-#include <camera/CameraHardwareInterface.h>
#include <binder/MemoryBase.h>
#include <binder/MemoryHeapBase.h>
#include <utils/threads.h>
+#include <utils/threads.h>
+#include <stdio.h>
+#include <stdarg.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <time.h>
+#include <fcntl.h>
+#include <sys/ioctl.h>
+#include <sys/mman.h>
+#include <sys/stat.h>
+#include <utils/Log.h>
+#include <utils/threads.h>
+#include <linux/videodev2.h>
+#include "binder/MemoryBase.h"
+#include "binder/MemoryHeapBase.h"
+#include <utils/threads.h>
+#include <camera/CameraParameters.h>
+#include <hardware/camera.h>
+#include <sys/ioctl.h>
+#include <utils/threads.h>
+#include <binder/MemoryBase.h>
+#include <binder/MemoryHeapBase.h>
+#include <utils/threads.h>
+#include "V4L2Camera.h"
+
+#include <hardware/camera.h>
+
#include <sys/ioctl.h>
#include "V4L2Camera.h"
namespace android {
-class CameraHardware : public CameraHardwareInterface {
+class CameraHardware {
public:
virtual sp<IMemoryHeap> getPreviewHeap() const;
virtual sp<IMemoryHeap> getRawHeap() const;
virtual status_t startPreview();
- virtual void setCallbacks(notify_callback notify_cb,
- data_callback data_cb,
- data_callback_timestamp data_cb_timestamp,
+ virtual void setCallbacks(camera_notify_callback notify_cb,
+ camera_data_callback data_cb,
+ camera_data_timestamp_callback data_cb_timestamp,
+ camera_request_memory get_memory,
void* arg);
/**
* Enable a message, or set of messages.
*/
virtual void enableMsgType(int32_t msgType);
+ virtual int setPreviewWindow( struct preview_stream_ops *window);
/**
* Disable a message, or a set of messages.
*/
@@ -65,7 +94,7 @@ public:
virtual status_t startRecording();
virtual void stopRecording();
virtual bool recordingEnabled();
- virtual void releaseRecordingFrame(const sp<IMemory>& mem);
+ virtual void releaseRecordingFrame(const void* opaque);
virtual status_t autoFocus();
virtual status_t cancelAutoFocus();
@@ -76,14 +105,12 @@ public:
virtual CameraParameters getParameters() const;
virtual void release();
virtual status_t sendCommand(int32_t cmd, int32_t arg1, int32_t arg2);
+ CameraHardware(int cameraId);
- static sp<CameraHardwareInterface> createInstance(int cameraId);
+ virtual ~CameraHardware();
private:
- CameraHardware(int cameraId);
- virtual ~CameraHardware();
- static wp<CameraHardwareInterface> singleton;
static const int kBufferCount = 4;
@@ -112,8 +139,9 @@ private:
static int beginPictureThread(void *cookie);
int pictureThread();
-
+ camera_request_memory mRequestMemory;
mutable Mutex mLock;
+ preview_stream_ops_t* mNativeWindow;
int mCameraId;
CameraParameters mParameters;
@@ -143,9 +171,9 @@ private:
int nQueued;
int nDequeued;
V4L2Camera camera;
- notify_callback mNotifyFn;
- data_callback mDataFn;
- data_callback_timestamp mTimestampFn;
+ camera_notify_callback mNotifyFn;
+ camera_data_callback mDataFn;
+ camera_data_timestamp_callback mTimestampFn;
void* mUser;
int32_t mMsgEnabled;