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 UPNPLISTENER_H 0008 #define UPNPLISTENER_H 0009 0010 #include "datatypes.h" 0011 0012 #include <QObject> 0013 #include <QString> 0014 0015 #include <memory> 0016 0017 class UpnpListenerPrivate; 0018 0019 class DatabaseInterface; 0020 0021 class UpnpListener : public QObject 0022 { 0023 Q_OBJECT 0024 0025 Q_PROPERTY(DatabaseInterface* databaseInterface 0026 READ databaseInterface 0027 WRITE setDatabaseInterface 0028 NOTIFY databaseInterfaceChanged) 0029 0030 public: 0031 0032 explicit UpnpListener(QObject *parent = nullptr); 0033 0034 ~UpnpListener() override; 0035 0036 DatabaseInterface* databaseInterface() const; 0037 0038 Q_SIGNALS: 0039 0040 void databaseInterfaceChanged(); 0041 0042 void databaseReady(); 0043 0044 void initialTracksListRequired(QString musicSource); 0045 0046 void initialTracksList(QString musicSource, DataTypes::ListUpnpTrackDataType initialList); 0047 0048 public Q_SLOTS: 0049 0050 void setDatabaseInterface(DatabaseInterface* databaseInterface); 0051 0052 void applicationAboutToQuit(); 0053 0054 private: 0055 0056 std::unique_ptr<UpnpListenerPrivate> d; 0057 0058 }; 0059 0060 #endif // UPNPLISTENER_H