diff options
Diffstat (limited to 'muggle-plugin/mg_tools.c')
-rw-r--r-- | muggle-plugin/mg_tools.c | 140 |
1 files changed, 140 insertions, 0 deletions
diff --git a/muggle-plugin/mg_tools.c b/muggle-plugin/mg_tools.c new file mode 100644 index 0000000..b540a4e --- /dev/null +++ b/muggle-plugin/mg_tools.c @@ -0,0 +1,140 @@ +/*******************************************************************/ +/*! \file muggle_tools.cpp + * \brief A few util functions for standalone and plugin messaging + * for the vdr muggle plugindatabase + ******************************************************************** + * \version $Revision: 1.1 $ + * \date $Date: 2004/02/01 18:22:53 $ + * \author Ralf Klueber, Lars von Wedel, Andreas Kellner + * \author file owner: $Author: LarsAC $ + * + */ +/*******************************************************************/ + +#include "mg_tools.h" + +extern "C" +{ + #include <stdarg.h> + #include <stdio.h> +} +#include <stdlib.h> + + +#define MAX_BUFLEN 1024 +#define MAX_QUERY_BUFLEN 1024 +static char buffer[MAX_BUFLEN]; +static char querybuf[MAX_QUERY_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 + + } + + 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); +} + +MYSQL_RES* mgSqlReadQuery(MYSQL *db, const char *fmt, ...) +{ + va_list ap; + + va_start(ap, fmt); + + vsnprintf(querybuf, MAX_QUERY_BUFLEN-1, fmt, ap); + mgDebug(9, "SQL-Query: '%s'",querybuf); + if(mysql_query(db,querybuf)) + { + mgError("SQL error in MUGGLE\n%s\n", querybuf); + } + return mysql_store_result(db); +} + +void mgSqlWriteQuery(MYSQL *db, const char *fmt, ...) +{ + va_list ap; + + va_start(ap, fmt); + + vsnprintf(querybuf, MAX_QUERY_BUFLEN-1, fmt, ap); + if(mysql_query(db,querybuf)) + { + mgError("SQL error in MUGGLE\n%s\n", querybuf); + } +} + |