diff options
author | LarsAC <LarsAC@e10066b5-e1e2-0310-b819-94efdf66514b> | 2005-03-22 06:47:53 +0000 |
---|---|---|
committer | LarsAC <LarsAC@e10066b5-e1e2-0310-b819-94efdf66514b> | 2005-03-22 06:47:53 +0000 |
commit | e2de0c5ed7bbbe4b236246e8bfd71cc87c8d974f (patch) | |
tree | 616f2f0a482597e3968e281ccf8adcfd04f45bbc /muggle-plugin/mg_tools.c | |
parent | 101360901576c7e91196de60e2e6ebd6a4b145dd (diff) | |
download | vdr-plugin-muggle-0.1.6-BETA.tar.gz vdr-plugin-muggle-0.1.6-BETA.tar.bz2 |
Added 0.1.6 beta tag0.1.6-BETA
git-svn-id: https://vdr-muggle.svn.sourceforge.net/svnroot/vdr-muggle/tags/0.1.6-BETA@586 e10066b5-e1e2-0310-b819-94efdf66514b
Diffstat (limited to 'muggle-plugin/mg_tools.c')
-rw-r--r-- | muggle-plugin/mg_tools.c | 149 |
1 files changed, 149 insertions, 0 deletions
diff --git a/muggle-plugin/mg_tools.c b/muggle-plugin/mg_tools.c new file mode 100644 index 0000000..ce09ab6 --- /dev/null +++ b/muggle-plugin/mg_tools.c @@ -0,0 +1,149 @@ +/*! + * \file mg_tools.c + * \brief A few util functions for standalone and plugin messaging for the vdr muggle plugindatabase + * + * \version $Revision: 1.4 $ + * \date $Date$ + * \author Ralf Klueber, Lars von Wedel, Andreas Kellner + * \author file owner: $Author$ + */ + +#include "mg_tools.h" + +/*extern "C" +{*/ +#include <stdarg.h> +#include <stdio.h> +/*} + */ +#include <stdlib.h> + +//! \brief buffer for messages +#define MAX_BUFLEN 2048 + +static char buffer[MAX_BUFLEN]; + +static int DEBUG_LEVEL = 3; + +void +mgSetDebugLevel (int new_level) +{ + DEBUG_LEVEL = new_level; +} + + +void +mgDebug (int level, const char *fmt, ...) +{ + + va_list ap; + if (level <= DEBUG_LEVEL) + { + va_start (ap, fmt); + + vsnprintf (buffer, MAX_BUFLEN - 1, fmt, ap); + if (STANDALONE) + { + fprintf (stderr, "dbg %d: %s\n", level, buffer); + } + else + { +#if !STANDALONE + isyslog ("%s\n", buffer); +#endif + } + } + va_end (ap); +} + + +void +mgDebug (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + mgDebug (1, fmt, ap); +} + + +void +mgWarning (const char *fmt, ...) +{ + + va_list ap; + va_start (ap, fmt); + vsnprintf (buffer, MAX_BUFLEN - 1, fmt, ap); + + if (STANDALONE) + { + fprintf (stderr, "warning: %s\n", buffer); + } + else + { +#if !STANDALONE + isyslog ("Warning: %s\n", buffer); +#endif + } + extern void showmessage(const char*,int duration=0); + showmessage(buffer); + va_end (ap); +} + + +void +mgError (const char *fmt, ...) +{ + + va_list ap; + va_start (ap, fmt); + vsnprintf (buffer, MAX_BUFLEN - 1, fmt, ap); + + if (STANDALONE) + { + fprintf (stderr, "Error: %s\n", buffer); + exit (1); + } + else + { +#if !STANDALONE + isyslog ("Error in Muggle: %s\n", buffer); +#endif + } + + va_end (ap); +} + + +std::string trim(std::string const& source, char const* delims ) { + std::string result(source); + std::string::size_type index = result.find_last_not_of(delims); + if(index != std::string::npos) + result.erase(++index); + index = result.find_first_not_of(delims); + if(index != std::string::npos) + result.erase(0, index); + else + result.erase(); + return result; +} + + +char * +SeparateFolders(const char *filename, char * folders[],unsigned int fcount) +{ + for (unsigned int i=0;i<fcount;i++) + folders[i]=""; + char *fbuf=strdup(filename); + char *slash=fbuf-1; + for (unsigned int i=0;i<fcount;i++) + { + char *p=slash+1; + slash=strchr(p,'/'); + if (!slash) + break; + folders[i]=p; + *slash=0; + } + return fbuf; +} + |