1/*
2 Copyright 2010 Michael Zanetti <mzanetti@kde.org>
3
4 This library is free software; you can redistribute it and/or
5 modify it under the terms of the GNU Lesser General Public
6 License as published by the Free Software Foundation; either
7 version 2.1 of the License, or (at your option) version 3, or any
8 later version accepted by the membership of KDE e.V. (or its
9 successor approved by the membership of KDE e.V.), which shall
10 act as a proxy defined in Section 6 of version 3 of the license.
11
12 This library is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 Lesser General Public License for more details.
16
17 You should have received a copy of the GNU Lesser General Public
18 License along with this library. If not, see <http://www.gnu.org/licenses/>.
19*/
20
21#ifndef UDISKS2DEVICEINTERFACE_H
22#define UDISKS2DEVICEINTERFACE_H
23
24#include <ifaces/deviceinterface.h>
25#include "udisksdevice.h"
26
27#include <QtCore/QObject>
28#include <QtCore/QStringList>
29
30namespace Solid
31{
32namespace Backends
33{
34namespace UDisks2
35{
36
37class DeviceInterface : public QObject, virtual public Solid::Ifaces::DeviceInterface
38{
39 Q_OBJECT
40 Q_INTERFACES(Solid::Ifaces::DeviceInterface)
41public:
42 DeviceInterface(Device *device);
43 virtual ~DeviceInterface();
44
45protected:
46 Device *m_device;
47
48public:
49 inline static QStringList toStringList(Solid::DeviceInterface::Type type)
50 {
51 QStringList list;
52
53 switch(type)
54 {
55 case Solid::DeviceInterface::GenericInterface:
56 list << "generic";
57 break;
58 case Solid::DeviceInterface::Processor:
59 // Doesn't exist with UDisks
60 break;
61 case Solid::DeviceInterface::Block:
62 list << "block";
63 break;
64 case Solid::DeviceInterface::StorageAccess:
65 list << "volume";
66 break;
67 case Solid::DeviceInterface::StorageDrive:
68 list << "storage";
69 break;
70 case Solid::DeviceInterface::OpticalDrive:
71 list << "storage.cdrom";
72 break;
73 case Solid::DeviceInterface::StorageVolume:
74 list << "volume";
75 break;
76 case Solid::DeviceInterface::OpticalDisc:
77 list << "volume.disc";
78 break;
79 case Solid::DeviceInterface::Camera:
80 // Doesn't exist with UDisks
81 break;
82 case Solid::DeviceInterface::PortableMediaPlayer:
83 // Doesn't exist with UDisks
84 break;
85 case Solid::DeviceInterface::NetworkInterface:
86 // Doesn't exist with UDisks
87 break;
88 case Solid::DeviceInterface::AcAdapter:
89 // Doesn't exist with UDisks
90 break;
91 case Solid::DeviceInterface::Battery:
92 // Doesn't exist with UDisks
93 break;
94 case Solid::DeviceInterface::Button:
95 // Doesn't exist with UDisks
96 break;
97 case Solid::DeviceInterface::AudioInterface:
98 // Doesn't exist with UDisks
99 break;
100 case Solid::DeviceInterface::DvbInterface:
101 // Doesn't exist with UDisks
102 break;
103 case Solid::DeviceInterface::Video:
104 // Doesn't exist with UDisks
105 break;
106 case Solid::DeviceInterface::SerialInterface:
107 // Doesn't exist with UDisks
108 break;
109 case Solid::DeviceInterface::InternetGateway:
110 break;
111 case Solid::DeviceInterface::SmartCardReader:
112 // Doesn't exist with UDisks
113 case Solid::DeviceInterface::NetworkShare:
114 // Doesn't exist with UDisks
115 break;
116 case Solid::DeviceInterface::Unknown:
117 break;
118 case Solid::DeviceInterface::Last:
119 break;
120 }
121
122 return list;
123 }
124
125 inline static Solid::DeviceInterface::Type fromString(const QString &capability)
126 {
127 if (capability == "generic")
128 return Solid::DeviceInterface::GenericInterface;
129 else if (capability == "block")
130 return Solid::DeviceInterface::Block;
131 else if (capability == "storage")
132 return Solid::DeviceInterface::StorageDrive;
133 else if (capability == "storage.cdrom")
134 return Solid::DeviceInterface::OpticalDrive;
135 else if (capability == "volume")
136 return Solid::DeviceInterface::StorageVolume;
137 else if (capability == "volume.disc")
138 return Solid::DeviceInterface::OpticalDisc;
139 else
140 return Solid::DeviceInterface::Unknown;
141 }
142};
143
144}
145}
146}
147
148#endif // UDISKS2DEVICEINTERFACE_H
149