aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlasdair Campbell <alcoheca@gmail.com>2014-04-30 00:46:41 +0100
committermontellese <montellese@xbmc.org>2014-05-14 19:17:50 +0200
commit570343d7aa2fe0c83bbe578e0c088d9cdb914650 (patch)
tree009656c17709d78ef943f4466e94920b2c09f7de
parentcff55a425ad8a610c3781b66ba75a0102d014fe4 (diff)
upnp: add functionality to get Platinum log messages
-rwxr-xr-xlanguage/English/strings.po7
-rw-r--r--xbmc/commons/ilog.h1
-rw-r--r--xbmc/network/upnp/UPnP.cpp17
-rw-r--r--xbmc/network/upnp/UPnP.h2
-rw-r--r--xbmc/network/upnp/UPnPRenderer.cpp2
-rw-r--r--xbmc/network/upnp/UPnPServer.cpp2
-rw-r--r--xbmc/settings/AdvancedSettings.cpp3
7 files changed, 31 insertions, 3 deletions
diff --git a/language/English/strings.po b/language/English/strings.po
index 4835ff0538..395f6f4a75 100755
--- a/language/English/strings.po
+++ b/language/English/strings.po
@@ -2861,7 +2861,12 @@ msgctxt "#677"
msgid "Verbose logging for AirTunes library"
msgstr ""
-#empty strings from id 678 to 699
+#: xbmc/settings/AdvancedSettings.cpp
+msgctxt "#678"
+msgid "Verbose logging for UPnP components"
+msgstr ""
+
+#empty strings from id 679 to 699
msgctxt "#700"
msgid "Cleaning up library"
diff --git a/xbmc/commons/ilog.h b/xbmc/commons/ilog.h
index 1b4ed1a2cc..03ccc7d897 100644
--- a/xbmc/commons/ilog.h
+++ b/xbmc/commons/ilog.h
@@ -51,6 +51,7 @@
#define LOGJSONRPC (1 << (LOGMASKBIT + 6))
#define LOGAUDIO (1 << (LOGMASKBIT + 7))
#define LOGAIRTUNES (1 << (LOGMASKBIT + 8))
+#define LOGUPNP (1 << (LOGMASKBIT + 9))
#ifdef __GNUC__
#define ATTRIB_LOG_FORMAT __attribute__((format(printf,3,4)))
diff --git a/xbmc/network/upnp/UPnP.cpp b/xbmc/network/upnp/UPnP.cpp
index 3331301a46..53f97e4e21 100644
--- a/xbmc/network/upnp/UPnP.cpp
+++ b/xbmc/network/upnp/UPnP.cpp
@@ -38,6 +38,7 @@
#include "utils/log.h"
#include "URL.h"
#include "profiles/ProfilesManager.h"
+#include "settings/AdvancedSettings.h"
#include "settings/Settings.h"
#include "GUIUserMessages.h"
#include "FileItem.h"
@@ -98,9 +99,15 @@ DLNA_ORG_FLAGS_VAL = '01500000000000000000000000000000'
| NPT_Console::Output
+---------------------------------------------------------------------*/
void
-NPT_Console::Output(const char* message)
+NPT_Console::Output(const char* msg) { }
+
+void
+UPnPLogger(const NPT_LogRecord* record)
{
- CLog::Log(LOGDEBUG, "%s", message);
+ if (!g_advancedSettings.CanLogComponent(LOGUPNP))
+ return;
+
+ CLog::Log((record->m_Level / 100) - 1, "Platinum [%s]: %s", record->m_LoggerName, record->m_Message);
}
namespace UPNP
@@ -391,10 +398,15 @@ private:
CUPnP::CUPnP() :
m_MediaBrowser(NULL),
m_MediaController(NULL),
+ m_LogHandler(NULL),
m_ServerHolder(new CDeviceHostReferenceHolder()),
m_RendererHolder(new CRendererReferenceHolder()),
m_CtrlPointHolder(new CCtrlPointReferenceHolder())
{
+ NPT_LogManager::GetDefault().Configure("plist:.level=FINE;.handlers=CustomHandler;");
+ NPT_LogHandler::Create("CustomHandler", "xbmc", m_LogHandler);
+ m_LogHandler->SetCustomHandlerFunction(&UPnPLogger);
+
// initialize upnp context
m_UPnP = new PLT_UPnP();
@@ -423,6 +435,7 @@ CUPnP::~CUPnP()
StopServer();
delete m_UPnP;
+ delete m_LogHandler;
delete m_ServerHolder;
delete m_RendererHolder;
delete m_CtrlPointHolder;
diff --git a/xbmc/network/upnp/UPnP.h b/xbmc/network/upnp/UPnP.h
index 4a4fd5a213..96194e6ac8 100644
--- a/xbmc/network/upnp/UPnP.h
+++ b/xbmc/network/upnp/UPnP.h
@@ -25,6 +25,7 @@
#include "utils/StdString.h"
+class NPT_LogHandler;
class PLT_UPnP;
class PLT_SyncMediaBrowser;
class PLT_MediaController;
@@ -89,6 +90,7 @@ public:
private:
CStdString m_IP;
PLT_UPnP* m_UPnP;
+ NPT_LogHandler* m_LogHandler;
CDeviceHostReferenceHolder* m_ServerHolder;
CRendererReferenceHolder* m_RendererHolder;
CCtrlPointReferenceHolder* m_CtrlPointHolder;
diff --git a/xbmc/network/upnp/UPnPRenderer.cpp b/xbmc/network/upnp/UPnPRenderer.cpp
index 1a1754a46b..e344491707 100644
--- a/xbmc/network/upnp/UPnPRenderer.cpp
+++ b/xbmc/network/upnp/UPnPRenderer.cpp
@@ -43,6 +43,8 @@
#include "playlists/PlayList.h"
#include "GUIUserMessages.h"
+NPT_SET_LOCAL_LOGGER("xbmc.upnp.renderer")
+
using namespace ANNOUNCEMENT;
namespace UPNP
diff --git a/xbmc/network/upnp/UPnPServer.cpp b/xbmc/network/upnp/UPnPServer.cpp
index 06546b1d2e..6f3fc576aa 100644
--- a/xbmc/network/upnp/UPnPServer.cpp
+++ b/xbmc/network/upnp/UPnPServer.cpp
@@ -46,6 +46,8 @@
#include "xbmc/GUIUserMessages.h"
#include "utils/FileUtils.h"
+NPT_SET_LOCAL_LOGGER("xbmc.upnp.server")
+
using namespace std;
using namespace ANNOUNCEMENT;
using namespace XFILE;
diff --git a/xbmc/settings/AdvancedSettings.cpp b/xbmc/settings/AdvancedSettings.cpp
index 501e00a56c..342299c60d 100644
--- a/xbmc/settings/AdvancedSettings.cpp
+++ b/xbmc/settings/AdvancedSettings.cpp
@@ -1388,6 +1388,9 @@ void CAdvancedSettings::SettingOptionsLoggingComponentsFiller(const CSetting *se
#ifdef HAS_AIRTUNES
list.push_back(std::make_pair(g_localizeStrings.Get(677), LOGAIRTUNES));
#endif
+#ifdef HAS_UPNP
+ list.push_back(std::make_pair(g_localizeStrings.Get(678), LOGUPNP));
+#endif
}
void CAdvancedSettings::setExtraLogLevel(const std::vector<CVariant> &components)