Loading camera/IProCameraCallbacks.cpp +4 −4 Original line number Diff line number Diff line Loading @@ -67,11 +67,11 @@ public: IBinder::FLAG_ONEWAY); } void onResultReceived(int32_t frameId, camera_metadata* result) { void onResultReceived(int32_t requestId, camera_metadata* result) { ALOGV("onResultReceived"); Parcel data, reply; data.writeInterfaceToken(IProCameraCallbacks::getInterfaceDescriptor()); data.writeInt32(frameId); data.writeInt32(requestId); CameraMetadata::writeToParcel(data, result); remote()->transact(RESULT_RECEIVED, data, &reply, IBinder::FLAG_ONEWAY); } Loading Loading @@ -107,10 +107,10 @@ status_t BnProCameraCallbacks::onTransact( case RESULT_RECEIVED: { ALOGV("RESULT_RECEIVED"); CHECK_INTERFACE(IProCameraCallbacks, data, reply); int32_t frameId = data.readInt32(); int32_t requestId = data.readInt32(); camera_metadata_t *result = NULL; CameraMetadata::readFromParcel(data, &result); onResultReceived(frameId, result); onResultReceived(requestId, result); return NO_ERROR; break; } Loading camera/ProCamera.cpp +3 −3 Original line number Diff line number Diff line Loading @@ -90,8 +90,8 @@ void ProCamera::onLockStatusChanged( } } void ProCamera::onResultReceived(int32_t frameId, camera_metadata* result) { ALOGV("%s: frameId = %d, result = %p", __FUNCTION__, frameId, result); void ProCamera::onResultReceived(int32_t requestId, camera_metadata* result) { ALOGV("%s: requestId = %d, result = %p", __FUNCTION__, requestId, result); sp<ProCameraListener> listener; { Loading @@ -112,7 +112,7 @@ void ProCamera::onResultReceived(int32_t frameId, camera_metadata* result) { result = tmp.release(); if (listener != NULL) { listener->onResultReceived(frameId, result); listener->onResultReceived(requestId, result); } else { free_camera_metadata(result); } Loading camera/camera2/ICameraDeviceCallbacks.cpp +51 −17 Original line number Diff line number Diff line Loading @@ -32,7 +32,9 @@ namespace android { enum { NOTIFY_CALLBACK = IBinder::FIRST_CALL_TRANSACTION, CAMERA_ERROR = IBinder::FIRST_CALL_TRANSACTION, CAMERA_IDLE, CAPTURE_STARTED, RESULT_RECEIVED, }; Loading @@ -44,19 +46,37 @@ public: { } // generic callback from camera service to app void notifyCallback(int32_t msgType, int32_t ext1, int32_t ext2) void onDeviceError(CameraErrorCode errorCode) { ALOGV("notifyCallback"); ALOGV("onDeviceError"); Parcel data, reply; data.writeInterfaceToken(ICameraDeviceCallbacks::getInterfaceDescriptor()); data.writeInt32(msgType); data.writeInt32(ext1); data.writeInt32(ext2); remote()->transact(NOTIFY_CALLBACK, data, &reply, IBinder::FLAG_ONEWAY); data.writeInt32(static_cast<int32_t>(errorCode)); remote()->transact(CAMERA_ERROR, data, &reply, IBinder::FLAG_ONEWAY); data.writeNoException(); } void onDeviceIdle() { ALOGV("onDeviceIdle"); Parcel data, reply; data.writeInterfaceToken(ICameraDeviceCallbacks::getInterfaceDescriptor()); remote()->transact(CAMERA_IDLE, data, &reply, IBinder::FLAG_ONEWAY); data.writeNoException(); } void onCaptureStarted(int32_t requestId, int64_t timestamp) { ALOGV("onCaptureStarted"); Parcel data, reply; data.writeInterfaceToken(ICameraDeviceCallbacks::getInterfaceDescriptor()); data.writeInt32(requestId); data.writeInt64(timestamp); remote()->transact(CAPTURE_STARTED, data, &reply, IBinder::FLAG_ONEWAY); data.writeNoException(); } void onResultReceived(int32_t requestId, const CameraMetadata& result) { ALOGV("onResultReceived"); Parcel data, reply; Loading @@ -79,18 +99,33 @@ status_t BnCameraDeviceCallbacks::onTransact( { ALOGV("onTransact - code = %d", code); switch(code) { case NOTIFY_CALLBACK: { ALOGV("NOTIFY_CALLBACK"); case CAMERA_ERROR: { ALOGV("onDeviceError"); CHECK_INTERFACE(ICameraDeviceCallbacks, data, reply); int32_t msgType = data.readInt32(); int32_t ext1 = data.readInt32(); int32_t ext2 = data.readInt32(); notifyCallback(msgType, ext1, ext2); CameraErrorCode errorCode = static_cast<CameraErrorCode>(data.readInt32()); onDeviceError(errorCode); data.readExceptionCode(); return NO_ERROR; } break; case CAMERA_IDLE: { ALOGV("onDeviceIdle"); CHECK_INTERFACE(ICameraDeviceCallbacks, data, reply); onDeviceIdle(); data.readExceptionCode(); return NO_ERROR; } break; case CAPTURE_STARTED: { ALOGV("onCaptureStarted"); CHECK_INTERFACE(ICameraDeviceCallbacks, data, reply); int32_t requestId = data.readInt32(); int64_t timestamp = data.readInt64(); onCaptureStarted(requestId, timestamp); data.readExceptionCode(); return NO_ERROR; } break; case RESULT_RECEIVED: { ALOGV("RESULT_RECEIVED"); ALOGV("onResultReceived"); CHECK_INTERFACE(ICameraDeviceCallbacks, data, reply); int32_t requestId = data.readInt32(); CameraMetadata result; Loading @@ -102,8 +137,7 @@ status_t BnCameraDeviceCallbacks::onTransact( onResultReceived(requestId, result); data.readExceptionCode(); return NO_ERROR; break; } } break; default: return BBinder::onTransact(code, data, reply, flags); } Loading camera/tests/ProCameraTests.cpp +2 −3 Original line number Diff line number Diff line Loading @@ -284,9 +284,9 @@ protected: } } virtual void onResultReceived(int32_t frameId, virtual void onResultReceived(int32_t requestId, camera_metadata* request) { dout << "Result received frameId = " << frameId dout << "Result received requestId = " << requestId << ", requestPtr = " << (void*)request << std::endl; QueueEvent(RESULT_RECEIVED); free_camera_metadata(request); Loading Loading @@ -1276,4 +1276,3 @@ TEST_F(ProCameraTest, ServiceListenersFunctional) { } } } include/camera/IProCameraCallbacks.h +1 −1 Original line number Diff line number Diff line Loading @@ -51,7 +51,7 @@ public: /** Missing by design: implementation is client-side in ProCamera.cpp **/ // virtual void onBufferReceived(int streamId, // const CpuConsumer::LockedBufer& buf); virtual void onResultReceived(int32_t frameId, virtual void onResultReceived(int32_t requestId, camera_metadata* result) = 0; }; Loading Loading
camera/IProCameraCallbacks.cpp +4 −4 Original line number Diff line number Diff line Loading @@ -67,11 +67,11 @@ public: IBinder::FLAG_ONEWAY); } void onResultReceived(int32_t frameId, camera_metadata* result) { void onResultReceived(int32_t requestId, camera_metadata* result) { ALOGV("onResultReceived"); Parcel data, reply; data.writeInterfaceToken(IProCameraCallbacks::getInterfaceDescriptor()); data.writeInt32(frameId); data.writeInt32(requestId); CameraMetadata::writeToParcel(data, result); remote()->transact(RESULT_RECEIVED, data, &reply, IBinder::FLAG_ONEWAY); } Loading Loading @@ -107,10 +107,10 @@ status_t BnProCameraCallbacks::onTransact( case RESULT_RECEIVED: { ALOGV("RESULT_RECEIVED"); CHECK_INTERFACE(IProCameraCallbacks, data, reply); int32_t frameId = data.readInt32(); int32_t requestId = data.readInt32(); camera_metadata_t *result = NULL; CameraMetadata::readFromParcel(data, &result); onResultReceived(frameId, result); onResultReceived(requestId, result); return NO_ERROR; break; } Loading
camera/ProCamera.cpp +3 −3 Original line number Diff line number Diff line Loading @@ -90,8 +90,8 @@ void ProCamera::onLockStatusChanged( } } void ProCamera::onResultReceived(int32_t frameId, camera_metadata* result) { ALOGV("%s: frameId = %d, result = %p", __FUNCTION__, frameId, result); void ProCamera::onResultReceived(int32_t requestId, camera_metadata* result) { ALOGV("%s: requestId = %d, result = %p", __FUNCTION__, requestId, result); sp<ProCameraListener> listener; { Loading @@ -112,7 +112,7 @@ void ProCamera::onResultReceived(int32_t frameId, camera_metadata* result) { result = tmp.release(); if (listener != NULL) { listener->onResultReceived(frameId, result); listener->onResultReceived(requestId, result); } else { free_camera_metadata(result); } Loading
camera/camera2/ICameraDeviceCallbacks.cpp +51 −17 Original line number Diff line number Diff line Loading @@ -32,7 +32,9 @@ namespace android { enum { NOTIFY_CALLBACK = IBinder::FIRST_CALL_TRANSACTION, CAMERA_ERROR = IBinder::FIRST_CALL_TRANSACTION, CAMERA_IDLE, CAPTURE_STARTED, RESULT_RECEIVED, }; Loading @@ -44,19 +46,37 @@ public: { } // generic callback from camera service to app void notifyCallback(int32_t msgType, int32_t ext1, int32_t ext2) void onDeviceError(CameraErrorCode errorCode) { ALOGV("notifyCallback"); ALOGV("onDeviceError"); Parcel data, reply; data.writeInterfaceToken(ICameraDeviceCallbacks::getInterfaceDescriptor()); data.writeInt32(msgType); data.writeInt32(ext1); data.writeInt32(ext2); remote()->transact(NOTIFY_CALLBACK, data, &reply, IBinder::FLAG_ONEWAY); data.writeInt32(static_cast<int32_t>(errorCode)); remote()->transact(CAMERA_ERROR, data, &reply, IBinder::FLAG_ONEWAY); data.writeNoException(); } void onDeviceIdle() { ALOGV("onDeviceIdle"); Parcel data, reply; data.writeInterfaceToken(ICameraDeviceCallbacks::getInterfaceDescriptor()); remote()->transact(CAMERA_IDLE, data, &reply, IBinder::FLAG_ONEWAY); data.writeNoException(); } void onCaptureStarted(int32_t requestId, int64_t timestamp) { ALOGV("onCaptureStarted"); Parcel data, reply; data.writeInterfaceToken(ICameraDeviceCallbacks::getInterfaceDescriptor()); data.writeInt32(requestId); data.writeInt64(timestamp); remote()->transact(CAPTURE_STARTED, data, &reply, IBinder::FLAG_ONEWAY); data.writeNoException(); } void onResultReceived(int32_t requestId, const CameraMetadata& result) { ALOGV("onResultReceived"); Parcel data, reply; Loading @@ -79,18 +99,33 @@ status_t BnCameraDeviceCallbacks::onTransact( { ALOGV("onTransact - code = %d", code); switch(code) { case NOTIFY_CALLBACK: { ALOGV("NOTIFY_CALLBACK"); case CAMERA_ERROR: { ALOGV("onDeviceError"); CHECK_INTERFACE(ICameraDeviceCallbacks, data, reply); int32_t msgType = data.readInt32(); int32_t ext1 = data.readInt32(); int32_t ext2 = data.readInt32(); notifyCallback(msgType, ext1, ext2); CameraErrorCode errorCode = static_cast<CameraErrorCode>(data.readInt32()); onDeviceError(errorCode); data.readExceptionCode(); return NO_ERROR; } break; case CAMERA_IDLE: { ALOGV("onDeviceIdle"); CHECK_INTERFACE(ICameraDeviceCallbacks, data, reply); onDeviceIdle(); data.readExceptionCode(); return NO_ERROR; } break; case CAPTURE_STARTED: { ALOGV("onCaptureStarted"); CHECK_INTERFACE(ICameraDeviceCallbacks, data, reply); int32_t requestId = data.readInt32(); int64_t timestamp = data.readInt64(); onCaptureStarted(requestId, timestamp); data.readExceptionCode(); return NO_ERROR; } break; case RESULT_RECEIVED: { ALOGV("RESULT_RECEIVED"); ALOGV("onResultReceived"); CHECK_INTERFACE(ICameraDeviceCallbacks, data, reply); int32_t requestId = data.readInt32(); CameraMetadata result; Loading @@ -102,8 +137,7 @@ status_t BnCameraDeviceCallbacks::onTransact( onResultReceived(requestId, result); data.readExceptionCode(); return NO_ERROR; break; } } break; default: return BBinder::onTransact(code, data, reply, flags); } Loading
camera/tests/ProCameraTests.cpp +2 −3 Original line number Diff line number Diff line Loading @@ -284,9 +284,9 @@ protected: } } virtual void onResultReceived(int32_t frameId, virtual void onResultReceived(int32_t requestId, camera_metadata* request) { dout << "Result received frameId = " << frameId dout << "Result received requestId = " << requestId << ", requestPtr = " << (void*)request << std::endl; QueueEvent(RESULT_RECEIVED); free_camera_metadata(request); Loading Loading @@ -1276,4 +1276,3 @@ TEST_F(ProCameraTest, ServiceListenersFunctional) { } } }
include/camera/IProCameraCallbacks.h +1 −1 Original line number Diff line number Diff line Loading @@ -51,7 +51,7 @@ public: /** Missing by design: implementation is client-side in ProCamera.cpp **/ // virtual void onBufferReceived(int streamId, // const CpuConsumer::LockedBufer& buf); virtual void onResultReceived(int32_t frameId, virtual void onResultReceived(int32_t requestId, camera_metadata* result) = 0; }; Loading