File indexing completed on 2024-05-12 04:01:43
0001 /* 0002 SPDX-FileCopyrightText: 2020 MBition GmbH 0003 SPDX-FileContributor: Kai Uwe Broulik <kai_uwe.broulik@mbition.io> 0004 SPDX-FileCopyrightText: 2023 Harald Sitter <sitter@kde.org> 0005 0006 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0007 */ 0008 0009 #ifndef SOLID_BACKENDS_IMOBILE_IMOBILEMANAGER_H 0010 #define SOLID_BACKENDS_IMOBILE_IMOBILEMANAGER_H 0011 0012 #include <solid/devices/ifaces/devicemanager.h> 0013 0014 #include <libimobiledevice/libimobiledevice.h> 0015 0016 class QFileSystemWatcher; 0017 0018 namespace Solid 0019 { 0020 namespace Backends 0021 { 0022 namespace IMobile 0023 { 0024 class Manager : public Solid::Ifaces::DeviceManager 0025 { 0026 Q_OBJECT 0027 0028 public: 0029 explicit Manager(QObject *parent); 0030 ~Manager() override; 0031 0032 QObject *createDevice(const QString &udi) override; 0033 QStringList devicesFromQuery(const QString &parentUdi, Solid::DeviceInterface::Type type) override; 0034 QStringList allDevices() override; 0035 QSet<Solid::DeviceInterface::Type> supportedInterfaces() const override; 0036 QString udiPrefix() const override; 0037 0038 void onDeviceEvent(const idevice_event_t *event); 0039 0040 private: 0041 void spinUp(); 0042 bool m_spunUp = false; 0043 QStringList m_deviceUdis; 0044 std::unique_ptr<QFileSystemWatcher> m_watcher; 0045 }; 0046 0047 } // namespace IMobile 0048 } // namespace Backends 0049 } // namespace Solid 0050 0051 #endif // SOLID_BACKENDS_IMOBILE_IMOBILEMANAGER_H