File indexing completed on 2024-04-28 04:49:05
0001 /* 0002 SPDX-FileCopyrightText: 2015 (c) Matthieu Gallien <matthieu_gallien@yahoo.fr> 0003 0004 SPDX-License-Identifier: LGPL-3.0-or-later 0005 */ 0006 0007 #ifndef UPNPCONTROLCONTENTDIRECTORY_H 0008 #define UPNPCONTROLCONTENTDIRECTORY_H 0009 0010 #include "upnpcontrolabstractservice.h" 0011 #include "upnpbasictypes.h" 0012 0013 #include <memory> 0014 0015 class UpnpControlContentDirectoryPrivate; 0016 class UpnpControlAbstractServiceReply; 0017 0018 class UpnpControlContentDirectory : public UpnpControlAbstractService 0019 { 0020 Q_OBJECT 0021 0022 Q_PROPERTY(QString searchCapabilities 0023 READ searchCapabilities 0024 NOTIFY searchCapabilitiesChanged) 0025 0026 Q_PROPERTY(QString transferIDs 0027 READ transferIDs 0028 NOTIFY transferIDsChanged) 0029 0030 Q_PROPERTY(bool hasTransferIDs 0031 READ hasTransferIDs 0032 NOTIFY hasTransferIDsChanged) 0033 0034 Q_PROPERTY(QString sortCapabilities 0035 READ sortCapabilities 0036 NOTIFY sortCapabilitiesChanged) 0037 0038 Q_PROPERTY(int systemUpdateID 0039 READ systemUpdateID 0040 NOTIFY systemUpdateIDChanged) 0041 0042 public: 0043 0044 explicit UpnpControlContentDirectory(QObject *parent = nullptr); 0045 0046 ~UpnpControlContentDirectory() override; 0047 0048 [[nodiscard]] const QString& searchCapabilities() const; 0049 0050 [[nodiscard]] const QString& transferIDs() const; 0051 0052 [[nodiscard]] bool hasTransferIDs() const; 0053 0054 [[nodiscard]] const QString& sortCapabilities() const; 0055 0056 [[nodiscard]] int systemUpdateID() const; 0057 0058 public Q_SLOTS: 0059 0060 UpnpControlAbstractServiceReply* getSearchCapabilities(); 0061 0062 UpnpControlAbstractServiceReply* getSortCapabilities(); 0063 0064 UpnpControlAbstractServiceReply* getSystemUpdateID(); 0065 0066 UpnpControlAbstractServiceReply* search(const QString &objectID, const QString &searchCriteria, 0067 const QString &filter, int startingIndex, 0068 int requestedCount, const QString &sortCriteria); 0069 0070 UpnpControlAbstractServiceReply* browse(const QString &objectID, const QString &browseFlag, 0071 const QString &filter, int startingIndex, 0072 int requestedCount, const QString &sortCriteria); 0073 0074 Q_SIGNALS: 0075 0076 void searchCapabilitiesChanged(const QString &capabilities); 0077 0078 void transferIDsChanged(const QString &ids); 0079 0080 void hasTransferIDsChanged(); 0081 0082 void sortCapabilitiesChanged(const QString &capabilities); 0083 0084 void systemUpdateIDChanged(int id); 0085 0086 private Q_SLOTS: 0087 0088 protected: 0089 0090 void parseServiceDescription(QIODevice *serviceDescriptionContent) override; 0091 0092 void parseEventNotification(const QString &eventName, const QString &eventValue) Q_DECL_OVERRIDE; 0093 0094 private: 0095 0096 std::unique_ptr<UpnpControlContentDirectoryPrivate> d; 0097 0098 }; 0099 0100 #endif // UPNPCONTROLCONTENTDIRECTORY_H 0101