summaryrefslogtreecommitdiffstats
path: root/camera/IProCameraCallbacks.cpp
diff options
context:
space:
mode:
authorIgor Murashkin <iam@google.com>2013-02-20 17:41:57 -0800
committerIgor Murashkin <iam@google.com>2013-02-22 10:50:14 -0800
commit5376573eff55f370f041889618c9a7a9e1894615 (patch)
treeb90f41af6bb5a6952c7e7deb6812626c3035d927 /camera/IProCameraCallbacks.cpp
parent634a51509ee50475f3e9f8ccf897e90fc72ded31 (diff)
downloadframeworks_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.cpp19
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);
}