/*! * \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 #include #include #include #include "mg_tools.h" #include //! \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; } int msprintf(char **strp, const char *fmt, ...) { va_list ap; int res; va_start (ap, fmt); res=vasprintf (strp, fmt, ap); if (res<0) { *strp=0; mgError("asprintf() returns %d. This probably means illformed UTF-8 characters." " Please convert your file names to UTF-8",fmt,res); } va_end (ap); } void mgDebug (int level, const char *fmt, ...) { if (level <= DEBUG_LEVEL) { va_list ap; va_start (ap, fmt); vsnprintf (buffer, sizeof(buffer), fmt, ap); dsyslog("%s",buffer); va_end (ap); } } void mgDebug (const char *fmt, ...) { va_list ap; va_start (ap, fmt); mgDebug (1, fmt, ap); va_end (ap); } extern void showmessage(int duration,const char*,...); void mgWarning (const char *fmt, ...) { va_list ap; va_start (ap, fmt); vsnprintf (buffer, sizeof(buffer), fmt, ap); isyslog("%s",buffer); showmessage(0,buffer); va_end (ap); } void mgError (const char *fmt, ...) { va_list ap; va_start (ap, fmt); vsnprintf (buffer, sizeof(buffer), fmt, ap); esyslog("%s",buffer); showmessage(0,buffer); 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