libupnpp 0.16.0
A C++ wrapper for the Portable UPnP reference library
renderingcontrol.hxx
1/* Copyright (C) 2006-2016 J.F.Dockes
2 *
3 * This library is free software; you can redistribute it and/or
4 * modify it under the terms of the GNU Lesser General Public
5 * License as published by the Free Software Foundation; either
6 * version 2.1 of the License, or (at your option) any later version.
7 *
8 * This library is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 * Lesser General Public License for more details.
12 *
13 * You should have received a copy of the GNU Lesser General Public
14 * License along with this library; if not, write to the Free Software
15 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
16 * 02110-1301 USA
17 */
18#ifndef _RENDERINGCONTROL_HXX_INCLUDED_
19#define _RENDERINGCONTROL_HXX_INCLUDED_
20
21#include <string>
22
23#include "service.hxx"
24
25
26namespace UPnPClient {
27
28class RenderingControl;
29class UPnPDeviceDesc;
30class UPnPServiceDesc;
31
32typedef std::shared_ptr<RenderingControl> RDCH;
33
38class UPNPP_API RenderingControl : public Service {
39public:
40
42 RenderingControl(const UPnPDeviceDesc& device,
43 const UPnPServiceDesc& service);
44
46 static bool isRDCService(const std::string& st);
47 bool serviceTypeMatch(const std::string& tp) override;
48
52 int setVolume(int volume, const std::string& channel = "Master");
54 int getVolume(const std::string& channel = "Master");
55 int setMute(bool mute, const std::string& channel = "Master");
56 bool getMute(const std::string& channel = "Master");
57
58protected:
59 bool serviceInit(const UPnPDeviceDesc& device,
60 const UPnPServiceDesc& service) override;
61
62 /* My service type string */
63 static const std::string SType;
64
65 /* Volume settings params */
66 int m_volmin{0};
67 int m_volmax{100};
68 int m_volstep{1};
69
70private:
71 void UPNPP_LOCAL evtCallback(
72 const std::unordered_map<std::string, std::string>&);
73 void UPNPP_LOCAL registerCallback() override;
75 void UPNPP_LOCAL setVolParams(int min, int max, int step);
76 int UPNPP_LOCAL devVolTo0100(int);
77};
78
79} // namespace UPnPClient
80
81#endif /* _RENDERINGCONTROL_HXX_INCLUDED_ */
RenderingControl Service client class.
Definition renderingcontrol.hxx:38
Definition service.hxx:88
Data holder for a UPnP device, parsed from the XML description obtained during discovery.
Definition description.hxx:139
Data holder for a UPnP service, parsed from the device XML description.
Definition description.hxx:46
UPnP Description phase: interpreting the device description which we downloaded from the URL obtained...
Definition avlastchg.cxx:28