File indexing completed on 2024-12-22 05:16:04
0001 /* 0002 Copyright 2020 Devin Lin <espidev@gmail.com> 0003 0004 This library is free software; you can redistribute it and/or 0005 modify it under the terms of the GNU Lesser General Public 0006 License as published by the Free Software Foundation; either 0007 version 2.1 of the License, or (at your option) version 3, or any 0008 later version accepted by the membership of KDE e.V. (or its 0009 successor approved by the membership of KDE e.V.), which shall 0010 act as a proxy defined in Section 6 of version 3 of the license. 0011 0012 This library is distributed in the hope that it will be useful, 0013 but WITHOUT ANY WARRANTY; without even the implied warranty of 0014 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 0015 Lesser General Public License for more details. 0016 0017 You should have received a copy of the GNU Lesser General Public 0018 License along with this library. If not, see <http://www.gnu.org/licenses/>. 0019 */ 0020 0021 #pragma once 0022 0023 #include "fprint_device_interface.h" 0024 #include "fprint_manager_interface.h" 0025 0026 class FprintDevice : public QObject 0027 { 0028 Q_OBJECT 0029 0030 public: 0031 enum ScanType { 0032 Press, 0033 Swipe, 0034 }; 0035 Q_ENUM(ScanType); 0036 0037 explicit FprintDevice(QDBusObjectPath path, QObject *parent = nullptr); 0038 0039 QDBusPendingReply<QStringList> listEnrolledFingers(const QString &username); 0040 0041 QDBusError claim(const QString &username); 0042 QDBusError release(); 0043 0044 QDBusError deleteEnrolledFingers(); 0045 QDBusError deleteEnrolledFinger(QString &finger); 0046 QDBusError startEnrolling(const QString &finger); 0047 QDBusError stopEnrolling(); 0048 0049 int numOfEnrollStages(); 0050 ScanType scanType(); 0051 bool fingerPresent(); 0052 bool fingerNeeded(); 0053 0054 public Q_SLOTS: 0055 void enrollStatus(QString result, bool done); 0056 0057 Q_SIGNALS: 0058 void enrollCompleted(); 0059 void enrollStagePassed(); 0060 void enrollRetryStage(QString feedback); 0061 void enrollFailed(QString error); 0062 0063 private: 0064 QString m_devicePath; 0065 QString m_username; 0066 NetReactivatedFprintDeviceInterface *m_fprintInterface; 0067 QDBusInterface *m_freedesktopInterface; 0068 };