kodi
UPnPRenderer.h
1 /*
2  * Copyright (C) 2012-2018 Team Kodi
3  * This file is part of Kodi - https://kodi.tv
4  *
5  * SPDX-License-Identifier: GPL-2.0-or-later
6  * See LICENSES/README.md for more information.
7  */
8 
9 #pragma once
10 
11 #include "interfaces/IAnnouncer.h"
12 
13 #include <Platinum/Source/Devices/MediaRenderer/PltMediaRenderer.h>
14 
15 class CVariant;
16 
17 namespace UPNP
18 {
19 
21 {
22 public:
23  PLT_DeviceHostReference m_Device;
24 };
25 
28 {
29 public:
30  CUPnPRenderer(const char* friendly_name,
31  bool show_ip = false,
32  const char* uuid = NULL,
33  unsigned int port = 0);
34 
35  ~CUPnPRenderer() override;
36 
37  void Announce(ANNOUNCEMENT::AnnouncementFlag flag,
38  const std::string& sender,
39  const std::string& message,
40  const CVariant& data) override;
41  void UpdateState();
42 
43  // Http server handler
44  NPT_Result ProcessHttpGetRequest(NPT_HttpRequest& request,
45  const NPT_HttpRequestContext& context,
46  NPT_HttpResponse& response) override;
47 
48  // AVTransport methods
49  NPT_Result OnNext(PLT_ActionReference& action) override;
50  NPT_Result OnPause(PLT_ActionReference& action) override;
51  NPT_Result OnPlay(PLT_ActionReference& action) override;
52  NPT_Result OnPrevious(PLT_ActionReference& action) override;
53  NPT_Result OnStop(PLT_ActionReference& action) override;
54  NPT_Result OnSeek(PLT_ActionReference& action) override;
55  NPT_Result OnSetAVTransportURI(PLT_ActionReference& action) override;
56  NPT_Result OnSetNextAVTransportURI(PLT_ActionReference& action) override;
57 
58  // RenderingControl methods
59  NPT_Result OnSetVolume(PLT_ActionReference& action) override;
60  NPT_Result OnSetMute(PLT_ActionReference& action) override;
61 
62 private:
63  NPT_Result SetupServices() override;
64  NPT_Result SetupIcons() override;
65  NPT_Result GetMetadata(NPT_String& meta);
66  NPT_Result PlayMedia(const NPT_String& uri,
67  const NPT_String& meta,
68  PLT_Action* action = NULL);
69  NPT_Result Reset(PLT_Service* avt);
70  NPT_String GetTransportState();
71  NPT_Mutex m_state;
72 };
73 
74 } /* namespace UPNP */
75 
Definition: NptHttp.h:566
Definition: NptHttp.h:315
Definition: IAnnouncer.h:70
Definition: NptHttp.h:282
UPnP Service.
Definition: PltService.h:67
Definition: NptThreads.h:76
Definition: Variant.h:31
Definition: UPnP.cpp:118
Definition: UPnPRenderer.h:26
The PLT_Action class provides a mechanism to call or verify the validity of a specific UPNP service a...
Definition: PltAction.h:121
Definition: UPnPRenderer.h:20
Definition: PltMediaRenderer.h:75
Definition: NptStrings.h:57