summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fingerprintd/FingerprintDaemonProxy.cpp15
-rw-r--r--fingerprintd/FingerprintDaemonProxy.h1
-rw-r--r--fingerprintd/IFingerprintDaemon.cpp10
-rw-r--r--fingerprintd/IFingerprintDaemon.h2
-rw-r--r--fingerprintd/IFingerprintDaemonCallback.cpp8
-rw-r--r--fingerprintd/IFingerprintDaemonCallback.h3
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) {
88 msg->data.removed.finger.fid, 88 msg->data.removed.finger.fid,
89 msg->data.removed.finger.gid); 89 msg->data.removed.finger.gid);
90 break; 90 break;
91 case FINGERPRINT_TEMPLATE_ENUMERATING:
92 ALOGD("onEnumerate(fid=%d, gid=%d, rem=%d)",
93 msg->data.enumerated.finger.fid,
94 msg->data.enumerated.finger.gid,
95 msg->data.enumerated.remaining_templates);
96 callback->onEnumerate(device,
97 msg->data.enumerated.finger.fid,
98 msg->data.enumerated.finger.gid,
99 msg->data.enumerated.remaining_templates);
100 break;
91 default: 101 default:
92 ALOGE("invalid msg type: %d", msg->type); 102 ALOGE("invalid msg type: %d", msg->type);
93 return; 103 return;
@@ -158,6 +168,11 @@ int32_t FingerprintDaemonProxy::remove(int32_t fingerId, int32_t groupId) {
158 return mDevice->remove(mDevice, groupId, fingerId); 168 return mDevice->remove(mDevice, groupId, fingerId);
159} 169}
160 170
171int32_t FingerprintDaemonProxy::enumerate() {
172 ALOG(LOG_VERBOSE, LOG_TAG, "enumerate()\n");
173 return mDevice->enumerate(mDevice);
174}
175
161uint64_t FingerprintDaemonProxy::getAuthenticatorId() { 176uint64_t FingerprintDaemonProxy::getAuthenticatorId() {
162 return mDevice->get_authenticator_id(mDevice); 177 return mDevice->get_authenticator_id(mDevice);
163} 178}
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 {
40 virtual int32_t authenticate(uint64_t sessionId, uint32_t groupId); 40 virtual int32_t authenticate(uint64_t sessionId, uint32_t groupId);
41 virtual int32_t stopAuthentication(); 41 virtual int32_t stopAuthentication();
42 virtual int32_t remove(int32_t fingerId, int32_t groupId); 42 virtual int32_t remove(int32_t fingerId, int32_t groupId);
43 virtual int32_t enumerate();
43 virtual uint64_t getAuthenticatorId(); 44 virtual uint64_t getAuthenticatorId();
44 virtual int32_t setActiveGroup(int32_t groupId, const uint8_t* path, ssize_t pathLen); 45 virtual int32_t setActiveGroup(int32_t groupId, const uint8_t* path, ssize_t pathLen);
45 virtual int64_t openHal(); 46 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
125 reply->writeInt32(ret); 125 reply->writeInt32(ret);
126 return NO_ERROR; 126 return NO_ERROR;
127 } 127 }
128 case ENUMERATE: {
129 CHECK_INTERFACE(IFingerprintDaemon, data, reply);
130 if (!checkPermission(HAL_FINGERPRINT_PERMISSION)) {
131 return PERMISSION_DENIED;
132 }
133 const int32_t ret = enumerate();
134 reply->writeNoException();
135 reply->writeInt32(ret);
136 return NO_ERROR;
137 }
128 case GET_AUTHENTICATOR_ID: { 138 case GET_AUTHENTICATOR_ID: {
129 CHECK_INTERFACE(IFingerprintDaemon, data, reply); 139 CHECK_INTERFACE(IFingerprintDaemon, data, reply);
130 if (!checkPermission(HAL_FINGERPRINT_PERMISSION)) { 140 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 {
44 CLOSE_HAL = IBinder::FIRST_CALL_TRANSACTION + 9, 44 CLOSE_HAL = IBinder::FIRST_CALL_TRANSACTION + 9,
45 INIT = IBinder::FIRST_CALL_TRANSACTION + 10, 45 INIT = IBinder::FIRST_CALL_TRANSACTION + 10,
46 POST_ENROLL = IBinder::FIRST_CALL_TRANSACTION + 11, 46 POST_ENROLL = IBinder::FIRST_CALL_TRANSACTION + 11,
47 ENUMERATE = IBinder::FIRST_CALL_TRANSACTION + 12,
47 }; 48 };
48 49
49 IFingerprintDaemon() { } 50 IFingerprintDaemon() { }
@@ -60,6 +61,7 @@ class IFingerprintDaemon : public IInterface, public IBinder::DeathRecipient {
60 virtual int32_t authenticate(uint64_t sessionId, uint32_t groupId) = 0; 61 virtual int32_t authenticate(uint64_t sessionId, uint32_t groupId) = 0;
61 virtual int32_t stopAuthentication() = 0; 62 virtual int32_t stopAuthentication() = 0;
62 virtual int32_t remove(int32_t fingerId, int32_t groupId) = 0; 63 virtual int32_t remove(int32_t fingerId, int32_t groupId) = 0;
64 virtual int32_t enumerate() = 0;
63 virtual uint64_t getAuthenticatorId() = 0; 65 virtual uint64_t getAuthenticatorId() = 0;
64 virtual int32_t setActiveGroup(int32_t groupId, const uint8_t* path, ssize_t pathLen) = 0; 66 virtual int32_t setActiveGroup(int32_t groupId, const uint8_t* path, ssize_t pathLen) = 0;
65 virtual int64_t openHal() = 0; 67 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:
74 return remote()->transact(ON_REMOVED, data, &reply, IBinder::FLAG_ONEWAY); 74 return remote()->transact(ON_REMOVED, data, &reply, IBinder::FLAG_ONEWAY);
75 } 75 }
76 76
77 virtual status_t onEnumerate(int64_t devId, const int32_t* fpIds, const int32_t* gpIds, 77 virtual status_t onEnumerate(int64_t devId, int32_t fpId, int32_t gpId, int32_t rem) {
78 int32_t sz) {
79 Parcel data, reply; 78 Parcel data, reply;
80 data.writeInterfaceToken(IFingerprintDaemonCallback::getInterfaceDescriptor()); 79 data.writeInterfaceToken(IFingerprintDaemonCallback::getInterfaceDescriptor());
81 data.writeInt64(devId); 80 data.writeInt64(devId);
82 data.writeInt32Array(sz, fpIds); 81 data.writeInt32(fpId);
83 data.writeInt32Array(sz, gpIds); 82 data.writeInt32(gpId);
83 data.writeInt32(rem);
84 return remote()->transact(ON_ENUMERATE, data, &reply, IBinder::FLAG_ONEWAY); 84 return remote()->transact(ON_ENUMERATE, data, &reply, IBinder::FLAG_ONEWAY);
85 } 85 }
86}; 86};
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 {
44 virtual status_t onAuthenticated(int64_t devId, int32_t fingerId, int32_t groupId) = 0; 44 virtual status_t onAuthenticated(int64_t devId, int32_t fingerId, int32_t groupId) = 0;
45 virtual status_t onError(int64_t devId, int32_t error) = 0; 45 virtual status_t onError(int64_t devId, int32_t error) = 0;
46 virtual status_t onRemoved(int64_t devId, int32_t fingerId, int32_t groupId) = 0; 46 virtual status_t onRemoved(int64_t devId, int32_t fingerId, int32_t groupId) = 0;
47 virtual status_t onEnumerate(int64_t devId, const int32_t* fpIds, const int32_t* gpIds, 47 virtual status_t onEnumerate(int64_t devId, int32_t fingerId, int32_t groupId, int32_t rem) = 0;
48 int32_t sz) = 0;
49 48
50 DECLARE_META_INTERFACE(FingerprintDaemonCallback); 49 DECLARE_META_INTERFACE(FingerprintDaemonCallback);
51}; 50};