File indexing completed on 2024-04-28 04:49:05
0001 /* 0002 SPDX-FileCopyrightText: 2016 (c) Matthieu Gallien <matthieu_gallien@yahoo.fr> 0003 0004 SPDX-License-Identifier: LGPL-3.0-or-later 0005 */ 0006 0007 #ifndef UPNPDISCOVERALLMUSIC_H 0008 #define UPNPDISCOVERALLMUSIC_H 0009 0010 #include "datatypes.h" 0011 0012 #include <QObject> 0013 #include <QSharedPointer> 0014 0015 #include <memory> 0016 0017 class DatabaseInterface; 0018 class UpnpDiscoveryResult; 0019 class UpnpDiscoverAllMusicPrivate; 0020 class UpnpDeviceDescription; 0021 0022 class UpnpDiscoverAllMusic : public QObject 0023 { 0024 0025 Q_OBJECT 0026 0027 public: 0028 0029 explicit UpnpDiscoverAllMusic(QObject *parent = nullptr); 0030 0031 ~UpnpDiscoverAllMusic() override; 0032 0033 [[nodiscard]] [[nodiscard]] const DataTypes::ListNetworkServiceDataType& existingMediaServers() const; 0034 0035 [[nodiscard]] [[nodiscard]] const UpnpDeviceDescription &deviceDescriptionByUdn(const QString &udn) const; 0036 0037 Q_SIGNALS: 0038 0039 void newUpnpContentDirectoryService(const QString &name, const QString &uuid); 0040 0041 void removedUpnpContentDirectoryService(const QString &name); 0042 0043 void searchAllMediaServers(int maxDelay); 0044 0045 public Q_SLOTS: 0046 0047 void newDevice(const UpnpDiscoveryResult &serviceDiscovery); 0048 0049 void removedDevice(const UpnpDiscoveryResult &serviceDiscovery); 0050 0051 void networkChanged(); 0052 0053 private Q_SLOTS: 0054 0055 void deviceDescriptionChanged(const QString &uuid); 0056 0057 void descriptionParsed(const QString &UDN); 0058 0059 private: 0060 0061 std::unique_ptr<UpnpDiscoverAllMusicPrivate> d; 0062 0063 }; 0064 0065 #endif // UPNPDISCOVERALLMUSIC_H