summaryrefslogtreecommitdiffstats
path: root/camera/inc
diff options
context:
space:
mode:
Diffstat (limited to 'camera/inc')
-rw-r--r--camera/inc/BaseCameraAdapter.h2
-rw-r--r--camera/inc/CameraHal.h1
-rw-r--r--camera/inc/OMXCameraAdapter/OMXCameraAdapter.h9
3 files changed, 11 insertions, 1 deletions
diff --git a/camera/inc/BaseCameraAdapter.h b/camera/inc/BaseCameraAdapter.h
index c205b3c..a11ea1d 100644
--- a/camera/inc/BaseCameraAdapter.h
+++ b/camera/inc/BaseCameraAdapter.h
@@ -135,6 +135,8 @@ protected:
// ( if supported )
virtual status_t stopFaceDetection();
+ virtual status_t switchToExecuting();
+
// Receive orientation events from CameraHal
virtual void onOrientationEvent(uint32_t orientation, uint32_t tilt);
diff --git a/camera/inc/CameraHal.h b/camera/inc/CameraHal.h
index 3ca9ed7..68f5cac 100644
--- a/camera/inc/CameraHal.h
+++ b/camera/inc/CameraHal.h
@@ -755,6 +755,7 @@ public:
CAMERA_TIMEOUT_EXPIRED = 21,
CAMERA_START_FD = 22,
CAMERA_STOP_FD = 23,
+ CAMERA_SWITCH_TO_EXECUTING = 24,
};
enum CameraMode
diff --git a/camera/inc/OMXCameraAdapter/OMXCameraAdapter.h b/camera/inc/OMXCameraAdapter/OMXCameraAdapter.h
index 6701aa6..960846e 100644
--- a/camera/inc/OMXCameraAdapter/OMXCameraAdapter.h
+++ b/camera/inc/OMXCameraAdapter/OMXCameraAdapter.h
@@ -398,10 +398,13 @@ protected:
virtual status_t getFrameDataSize(size_t &dataFrameSize, size_t bufferCount);
virtual status_t startFaceDetection();
virtual status_t stopFaceDetection();
+ virtual status_t switchToExecuting();
virtual void onOrientationEvent(uint32_t orientation, uint32_t tilt);
private:
+ status_t doSwitchToExecuting();
+
void performCleanupAfterError();
status_t switchToLoaded();
@@ -630,7 +633,8 @@ private:
enum {
COMMAND_EXIT = -1,
CAMERA_START_IMAGE_CAPTURE = 0,
- CAMERA_PERFORM_AUTOFOCUS
+ CAMERA_PERFORM_AUTOFOCUS = 1,
+ CAMERA_SWITCH_TO_EXECUTING
};
private:
@@ -846,6 +850,9 @@ private:
Semaphore mStartCaptureSem;
Semaphore mStopCaptureSem;
Semaphore mSwitchToLoadedSem;
+ Semaphore mSwitchToExecSem;
+
+ mutable Mutex mSwitchToExecLock;
Vector<struct TIUTILS::Message *> mEventSignalQ;
Mutex mEventLock;