diff options
Diffstat (limited to 'camera/IProCameraCallbacks.cpp')
-rw-r--r-- | camera/IProCameraCallbacks.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/camera/IProCameraCallbacks.cpp b/camera/IProCameraCallbacks.cpp index c2ad74f..756fba2 100644 --- a/camera/IProCameraCallbacks.cpp +++ b/camera/IProCameraCallbacks.cpp @@ -34,6 +34,7 @@ enum { NOTIFY_CALLBACK = IBinder::FIRST_CALL_TRANSACTION, DATA_CALLBACK, DATA_CALLBACK_TIMESTAMP, + LOCK_STATUS_CHANGED, }; class BpProCameraCallbacks: public BpInterface<IProCameraCallbacks> @@ -86,6 +87,15 @@ public: remote()->transact(DATA_CALLBACK_TIMESTAMP, data, &reply, IBinder::FLAG_ONEWAY); } + + void onLockStatusChanged(LockStatus newLockStatus) { + ALOGV("onLockStatusChanged"); + Parcel data, reply; + data.writeInterfaceToken(IProCameraCallbacks::getInterfaceDescriptor()); + data.writeInt32(newLockStatus); + remote()->transact(LOCK_STATUS_CHANGED, data, &reply, + IBinder::FLAG_ONEWAY); + } }; IMPLEMENT_META_INTERFACE(ProCameraCallbacks, @@ -96,6 +106,7 @@ IMPLEMENT_META_INTERFACE(ProCameraCallbacks, status_t BnProCameraCallbacks::onTransact( uint32_t code, const Parcel& data, Parcel* reply, uint32_t flags) { + ALOGV("onTransact - code = %d", code); switch(code) { case NOTIFY_CALLBACK: { ALOGV("NOTIFY_CALLBACK"); @@ -133,6 +144,14 @@ status_t BnProCameraCallbacks::onTransact( dataCallbackTimestamp(timestamp, msgType, imageData); return NO_ERROR; } break; + case LOCK_STATUS_CHANGED: { + ALOGV("LOCK_STATUS_CHANGED"); + CHECK_INTERFACE(IProCameraCallbacks, data, reply); + LockStatus newLockStatus + = static_cast<LockStatus>(data.readInt32()); + onLockStatusChanged(newLockStatus); + return NO_ERROR; + } break; default: return BBinder::onTransact(code, data, reply, flags); } |