diff options
author | Igor Murashkin <iam@google.com> | 2013-02-20 17:41:57 -0800 |
---|---|---|
committer | Igor Murashkin <iam@google.com> | 2013-02-22 10:50:14 -0800 |
commit | 5376573eff55f370f041889618c9a7a9e1894615 (patch) | |
tree | b90f41af6bb5a6952c7e7deb6812626c3035d927 /camera/IProCameraCallbacks.cpp | |
parent | 634a51509ee50475f3e9f8ccf897e90fc72ded31 (diff) | |
download | frameworks_av-5376573eff55f370f041889618c9a7a9e1894615.zip frameworks_av-5376573eff55f370f041889618c9a7a9e1894615.tar.gz frameworks_av-5376573eff55f370f041889618c9a7a9e1894615.tar.bz2 |
Camera: ProClient add asynchronous locks and such
Change-Id: I551e5e5e76d9be733fab5224beaa7309268c0f38
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); } |