--- a/libupnpp/control/mediarenderer.cxx
+++ b/libupnpp/control/mediarenderer.cxx
@@ -47,6 +47,7 @@
STD_WEAK_PTR<OHTime> ohtm;
STD_WEAK_PTR<OHVolume> ohvl;
STD_WEAK_PTR<OHReceiver> ohrc;
+ STD_WEAK_PTR<OHRadio> ohrd;
};
// We don't include a version in comparisons, as we are satisfied with
@@ -204,6 +205,24 @@
return ohrcl;
}
+OHRDH MediaRenderer::ohrd()
+{
+ OHRDH handle = m->ohrd.lock();
+ if (handle)
+ return handle;
+ for (vector<UPnPServiceDesc>::const_iterator it = desc()->services.begin();
+ it != desc()->services.end();it++) {
+ if (OHRadio::isOHRdService(it->serviceType)) {
+ handle = OHRDH(new OHRadio(*desc(), *it));
+ break;
+ }
+ }
+ if (!handle)
+ LOGDEB("MediaRenderer: OHRadio service not found" << endl);
+ m->ohrd = handle;
+ return handle;
+}
+
OHTMH MediaRenderer::ohtm()
{
OHTMH ohtml = m->ohtm.lock();