/[xmltv_parser]/trunk/GBPVRProgramDatabaseFixer/Program.cs
ViewVC logotype

Annotation of /trunk/GBPVRProgramDatabaseFixer/Program.cs

Parent Directory Parent Directory | Revision Log Revision Log


Revision 154 - (hide annotations) (download)
Thu Mar 14 16:56:05 2013 UTC (6 years, 6 months ago) by william
File size: 4458 byte(s)

1 william 154 #define OVERRIDE_COMMANDLINE_ARGUMENTS // when defined will override supplied commandline args
2 william 153 using System;
3 william 150 using System.Collections.Generic;
4     using System.Text;
5 william 153 using Enterprise.Logging;
6     using System.Windows.Forms;
7     using System.Diagnostics;
8     using System.IO;
9     using libxmltv.Core;
10 william 150
11     namespace GBPVRProgramDatabaseFixer
12     {
13     class Program
14     {
15 william 153 static string XMLTV_FILE = "";
16     static string GBPVR_DATABASE = "";
17     static bool XMLTV_INSTANCE_CREATED = false;
18    
19     static int LAST_REPORTED_XMLTV_PROGRESS =0;
20    
21     static FileInfo fi_XMLTVFILE;
22    
23     static void CreateLog()
24     {
25     string log_path = Application.StartupPath;
26     string log_filename = string.Format("{0}.log", typeof(Program).Assembly.GetName().Name);
27     gLog.CreateLog(string.Format(@"{0}\{1}", log_path, log_filename), false, LogLevel.kLogLevel_All);
28     #if DEBUG
29     LogLevel gLevel = gLog.LogLevel;
30     gLevel |= LogLevel.kLogLevel_VerboseDebug;
31     gLevel |= LogLevel.kLogLevel_Debug;
32     gLog.SetLogLevel(gLevel);
33     #else
34     LogLevel gLevel = LogLevel.kLogLevel_Default; // set the default log level: Info, Warn, Error, Debug
35     // it is OK for kLogLevel_Debug to be set in Release mode ... must of the chatty messages are from kLogLevel_VerboseDebug
36     gLevel &= ~LogLevel.kLogLevel_Debug; // ensure this is not set, ever in release mode
37     gLevel &= ~LogLevel.kLogLevel_VerboseDebug; // ensure this is not set, ever in release mode
38     gLog.SetLogLevel(gLevel);
39     #endif
40     gLog.ReportProgressEvent += new EventHandler<ReportProgressEventArgs>(gLog_ReportProgress);
41     }
42    
43 william 154 [Conditional("OVERRIDE_COMMANDLINE_ARGUMENTS")]
44 william 153 static void CreateDebugCommandlineArgs(ref List<string> cargs)
45     {
46     cargs = new List<string>();
47     cargs.Add(string.Format("--xmltv_file=\"{0}\"", @"c:\EPG Guide\Guide\tvguide.xml"));
48     cargs.Add(string.Format("--gbprv_db=\"{0}\"", @"c:\Program Files (x86)\Devnz\GBPVR\gbpvr.db3"));
49     }
50    
51     static List<string> CreateCommandlineArgs(string[] args)
52     {
53     List<string> cargs = new List<string>(args);
54     CreateDebugCommandlineArgs(ref cargs);
55     return cargs;
56     }
57    
58 william 150 static void Main(string[] args)
59     {
60 william 153 CreateLog();
61     var cargs = CreateCommandlineArgs(args);
62     foreach (var carg in cargs)
63     {
64     if (carg.ToLower().Contains("--xmltv_file="))
65     {
66     XMLTV_FILE = carg.Replace("--xmltv_file=", "").Replace("\"","");
67     gLog.Info.WriteLine("XMLTV FILE: '{0}'", XMLTV_FILE);
68     }
69     else if (carg.ToLower().Contains("--gbprv_db="))
70     {
71     GBPVR_DATABASE = carg.Replace("--gbprv_db=", "").Replace("\"", "");
72     gLog.Info.WriteLine("GBPVR DATABASE: '{0}'", GBPVR_DATABASE);
73     }
74     else
75     {
76     gLog.Warn.WriteLine("Unknown commandline option: {0}", carg);
77     }
78     }
79    
80     LoadXMLTVFile();
81 william 150 }
82 william 153
83     static void gLog_ReportProgress(object sender, ReportProgressEventArgs e)
84     {
85     if (LAST_REPORTED_XMLTV_PROGRESS != e.Progress)
86     {
87     Console.WriteLine("XMLTV: {0} Loading: {1:00}%", fi_XMLTVFILE.Name, e.Progress);
88     LAST_REPORTED_XMLTV_PROGRESS = e.Progress;
89     }
90     }
91     static void LoadXMLTVFile()
92     {
93     if (string.IsNullOrEmpty(XMLTV_FILE))
94     {
95     gLog.Error.WriteLine("XMLTV File is either a null or empty string.");
96     return;
97     }
98     fi_XMLTVFILE = new FileInfo(XMLTV_FILE);
99     if (!fi_XMLTVFILE.Exists)
100     {
101     gLog.Error.WriteLine("Could not find XMLTV File: {0}", fi_XMLTVFILE.FullName);
102     return;
103     }
104    
105     XMLTV.Create(fi_XMLTVFILE.FullName, new EventHandler<EventArgs>(XMLTV_OnInstanceCreated));
106     while (!XMLTV_INSTANCE_CREATED) { Application.DoEvents(); }
107     }
108    
109     static void XMLTV_OnInstanceCreated(object sender, EventArgs e) { XMLTV_INSTANCE_CREATED = true; }
110 william 150 }
111     }

  ViewVC Help
Powered by ViewVC 1.1.22