1 /*
2     This file is part of the KMTP framework, part of the KDE project.
3 
4     SPDX-FileCopyrightText: 2018 Andreas Krutzler <andreas.krutzler@gmx.net>
5 
6     SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
7 */
8 
9 #include "kmtpdeviceinterface.h"
10 #include "kmtpstorageinterface.h"
11 
KMTPDeviceInterface(const QString & dbusObjectPath,QObject * parent)12 KMTPDeviceInterface::KMTPDeviceInterface(const QString &dbusObjectPath, QObject *parent)
13     : QObject(parent)
14 {
15     m_dbusInterface = new org::kde::kmtp::Device(QStringLiteral("org.kde.kiod5"),
16                                                  dbusObjectPath,
17                                                  QDBusConnection::sessionBus(),
18                                                  this);
19 
20     const auto storageNames = m_dbusInterface->listStorages().value();
21     m_storages.reserve(storageNames.count());
22     for (const QDBusObjectPath &storageName : storageNames) {
23         m_storages.append(new KMTPStorageInterface(storageName.path(), this));
24     }
25 }
26 
udi() const27 QString KMTPDeviceInterface::udi() const
28 {
29     return m_dbusInterface->udi();
30 }
31 
friendlyName() const32 QString KMTPDeviceInterface::friendlyName() const
33 {
34     return m_dbusInterface->friendlyName();
35 }
36 
storages() const37 QVector<KMTPStorageInterface *> KMTPDeviceInterface::storages() const
38 {
39     return m_storages;
40 }
41 
storageFromDescription(const QString & description) const42 KMTPStorageInterface *KMTPDeviceInterface::storageFromDescription(const QString &description) const
43 {
44     auto storageIt = std::find_if(m_storages.constBegin(), m_storages.constEnd(), [description] (KMTPStorageInterface *storage) {
45         return storage->description() == description;
46     });
47 
48     return storageIt == m_storages.constEnd() ? nullptr : *storageIt;
49 }
50 
setFriendlyName(const QString & friendlyName)51 int KMTPDeviceInterface::setFriendlyName(const QString &friendlyName)
52 {
53     return m_dbusInterface->setFriendlyName(friendlyName);
54 }
55 
56 #include "moc_kmtpdeviceinterface.cpp"
57