summaryrefslogtreecommitdiff
path: root/debug.c
diff options
context:
space:
mode:
authoranbr <vdr07@deltab.de>2010-12-21 20:36:58 +0100
committeranbr <vdr07@deltab.de>2010-12-21 20:36:58 +0100
commit10a33e14d6338ff004410413f6fe52810be43f67 (patch)
tree6f71b062e9235be1383a9e6c536fea336d400e6c /debug.c
downloadvdr-plugin-dvdswitch-0.1.0.tar.gz
vdr-plugin-dvdswitch-0.1.0.tar.bz2
release 0.1.0 from http://www.schmidtie.de/download/vdr-dvdswitch-0.1.0.tar.bz20.1.0
Diffstat (limited to 'debug.c')
-rw-r--r--debug.c68
1 files changed, 68 insertions, 0 deletions
diff --git a/debug.c b/debug.c
new file mode 100644
index 0000000..3727028
--- /dev/null
+++ b/debug.c
@@ -0,0 +1,68 @@
+#include <vdr/plugin.h>
+#include <stdarg.h>
+#include "debug.h"
+
+// --- cDebugLog -------------------------------------------------------
+
+cDebugLog DebugLog;
+
+cDebugLog::cDebugLog(void)
+{
+ FileName = NULL;
+ File = NULL;
+}
+
+cDebugLog::~ cDebugLog(void)
+{
+ Close();
+ free(FileName);
+}
+
+bool cDebugLog::Open(void)
+{
+ File = fopen(FileName, "a");
+ if(File)
+ {
+ DEBUG("---------");
+ DEBUG("Neuer Log");
+ DEBUG("---------");
+ return true;
+ }
+
+ return false;
+}
+
+void cDebugLog::Close(void)
+{
+ if(File)
+ fclose(File);
+}
+
+bool cDebugLog::SetLogFile(char *filename)
+{
+ if(filename)
+ FileName = strdup(filename);
+
+ return Open();
+}
+
+void cDebugLog::WriteLine(char *file, int line, char *format, ...)
+{
+ if(File)
+ {
+ char *fmt;
+ asprintf(&fmt, "DVDSWITCH(%s,%d): %s", file, line, format);
+ va_list ap;
+ va_start(ap, format);
+ vfprintf(File, fmt, ap);
+ va_end(ap);
+ fprintf(File, "\n");
+ fflush(File);
+ free(fmt);
+ }
+}
+
+void cDebugLog::End(void)
+{
+ Close();
+}