digiKam
dlnaserver.h
Go to the documentation of this file.
1 /* ============================================================
2  *
3  * This file is a part of digiKam project
4  * https://www.digikam.org
5  *
6  * Date : 2017-09-24
7  * Description : a media server to export collections through DLNA.
8  * Implementation inspired on Platinum File Media Server.
9  *
10  * Copyright (C) 2017-2022 by Gilles Caulier <caulier dot gilles at gmail dot com>
11  *
12  * This program is free software; you can redistribute it
13  * and/or modify it under the terms of the GNU General
14  * Public License as published by the Free Software Foundation;
15  * either version 2, or (at your option) any later version.
16  *
17  * This program is distributed in the hope that it will be useful,
18  * but WITHOUT ANY WARRANTY; without even the implied warranty of
19  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20  * GNU General Public License for more details.
21  *
22  * ============================================================ */
23 
24 #ifndef DIGIKAM_DLNA_SERVER_H
25 #define DIGIKAM_DLNA_SERVER_H
26 
27 // Qt includes
28 
29 #include <QImage>
30 #include <QString>
31 #include <QByteArray>
32 
33 // Qt includes
34 
35 #include <QApplication>
36 #include <QStandardPaths>
37 #include <QBuffer>
38 #include <QIODevice>
39 
40 // Local includes
41 
42 #include "digikam_debug.h"
43 #include "dmediaserver.h"
44 #include "dlnaserverdelegate.h"
45 
46 // Platinum includes
47 
48 #include "Neptune.h"
49 #include "PltMediaServer.h"
50 
51 using namespace Digikam;
52 
54 {
55 
61 class DLNAMediaServer : public PLT_MediaServer,
63 {
64 
65 public:
66 
67  explicit DLNAMediaServer(const char* friendly_name,
68  bool show_ip = false,
69  const char* uuid = nullptr,
70  NPT_UInt16 port = 0,
71  bool port_rebind = false);
72 
73  void addAlbumsOnServer(const MediaServerMap& map);
74 
75  NPT_Result SetupIcons() override;
76 
77 protected:
78 
79  ~DLNAMediaServer() override;
80 
81 private:
82 
83  QByteArray iconData(const QImage& img, int size, QString& uri, int& depth) const;
84 };
85 
86 } // namespace DigikamGenericMediaServerPlugin
87 
88 #endif // DIGIKAM_DLNA_SERVER_H
Definition: dmediaserverdlg.cpp:54
QMap< QString, QList< QUrl > > MediaServerMap
A kind of map of albums with urls contents to share with DLNA media server.
Definition: dmediaserver.h:38
Definition: datefolderview.cpp:43