Merge change 5172 into donut
* changes: Remove deprecated callback function support. This is the last of a 3-part change to modify the camera to use a more streamlined callback interface. This change removes the old code. Bug 1884362
This commit is contained in:
@ -152,14 +152,6 @@ public:
|
|||||||
// get preview/capture parameters - key/value pairs
|
// get preview/capture parameters - key/value pairs
|
||||||
String8 getParameters() const;
|
String8 getParameters() const;
|
||||||
|
|
||||||
void setShutterCallback(shutter_callback cb, void *cookie);
|
|
||||||
void setRawCallback(frame_callback cb, void *cookie);
|
|
||||||
void setJpegCallback(frame_callback cb, void *cookie);
|
|
||||||
void setRecordingCallback(frame_callback cb, void *cookie);
|
|
||||||
void setPreviewCallback(frame_callback cb, void *cookie, int preview_callback_flag = FRAME_CALLBACK_FLAG_NOOP);
|
|
||||||
void setErrorCallback(error_callback cb, void *cookie);
|
|
||||||
void setAutoFocusCallback(autofocus_callback cb, void *cookie);
|
|
||||||
|
|
||||||
void setListener(const sp<CameraListener>& listener);
|
void setListener(const sp<CameraListener>& listener);
|
||||||
void setPreviewCallbackFlags(int preview_callback_flag);
|
void setPreviewCallbackFlags(int preview_callback_flag);
|
||||||
|
|
||||||
@ -190,21 +182,6 @@ private:
|
|||||||
sp<ICamera> mCamera;
|
sp<ICamera> mCamera;
|
||||||
status_t mStatus;
|
status_t mStatus;
|
||||||
|
|
||||||
shutter_callback mShutterCallback;
|
|
||||||
void *mShutterCallbackCookie;
|
|
||||||
frame_callback mRawCallback;
|
|
||||||
void *mRawCallbackCookie;
|
|
||||||
frame_callback mJpegCallback;
|
|
||||||
void *mJpegCallbackCookie;
|
|
||||||
frame_callback mPreviewCallback;
|
|
||||||
void *mPreviewCallbackCookie;
|
|
||||||
frame_callback mRecordingCallback;
|
|
||||||
void *mRecordingCallbackCookie;
|
|
||||||
error_callback mErrorCallback;
|
|
||||||
void *mErrorCallbackCookie;
|
|
||||||
autofocus_callback mAutoFocusCallback;
|
|
||||||
void *mAutoFocusCallbackCookie;
|
|
||||||
|
|
||||||
sp<CameraListener> mListener;
|
sp<CameraListener> mListener;
|
||||||
|
|
||||||
friend class DeathNotifier;
|
friend class DeathNotifier;
|
||||||
|
@ -85,20 +85,6 @@ sp<Camera> Camera::create(const sp<ICamera>& camera)
|
|||||||
void Camera::init()
|
void Camera::init()
|
||||||
{
|
{
|
||||||
mStatus = UNKNOWN_ERROR;
|
mStatus = UNKNOWN_ERROR;
|
||||||
mShutterCallback = 0;
|
|
||||||
mShutterCallbackCookie = 0;
|
|
||||||
mRawCallback = 0;
|
|
||||||
mRawCallbackCookie = 0;
|
|
||||||
mJpegCallback = 0;
|
|
||||||
mJpegCallbackCookie = 0;
|
|
||||||
mPreviewCallback = 0;
|
|
||||||
mPreviewCallbackCookie = 0;
|
|
||||||
mRecordingCallback = 0;
|
|
||||||
mRecordingCallbackCookie = 0;
|
|
||||||
mErrorCallback = 0;
|
|
||||||
mErrorCallbackCookie = 0;
|
|
||||||
mAutoFocusCallback = 0;
|
|
||||||
mAutoFocusCallbackCookie = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Camera::~Camera()
|
Camera::~Camera()
|
||||||
@ -127,7 +113,6 @@ void Camera::disconnect()
|
|||||||
{
|
{
|
||||||
LOGV("disconnect");
|
LOGV("disconnect");
|
||||||
if (mCamera != 0) {
|
if (mCamera != 0) {
|
||||||
mErrorCallback = 0;
|
|
||||||
mCamera->disconnect();
|
mCamera->disconnect();
|
||||||
mCamera = 0;
|
mCamera = 0;
|
||||||
}
|
}
|
||||||
@ -285,58 +270,6 @@ String8 Camera::getParameters() const
|
|||||||
return params;
|
return params;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Camera::setAutoFocusCallback(autofocus_callback cb, void *cookie)
|
|
||||||
{
|
|
||||||
LOGV("setAutoFocusCallback");
|
|
||||||
mAutoFocusCallback = cb;
|
|
||||||
mAutoFocusCallbackCookie = cookie;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Camera::setShutterCallback(shutter_callback cb, void *cookie)
|
|
||||||
{
|
|
||||||
LOGV("setShutterCallback");
|
|
||||||
mShutterCallback = cb;
|
|
||||||
mShutterCallbackCookie = cookie;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Camera::setRawCallback(frame_callback cb, void *cookie)
|
|
||||||
{
|
|
||||||
LOGV("setRawCallback");
|
|
||||||
mRawCallback = cb;
|
|
||||||
mRawCallbackCookie = cookie;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Camera::setJpegCallback(frame_callback cb, void *cookie)
|
|
||||||
{
|
|
||||||
LOGV("setJpegCallback");
|
|
||||||
mJpegCallback = cb;
|
|
||||||
mJpegCallbackCookie = cookie;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Camera::setPreviewCallback(frame_callback cb, void *cookie, int flag)
|
|
||||||
{
|
|
||||||
LOGV("setPreviewCallback");
|
|
||||||
mPreviewCallback = cb;
|
|
||||||
mPreviewCallbackCookie = cookie;
|
|
||||||
sp <ICamera> c = mCamera;
|
|
||||||
if (c == 0) return;
|
|
||||||
mCamera->setPreviewCallbackFlag(flag);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Camera::setRecordingCallback(frame_callback cb, void *cookie)
|
|
||||||
{
|
|
||||||
LOGV("setRecordingCallback");
|
|
||||||
mRecordingCallback = cb;
|
|
||||||
mRecordingCallbackCookie = cookie;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Camera::setErrorCallback(error_callback cb, void *cookie)
|
|
||||||
{
|
|
||||||
LOGV("setErrorCallback");
|
|
||||||
mErrorCallback = cb;
|
|
||||||
mErrorCallbackCookie = cookie;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Camera::setListener(const sp<CameraListener>& listener)
|
void Camera::setListener(const sp<CameraListener>& listener)
|
||||||
{
|
{
|
||||||
Mutex::Autolock _l(mLock);
|
Mutex::Autolock _l(mLock);
|
||||||
@ -362,30 +295,6 @@ void Camera::notifyCallback(int32_t msgType, int32_t ext1, int32_t ext2)
|
|||||||
if (listener != NULL) {
|
if (listener != NULL) {
|
||||||
listener->notify(msgType, ext1, ext2);
|
listener->notify(msgType, ext1, ext2);
|
||||||
}
|
}
|
||||||
|
|
||||||
switch(msgType) {
|
|
||||||
case CAMERA_MSG_ERROR:
|
|
||||||
LOGV("errorCallback");
|
|
||||||
if (mErrorCallback) {
|
|
||||||
mErrorCallback((status_t)ext1, mErrorCallbackCookie);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case CAMERA_MSG_FOCUS:
|
|
||||||
LOGV("autoFocusCallback");
|
|
||||||
if (mAutoFocusCallback) {
|
|
||||||
mAutoFocusCallback((bool)ext1, mAutoFocusCallbackCookie);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case CAMERA_MSG_SHUTTER:
|
|
||||||
LOGV("shutterCallback");
|
|
||||||
if (mShutterCallback) {
|
|
||||||
mShutterCallback(mShutterCallbackCookie);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
LOGV("notifyCallback(%d, %d, %d)", msgType, ext1, ext2);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// callback from camera service when frame or image is ready
|
// callback from camera service when frame or image is ready
|
||||||
@ -399,44 +308,11 @@ void Camera::dataCallback(int32_t msgType, const sp<IMemory>& dataPtr)
|
|||||||
if (listener != NULL) {
|
if (listener != NULL) {
|
||||||
listener->postData(msgType, dataPtr);
|
listener->postData(msgType, dataPtr);
|
||||||
}
|
}
|
||||||
|
|
||||||
switch(msgType) {
|
|
||||||
case CAMERA_MSG_PREVIEW_FRAME:
|
|
||||||
LOGV("previewCallback");
|
|
||||||
if (mPreviewCallback) {
|
|
||||||
mPreviewCallback(dataPtr, mPreviewCallbackCookie);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case CAMERA_MSG_VIDEO_FRAME:
|
|
||||||
LOGV("recordingCallback");
|
|
||||||
if (mRecordingCallback) {
|
|
||||||
mRecordingCallback(dataPtr, mRecordingCallbackCookie);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case CAMERA_MSG_RAW_IMAGE:
|
|
||||||
LOGV("rawCallback");
|
|
||||||
if (mRawCallback) {
|
|
||||||
mRawCallback(dataPtr, mRawCallbackCookie);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case CAMERA_MSG_COMPRESSED_IMAGE:
|
|
||||||
LOGV("jpegCallback");
|
|
||||||
if (mJpegCallback) {
|
|
||||||
mJpegCallback(dataPtr, mJpegCallbackCookie);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
LOGV("dataCallback(%d, %p)", msgType, dataPtr.get());
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Camera::binderDied(const wp<IBinder>& who) {
|
void Camera::binderDied(const wp<IBinder>& who) {
|
||||||
LOGW("ICamera died");
|
LOGW("ICamera died");
|
||||||
notifyCallback(CAMERA_MSG_ERROR, DEAD_OBJECT, 0);
|
notifyCallback(CAMERA_MSG_ERROR, DEAD_OBJECT, 0);
|
||||||
if (mErrorCallback) {
|
|
||||||
mErrorCallback(DEAD_OBJECT, mErrorCallbackCookie);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Camera::DeathNotifier::binderDied(const wp<IBinder>& who) {
|
void Camera::DeathNotifier::binderDied(const wp<IBinder>& who) {
|
||||||
|
Reference in New Issue
Block a user