1
0
mirror of https://github.com/rofafor/vdr-plugin-satip.git synced 2023-10-10 13:37:42 +02:00

Added a preliminary support for dynamic logging level.

This commit is contained in:
Rolf Ahrenberg 2014-12-03 19:57:23 +02:00
parent d48fe3bced
commit 735e7487d3
11 changed files with 51 additions and 22 deletions

View File

@ -13,15 +13,9 @@
#include <vdr/config.h> #include <vdr/config.h>
#include <vdr/i18n.h> #include <vdr/i18n.h>
#ifdef DEBUG #define error(x...) esyslog("SATIP-ERROR: " x)
#define debug(x...) dsyslog("SATIP: " x)
#define info(x...) isyslog("SATIP: " x) #define info(x...) isyslog("SATIP: " x)
#define error(x...) esyslog("ERROR: " x) #define debug(x...) void( SatipConfig.IsLogLevelDebug() ? dsyslog("SATIP: " x) : void() )
#else
#define debug(x...) {}
#define info(x...) isyslog("SATIP: " x)
#define error(x...) esyslog("ERROR: " x)
#endif
#define ELEMENTS(x) (sizeof(x) / sizeof(x[0])) #define ELEMENTS(x) (sizeof(x) / sizeof(x[0]))

View File

@ -12,6 +12,11 @@ cSatipConfig SatipConfig;
cSatipConfig::cSatipConfig(void) cSatipConfig::cSatipConfig(void)
: operatingModeM(eOperatingModeLow), : operatingModeM(eOperatingModeLow),
#ifdef DEBUG
logLevelM(eLogLevelMask),
#else
logLevelM(eLogLevelNormal),
#endif
eitScanM(1), eitScanM(1),
useBytesM(1) useBytesM(1)
{ {

View File

@ -15,6 +15,7 @@ class cSatipConfig
{ {
private: private:
unsigned int operatingModeM; unsigned int operatingModeM;
unsigned int logLevelM;
unsigned int eitScanM; unsigned int eitScanM;
unsigned int useBytesM; unsigned int useBytesM;
int disabledSourcesM[MAX_DISABLED_SOURCES_COUNT]; int disabledSourcesM[MAX_DISABLED_SOURCES_COUNT];
@ -29,6 +30,12 @@ public:
eOperatingModeHigh, eOperatingModeHigh,
eOperatingModeCount eOperatingModeCount
}; };
enum {
eLogLevelNormal = 0x00,
eLogLevelDebug = 0x01,
eLogLevelExtra = 0x02,
eLogLevelMask = 0x0F
};
cSatipConfig(); cSatipConfig();
unsigned int GetOperatingMode(void) const { return operatingModeM; } unsigned int GetOperatingMode(void) const { return operatingModeM; }
bool IsOperatingModeOff(void) const { return (operatingModeM == eOperatingModeOff); } bool IsOperatingModeOff(void) const { return (operatingModeM == eOperatingModeOff); }
@ -36,6 +43,9 @@ public:
bool IsOperatingModeNormal(void) const { return (operatingModeM == eOperatingModeNormal); } bool IsOperatingModeNormal(void) const { return (operatingModeM == eOperatingModeNormal); }
bool IsOperatingModeHigh(void) const { return (operatingModeM == eOperatingModeHigh); } bool IsOperatingModeHigh(void) const { return (operatingModeM == eOperatingModeHigh); }
void ToggleOperatingMode(void) { operatingModeM = (operatingModeM + 1) % eOperatingModeCount; } void ToggleOperatingMode(void) { operatingModeM = (operatingModeM + 1) % eOperatingModeCount; }
unsigned int GetLogLevel(void) const { return logLevelM; }
bool IsLogLevelDebug(void) const { return (logLevelM & eLogLevelDebug); }
bool IsLogLevelExtra(void) const { return (logLevelM & eLogLevelExtra); }
unsigned int GetEITScan(void) const { return eitScanM; } unsigned int GetEITScan(void) const { return eitScanM; }
unsigned int GetUseBytes(void) const { return useBytesM; } unsigned int GetUseBytes(void) const { return useBytesM; }
const char *GetConfigDirectory(void) const { return configDirectoryM; } const char *GetConfigDirectory(void) const { return configDirectoryM; }
@ -45,6 +55,7 @@ public:
int GetDisabledFilters(unsigned int indexP) const; int GetDisabledFilters(unsigned int indexP) const;
void SetOperatingMode(unsigned int operatingModeP) { operatingModeM = operatingModeP; } void SetOperatingMode(unsigned int operatingModeP) { operatingModeM = operatingModeP; }
void SetLogLevel(unsigned int logLevelP) { logLevelM = (logLevelP & eLogLevelMask); }
void SetEITScan(unsigned int onOffP) { eitScanM = onOffP; } void SetEITScan(unsigned int onOffP) { eitScanM = onOffP; }
void SetUseBytes(unsigned int onOffP) { useBytesM = onOffP; } void SetUseBytes(unsigned int onOffP) { useBytesM = onOffP; }
void SetConfigDirectory(const char *directoryP); void SetConfigDirectory(const char *directoryP);

View File

@ -196,12 +196,14 @@ void cSatipDiscover::Fetch(const char *urlP)
if (handleM && !isempty(urlP)) { if (handleM && !isempty(urlP)) {
long rc = 0; long rc = 0;
CURLcode res = CURLE_OK; CURLcode res = CURLE_OK;
#ifdef DEBUG
// Verbose output // Verbose output
if (SatipConfig.IsLogLevelExtra()) {
SATIP_CURL_EASY_SETOPT(handleM, CURLOPT_VERBOSE, 1L); SATIP_CURL_EASY_SETOPT(handleM, CURLOPT_VERBOSE, 1L);
SATIP_CURL_EASY_SETOPT(handleM, CURLOPT_DEBUGFUNCTION, cSatipDiscover::DebugCallback); SATIP_CURL_EASY_SETOPT(handleM, CURLOPT_DEBUGFUNCTION, cSatipDiscover::DebugCallback);
SATIP_CURL_EASY_SETOPT(handleM, CURLOPT_DEBUGDATA, this); SATIP_CURL_EASY_SETOPT(handleM, CURLOPT_DEBUGDATA, this);
#endif }
// Set callback // Set callback
SATIP_CURL_EASY_SETOPT(handleM, CURLOPT_WRITEFUNCTION, cSatipDiscover::WriteCallback); SATIP_CURL_EASY_SETOPT(handleM, CURLOPT_WRITEFUNCTION, cSatipDiscover::WriteCallback);
SATIP_CURL_EASY_SETOPT(handleM, CURLOPT_WRITEDATA, this); SATIP_CURL_EASY_SETOPT(handleM, CURLOPT_WRITEDATA, this);

View File

@ -5,6 +5,7 @@
* *
*/ */
#include "config.h"
#include "common.h" #include "common.h"
#include "discover.h" #include "discover.h"
#include "poller.h" #include "poller.h"

View File

@ -7,6 +7,7 @@
#include <sys/epoll.h> #include <sys/epoll.h>
#include "config.h"
#include "common.h" #include "common.h"
#include "poller.h" #include "poller.h"

1
rtcp.c
View File

@ -5,6 +5,7 @@
* *
*/ */
#include "config.h"
#include "common.h" #include "common.h"
#include "rtcp.h" #include "rtcp.h"

1
rtp.c
View File

@ -5,6 +5,7 @@
* *
*/ */
#include "config.h"
#include "common.h" #include "common.h"
#include "rtp.h" #include "rtp.h"

5
rtsp.c
View File

@ -5,6 +5,7 @@
* *
*/ */
#include "config.h"
#include "common.h" #include "common.h"
#include "rtsp.h" #include "rtsp.h"
@ -18,12 +19,12 @@ cSatipRtsp::cSatipRtsp(cSatipTunerIf &tunerP)
if (handleM) { if (handleM) {
CURLcode res = CURLE_OK; CURLcode res = CURLE_OK;
#ifdef DEBUG
// Verbose output // Verbose output
if (SatipConfig.IsLogLevelExtra()) {
SATIP_CURL_EASY_SETOPT(handleM, CURLOPT_VERBOSE, 1L); SATIP_CURL_EASY_SETOPT(handleM, CURLOPT_VERBOSE, 1L);
SATIP_CURL_EASY_SETOPT(handleM, CURLOPT_DEBUGFUNCTION, cSatipRtsp::DebugCallback); SATIP_CURL_EASY_SETOPT(handleM, CURLOPT_DEBUGFUNCTION, cSatipRtsp::DebugCallback);
SATIP_CURL_EASY_SETOPT(handleM, CURLOPT_DEBUGDATA, this); SATIP_CURL_EASY_SETOPT(handleM, CURLOPT_DEBUGDATA, this);
#endif }
// No progress meter and no signaling // No progress meter and no signaling
SATIP_CURL_EASY_SETOPT(handleM, CURLOPT_NOPROGRESS, 1L); SATIP_CURL_EASY_SETOPT(handleM, CURLOPT_NOPROGRESS, 1L);

13
satip.c
View File

@ -90,16 +90,20 @@ bool cPluginSatip::ProcessArgs(int argc, char *argv[])
// Implement command line argument processing here if applicable. // Implement command line argument processing here if applicable.
static const struct option long_options[] = { static const struct option long_options[] = {
{ "devices", required_argument, NULL, 'd' }, { "devices", required_argument, NULL, 'd' },
{ "loglevel", required_argument, NULL, 'l' },
{ "server", required_argument, NULL, 's' }, { "server", required_argument, NULL, 's' },
{ NULL, no_argument, NULL, 0 } { NULL, no_argument, NULL, 0 }
}; };
int c; int c;
while ((c = getopt_long(argc, argv, "d:s:", long_options, NULL)) != -1) { while ((c = getopt_long(argc, argv, "d:l:s:", long_options, NULL)) != -1) {
switch (c) { switch (c) {
case 'd': case 'd':
deviceCountM = atoi(optarg); deviceCountM = atoi(optarg);
break; break;
case 'l':
SatipConfig.SetLogLevel(atoi(optarg));
break;
case 's': case 's':
ParseServer(optarg); ParseServer(optarg);
break; break;
@ -316,6 +320,8 @@ const char **cPluginSatip::SVDRPHelpPages(void)
" Shows SAT>IP device count.\n", " Shows SAT>IP device count.\n",
"OPER\n" "OPER\n"
" Toggles operating mode of SAT>IP devices.\n", " Toggles operating mode of SAT>IP devices.\n",
"LOGL [ <level> ]\n"
" Gets and sets used logging level.\n",
NULL NULL
}; };
return HelpPages; return HelpPages;
@ -396,6 +402,11 @@ cString cPluginSatip::SVDRPCommand(const char *commandP, const char *optionP, in
} }
return cString::sprintf("SAT>IP operating mode: %s\n", *mode); return cString::sprintf("SAT>IP operating mode: %s\n", *mode);
} }
else if (strcasecmp(commandP, "LOGL") == 0) {
if (optionP && *optionP)
SatipConfig.SetLogLevel(atoi(optionP));
return cString::sprintf("SAT>IP logging level: %d\n", SatipConfig.GetLogLevel());
}
return NULL; return NULL;
} }

View File

@ -7,6 +7,7 @@
#include <vdr/sources.h> #include <vdr/sources.h>
#include "config.h"
#include "common.h" #include "common.h"
#include "server.h" #include "server.h"