2
* Copyright (C) 2011 Tuomo Penttinen, all rights reserved.
4
* Author: Tuomo Penttinen <tp@herqq.org>
6
* This file is part of Herqq UPnP Av (HUPnPAv) library.
8
* Herqq UPnP Av is free software: you can redistribute it and/or modify
9
* it under the terms of the GNU General Public License as published by
10
* the Free Software Foundation, either version 3 of the License, or
11
* (at your option) any later version.
13
* Herqq UPnP Av is distributed in the hope that it will be useful,
14
* but WITHOUT ANY WARRANTY; without even the implied warranty of
15
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
* GNU General Public License for more details.
18
* You should have received a copy of the GNU General Public License
19
* along with Herqq UPnP Av. If not, see <http://www.gnu.org/licenses/>.
22
#include "hav_devicemodel_infoprovider.h"
24
#include "transport/havtransport_info.h"
25
#include "mediaserver/hmediaserver_info.h"
26
#include "mediarenderer/hmediarenderer_info.h"
27
#include "renderingcontrol/hrenderingcontrol_info.h"
28
#include "contentdirectory/hcontentdirectory_info.h"
29
#include "connectionmanager/hconnectionmanager_info.h"
31
#include <HUpnpCore/HDeviceInfo>
32
#include <HUpnpCore/HServiceInfo>
34
#include <HUpnpCore/HDevicesSetupData>
35
#include <HUpnpCore/HActionsSetupData>
36
#include <HUpnpCore/HServicesSetupData>
37
#include <HUpnpCore/HStateVariablesSetupData>
48
/*******************************************************************************
49
* HAvDeviceModelInfoProvider
50
******************************************************************************/
51
HAvDeviceModelInfoProvider::HAvDeviceModelInfoProvider()
55
HAvDeviceModelInfoProvider::~HAvDeviceModelInfoProvider()
59
HAvDeviceModelInfoProvider* HAvDeviceModelInfoProvider::newInstance() const
61
return new HAvDeviceModelInfoProvider();
64
HServicesSetupData HAvDeviceModelInfoProvider::servicesSetupData(
65
const HDeviceInfo& info) const
67
if (info.deviceType().compare(
68
HMediaRendererInfo::supportedDeviceType(), HResourceType::Inclusive))
70
return HMediaRendererInfo::servicesSetupData();
72
else if (info.deviceType().compare(
73
HMediaServerInfo::supportedDeviceType(), HResourceType::Inclusive))
75
return HMediaServerInfo::servicesSetupData();
77
return HServicesSetupData();
80
HActionsSetupData HAvDeviceModelInfoProvider::actionsSetupData(
81
const HServiceInfo& serviceInfo, const HDeviceInfo&) const
83
if (serviceInfo.serviceType().compare(
84
HContentDirectoryInfo::supportedServiceType(), HResourceType::Inclusive))
86
return HContentDirectoryInfo::actionsSetupData();
88
else if (serviceInfo.serviceType().compare(
89
HRenderingControlInfo::supportedServiceType(), HResourceType::Inclusive))
91
return HRenderingControlInfo::actionsSetupData();
93
else if (serviceInfo.serviceType().compare(
94
HConnectionManagerInfo::supportedServiceType(), HResourceType::Inclusive))
96
return HConnectionManagerInfo::actionsSetupData();
98
else if (serviceInfo.serviceType().compare(
99
HAvTransportInfo::supportedServiceType(), HResourceType::Inclusive))
101
return HAvTransportInfo::actionsSetupData();
104
return HActionsSetupData();
107
HStateVariablesSetupData HAvDeviceModelInfoProvider::stateVariablesSetupData(
108
const HServiceInfo& serviceInfo, const HDeviceInfo&) const
110
if (serviceInfo.serviceType().compare(
111
HContentDirectoryInfo::supportedServiceType(), HResourceType::Inclusive))
113
return HContentDirectoryInfo::stateVariablesSetupData();
115
else if (serviceInfo.serviceType().compare(
116
HRenderingControlInfo::supportedServiceType(), HResourceType::Inclusive))
118
return HRenderingControlInfo::stateVariablesSetupData();
120
else if (serviceInfo.serviceType().compare(
121
HConnectionManagerInfo::supportedServiceType(), HResourceType::Inclusive))
123
return HConnectionManagerInfo::stateVariablesSetupData();
125
else if (serviceInfo.serviceType().compare(
126
HAvTransportInfo::supportedServiceType(), HResourceType::Inclusive))
128
return HAvTransportInfo::stateVariablesSetupData();
131
return HStateVariablesSetupData();
134
HAvDeviceModelInfoProvider* HAvDeviceModelInfoProvider::clone() const
136
return static_cast<HAvDeviceModelInfoProvider*>(HClonable::clone());