diff options
| author | Sasha Levitskiy <sanek@google.com> | 2015-12-03 13:50:53 -0800 |
|---|---|---|
| committer | Sasha Levitskiy <sanek@google.com> | 2015-12-04 10:07:55 -0800 |
| commit | e270da9421847d54fca11b6595a3c646659751fc (patch) | |
| tree | 2344ee122c86a8b9441fb474ddcc4146f2b889c8 | |
| parent | 2089758475031d2689f0d498a54e2681da2cce02 (diff) | |
| download | core-e270da9421847d54fca11b6595a3c646659751fc.tar.gz core-e270da9421847d54fca11b6595a3c646659751fc.tar.bz2 core-e270da9421847d54fca11b6595a3c646659751fc.zip | |
Fingerprint: Plumb enumerate support.
Change-Id: I5794f80404faf68d04f7b3f3b7346b9e28c99881
Signed-off-by: Sasha Levitskiy <sanek@google.com>
| -rw-r--r-- | fingerprintd/FingerprintDaemonProxy.cpp | 15 | ||||
| -rw-r--r-- | fingerprintd/FingerprintDaemonProxy.h | 1 | ||||
| -rw-r--r-- | fingerprintd/IFingerprintDaemon.cpp | 10 | ||||
| -rw-r--r-- | fingerprintd/IFingerprintDaemon.h | 2 | ||||
| -rw-r--r-- | fingerprintd/IFingerprintDaemonCallback.cpp | 8 | ||||
| -rw-r--r-- | fingerprintd/IFingerprintDaemonCallback.h | 3 |
6 files changed, 33 insertions, 6 deletions
diff --git a/fingerprintd/FingerprintDaemonProxy.cpp b/fingerprintd/FingerprintDaemonProxy.cpp index beb95de73..1c7da30c3 100644 --- a/fingerprintd/FingerprintDaemonProxy.cpp +++ b/fingerprintd/FingerprintDaemonProxy.cpp @@ -88,6 +88,16 @@ void FingerprintDaemonProxy::hal_notify_callback(const fingerprint_msg_t *msg) { msg->data.removed.finger.fid, msg->data.removed.finger.gid); break; + case FINGERPRINT_TEMPLATE_ENUMERATING: + ALOGD("onEnumerate(fid=%d, gid=%d, rem=%d)", + msg->data.enumerated.finger.fid, + msg->data.enumerated.finger.gid, + msg->data.enumerated.remaining_templates); + callback->onEnumerate(device, + msg->data.enumerated.finger.fid, + msg->data.enumerated.finger.gid, + msg->data.enumerated.remaining_templates); + break; default: ALOGE("invalid msg type: %d", msg->type); return; @@ -158,6 +168,11 @@ int32_t FingerprintDaemonProxy::remove(int32_t fingerId, int32_t groupId) { return mDevice->remove(mDevice, groupId, fingerId); } +int32_t FingerprintDaemonProxy::enumerate() { + ALOG(LOG_VERBOSE, LOG_TAG, "enumerate()\n"); + return mDevice->enumerate(mDevice); +} + uint64_t FingerprintDaemonProxy::getAuthenticatorId() { return mDevice->get_authenticator_id(mDevice); } diff --git a/fingerprintd/FingerprintDaemonProxy.h b/fingerprintd/FingerprintDaemonProxy.h index 871c0e62a..145b4c936 100644 --- a/fingerprintd/FingerprintDaemonProxy.h +++ b/fingerprintd/FingerprintDaemonProxy.h @@ -40,6 +40,7 @@ class FingerprintDaemonProxy : public BnFingerprintDaemon { virtual int32_t authenticate(uint64_t sessionId, uint32_t groupId); virtual int32_t stopAuthentication(); virtual int32_t remove(int32_t fingerId, int32_t groupId); + virtual int32_t enumerate(); virtual uint64_t getAuthenticatorId(); virtual int32_t setActiveGroup(int32_t groupId, const uint8_t* path, ssize_t pathLen); virtual int64_t openHal(); diff --git a/fingerprintd/IFingerprintDaemon.cpp b/fingerprintd/IFingerprintDaemon.cpp index 71317932c..bc4af5685 100644 --- a/fingerprintd/IFingerprintDaemon.cpp +++ b/fingerprintd/IFingerprintDaemon.cpp @@ -125,6 +125,16 @@ status_t BnFingerprintDaemon::onTransact(uint32_t code, const Parcel& data, Parc reply->writeInt32(ret); return NO_ERROR; } + case ENUMERATE: { + CHECK_INTERFACE(IFingerprintDaemon, data, reply); + if (!checkPermission(HAL_FINGERPRINT_PERMISSION)) { + return PERMISSION_DENIED; + } + const int32_t ret = enumerate(); + reply->writeNoException(); + reply->writeInt32(ret); + return NO_ERROR; + } case GET_AUTHENTICATOR_ID: { CHECK_INTERFACE(IFingerprintDaemon, data, reply); if (!checkPermission(HAL_FINGERPRINT_PERMISSION)) { diff --git a/fingerprintd/IFingerprintDaemon.h b/fingerprintd/IFingerprintDaemon.h index 1eb4ac179..23c36ff87 100644 --- a/fingerprintd/IFingerprintDaemon.h +++ b/fingerprintd/IFingerprintDaemon.h @@ -44,6 +44,7 @@ class IFingerprintDaemon : public IInterface, public IBinder::DeathRecipient { CLOSE_HAL = IBinder::FIRST_CALL_TRANSACTION + 9, INIT = IBinder::FIRST_CALL_TRANSACTION + 10, POST_ENROLL = IBinder::FIRST_CALL_TRANSACTION + 11, + ENUMERATE = IBinder::FIRST_CALL_TRANSACTION + 12, }; IFingerprintDaemon() { } @@ -60,6 +61,7 @@ class IFingerprintDaemon : public IInterface, public IBinder::DeathRecipient { virtual int32_t authenticate(uint64_t sessionId, uint32_t groupId) = 0; virtual int32_t stopAuthentication() = 0; virtual int32_t remove(int32_t fingerId, int32_t groupId) = 0; + virtual int32_t enumerate() = 0; virtual uint64_t getAuthenticatorId() = 0; virtual int32_t setActiveGroup(int32_t groupId, const uint8_t* path, ssize_t pathLen) = 0; virtual int64_t openHal() = 0; diff --git a/fingerprintd/IFingerprintDaemonCallback.cpp b/fingerprintd/IFingerprintDaemonCallback.cpp index 44d8020ae..19838c908 100644 --- a/fingerprintd/IFingerprintDaemonCallback.cpp +++ b/fingerprintd/IFingerprintDaemonCallback.cpp @@ -74,13 +74,13 @@ public: return remote()->transact(ON_REMOVED, data, &reply, IBinder::FLAG_ONEWAY); } - virtual status_t onEnumerate(int64_t devId, const int32_t* fpIds, const int32_t* gpIds, - int32_t sz) { + virtual status_t onEnumerate(int64_t devId, int32_t fpId, int32_t gpId, int32_t rem) { Parcel data, reply; data.writeInterfaceToken(IFingerprintDaemonCallback::getInterfaceDescriptor()); data.writeInt64(devId); - data.writeInt32Array(sz, fpIds); - data.writeInt32Array(sz, gpIds); + data.writeInt32(fpId); + data.writeInt32(gpId); + data.writeInt32(rem); return remote()->transact(ON_ENUMERATE, data, &reply, IBinder::FLAG_ONEWAY); } }; diff --git a/fingerprintd/IFingerprintDaemonCallback.h b/fingerprintd/IFingerprintDaemonCallback.h index 6e32213b4..e343cb4f6 100644 --- a/fingerprintd/IFingerprintDaemonCallback.h +++ b/fingerprintd/IFingerprintDaemonCallback.h @@ -44,8 +44,7 @@ class IFingerprintDaemonCallback : public IInterface { virtual status_t onAuthenticated(int64_t devId, int32_t fingerId, int32_t groupId) = 0; virtual status_t onError(int64_t devId, int32_t error) = 0; virtual status_t onRemoved(int64_t devId, int32_t fingerId, int32_t groupId) = 0; - virtual status_t onEnumerate(int64_t devId, const int32_t* fpIds, const int32_t* gpIds, - int32_t sz) = 0; + virtual status_t onEnumerate(int64_t devId, int32_t fingerId, int32_t groupId, int32_t rem) = 0; DECLARE_META_INTERFACE(FingerprintDaemonCallback); }; |
