00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #ifndef _BRISACONTROLPOINTDEVICE_H
00031 #define _BRISACONTROLPOINTDEVICE_H
00032
00033 #include <QString>
00034 #include <QList>
00035 #include <QXmlDefaultHandler>
00036 #include <QNetworkInterface>
00037 #include <QNetworkAddressEntry>
00038 #include <QtDebug>
00039 #include <QObject>
00040 #include <BrisaCore>
00041
00042 #include "brisaicon.h"
00043 #include "brisacontrolpointservice.h"
00044 #include "brisadevicexmlhandlercp.h"
00045 #include "brisaglobal.h"
00046
00047 namespace BrisaUpnp {
00048
00054 class BRISA_UPNP_EXPORT BrisaControlPointDevice: public QObject {
00055 Q_OBJECT
00056
00057 public:
00058
00064 BrisaControlPointDevice(QObject *parent = 0);
00065
00073 BrisaControlPointDevice(QTemporaryFile *xml, QUrl *url,
00074 QObject *parent = 0);
00075
00080 BrisaControlPointDevice(BrisaControlPointDevice &dev, QObject *parent = 0);
00081
00098 BrisaControlPointDevice(QString udn,
00099 QString deviceType = "",
00100 QString friendlyName = "",
00101 QString manufacturer = "",
00102 QString manufacturerURL = "",
00103 QString modelDescription = "",
00104 QString modelName = "",
00105 QString modelNumber = "",
00106 QString modelURL = "",
00107 QString serialNumber = "",
00108 QString UPC = "",
00109 QString presentationURL = "",
00110 QObject *parent = 0);
00111
00115 ~BrisaControlPointDevice();
00116
00138 typedef enum {
00139 Udn,
00140 udn,
00141 Major,
00142 major,
00143 Minor,
00144 minor,
00145 UrlBase,
00146 urlBase,
00147 DeviceType,
00148 deviceType,
00149 FriendlyName,
00150 friendlyName,
00151 Manufacturer,
00152 manufacturer,
00153 ManufacturerUrl,
00154 manufacturerUrl,
00155 ModelDescription,
00156 modelDescription,
00157 ModelName,
00158 modelName,
00159 ModelNumber,
00160 modelNumber,
00161 ModelUrl,
00162 modelUrl,
00163 SerialNumber,
00164 serialNumber,
00165 Upc,
00166 upc,
00167 PresentationUrl,
00168 presentationUrl,
00169 FileAddress,
00170 fileAddress
00171 } xmlTags;
00172
00178 QString getAttribute(xmlTags key);
00179
00185 void setAttribute(xmlTags key, QString value);
00186
00191 void addIcon(BrisaIcon *icon);
00192
00197 void addService(BrisaControlPointService *service);
00198
00203 void addDevice(BrisaControlPointDevice *device);
00204
00209 QList<BrisaIcon*> getIconList();
00210
00215 QList<BrisaControlPointService*> &getServiceList();
00216
00221 QList<BrisaControlPointDevice*> getEmbeddedDeviceList();
00222
00228 BrisaControlPointService *getServiceById(QString serviceId);
00229
00235 BrisaControlPointService *getServiceByType(QString serviceType);
00236
00240 void clear();
00241
00242 private:
00247 QList<BrisaIcon*> iconList;
00248
00253 QList<BrisaControlPointService*> serviceList;
00254
00259 QList<BrisaControlPointDevice*> embeddedDeviceList;
00260
00261 QString _major;
00262 QString _minor;
00263 QString _urlBase;
00264 QString _deviceType;
00265 QString _friendlyName;
00266 QString _manufacturer;
00267 QString _manufacturerUrl;
00268 QString _modelDescription;
00269 QString _modelName;
00270 QString _modelNumber;
00271 QString _modelUrl;
00272 QString _serialNumber;
00273 QString _udn;
00274 QString _upc;
00275 QString _presentationUrl;
00276 QString _fileAddress;
00277 };
00278
00279 }
00280
00281 #endif
00282