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