MythTV master
upnp.h
Go to the documentation of this file.
1
2// Program Name: upnp.h
3// Created : Oct. 24, 2005
4//
5// Purpose : UPnp Main Class
6//
7// Copyright (c) 2005 David Blain <dblain@mythtv.org>
8//
9// Licensed under the GPL v2 or later, see LICENSE for details
10//
12
13#ifndef UPNP_H
14#define UPNP_H
15
16// Qt
17#include <QObject>
18
19// MythTV
21
23//
25
26#include "upnpdevice.h"
27#include "httpserver.h"
28
30//
32
34{
36
53
73
81
83
86};
87
90//
91//
92//
95
96class UPNP_PUBLIC UPnp : public QObject
97{
98 Q_OBJECT
99
100 protected:
101
102 HttpServer *m_pHttpServer {nullptr};
103 int m_nServicePort {0};
104
105 public:
106
108 static QList<QHostAddress> g_IPAddrList;
109
110 public:
111 UPnp();
112 ~UPnp() override;
113
114 bool Initialize( int nServicePort, HttpServer *pHttpServer );
115 bool Initialize( QList<QHostAddress> &sIPAddrList, int nServicePort,
116 HttpServer *pHttpServer );
117
118 bool isInitialized() { return (m_pHttpServer != nullptr); }
119
120 virtual void Start();
121
122 static void CleanUp ();
123
124 static UPnpDevice *RootDevice() { return &(g_UPnpDeviceDesc.m_rootDevice); }
125
126 HttpServer *GetHttpServer() { return m_pHttpServer; }
127
128 static UPnpDeviceDesc *GetDeviceDesc( QString &sURL );
129
130 static QString GetResultDesc( UPnPResultCode eCode );
131 static void FormatErrorResponse( HTTPRequest *pRequest,
132 UPnPResultCode eCode,
133 const QString &sMsg = "" );
134
135 static void FormatRedirectResponse( HTTPRequest *pRequest,
136 const QString &hostName );
137
138 public slots:
139 static void DisableNotifications(std::chrono::milliseconds /*unused*/);
140 void EnableNotificatins(std::chrono::milliseconds /*unused*/) const;
141
142 private:
144};
145
146#endif // UPNP_H
UPnpDevice m_rootDevice
Definition: upnpdevice.h:158
Definition: upnp.h:97
static UPnpDevice * RootDevice()
Definition: upnp.h:124
static QList< QHostAddress > g_IPAddrList
Definition: upnp.h:108
bool isInitialized()
Definition: upnp.h:118
MythPower * m_power
Definition: upnp.h:143
HttpServer * GetHttpServer()
Definition: upnp.h:126
static UPnpDeviceDesc g_UPnpDeviceDesc
Definition: upnp.h:107
unsigned short uint16_t
Definition: iso6937tables.h:3
UPnPResultCode
Definition: upnp.h:34
@ UPnPResult_MS_AccessDenied
Definition: upnp.h:82
@ UPnPResult_CDS_NoSuchDestRes
Definition: upnp.h:70
@ UPnPResult_InvalidControlURL
Definition: upnp.h:51
@ UPnPResult_ArgumentValueOutOfRange
Definition: upnp.h:41
@ UPnPResult_CMGR_AccessDenied
Definition: upnp.h:78
@ UPnPResult_CDS_InvalidSortCriteria
Definition: upnp.h:61
@ UPnPResult_CMGR_InvalidConnectionRef
Definition: upnp.h:79
@ UPnPResult_CDS_NoSuchSourceResource
Definition: upnp.h:66
@ UPnPResult_CDS_ParameterMismatch
Definition: upnp.h:59
@ UPnPResult_CMGR_LocalRestrictions
Definition: upnp.h:77
@ UPnPResult_OutOfMemory
Definition: upnp.h:43
@ UPnPResult_CDS_TransferBusy
Definition: upnp.h:68
@ UPnPResult_CDS_InvalidNewTagValue
Definition: upnp.h:56
@ UPnPResult_CDS_InvalidSearchCriteria
Definition: upnp.h:60
@ UPnPResult_NotEncrypted
Definition: upnp.h:49
@ UPnPResult_CDS_DestResAccessDenied
Definition: upnp.h:71
@ UPnPResult_HumanInterventionRequired
Definition: upnp.h:44
@ UPnPResult_Success
Definition: upnp.h:35
@ UPnPResult_OptionalActionNotImplemented
Definition: upnp.h:42
@ UPnPResult_CDS_CannotProcessRequest
Definition: upnp.h:72
@ UPnPResult_ArgumentValueInvalid
Definition: upnp.h:40
@ UPnPResult_MythTV_XmlParseError
Definition: upnp.h:85
@ UPnPResult_InvalidAction
Definition: upnp.h:37
@ UPnPResult_CDS_NoSuchContainer
Definition: upnp.h:62
@ UPnPResult_StringArgumentTooLong
Definition: upnp.h:45
@ UPnPResult_ActionFailed
Definition: upnp.h:39
@ UPnPResult_CDS_NoSuchObject
Definition: upnp.h:54
@ UPnPResult_CDS_RestrictedObject
Definition: upnp.h:63
@ UPnPResult_CDS_BadMetadata
Definition: upnp.h:64
@ UPnPResult_CDS_InvalidCurrentTagValue
Definition: upnp.h:55
@ UPnPResult_CDS_ResrtictedParentObject
Definition: upnp.h:65
@ UPnPResult_ActionNotAuthorized
Definition: upnp.h:46
@ UPnPResult_CMGR_InsufficientNetResources
Definition: upnp.h:76
@ UPnPResult_CMGR_IncompatibleDirections
Definition: upnp.h:75
@ UPnPResult_NoSuchSession
Definition: upnp.h:52
@ UPnPResult_CDS_ResourceAccessDenied
Definition: upnp.h:67
@ UPnPResult_CDS_RequiredTag
Definition: upnp.h:57
@ UPnPResult_CMGR_NotInNetwork
Definition: upnp.h:80
@ UPnPResult_CMGR_IncompatibleProtocol
Definition: upnp.h:74
@ UPnPResult_CDS_NoSuchFileTransfer
Definition: upnp.h:69
@ UPnPResult_InvalidSequence
Definition: upnp.h:50
@ UPnPResult_CDS_ReadOnlyTag
Definition: upnp.h:58
@ UPnPResult_SignatureMissing
Definition: upnp.h:48
@ UPnPResult_MythTV_NoNamespaceGiven
Definition: upnp.h:84
@ UPnPResult_SignatureFailure
Definition: upnp.h:47
@ UPnPResult_InvalidArgs
Definition: upnp.h:38
#define UPNP_PUBLIC
Definition: upnpexp.h:9