/[RomCheater]/trunk/RomCheater.PluginFramework/Core/PluginLoader.cs
ViewVC logotype

Diff of /trunk/RomCheater.PluginFramework/Core/PluginLoader.cs

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 148 by william, Sun May 27 23:33:54 2012 UTC revision 414 by william, Fri Jun 22 08:21:18 2012 UTC
# Line 1  Line 1 
1  ´╗┐using System;  ´╗┐#region Logging Defines
2    // include this any class or method that required logging, and comment-out what is not needed
3    #define LOGGING_ENABLED
4    #region Enabled logging levels
5    #define LOGGING_ENABLE_INFO
6    #define LOGGING_ENABLE_WARN
7    #define LOGGING_ENABLE_DEBUG
8    #define LOGGING_ENABLE_VERBOSEDEBUG
9    #define LOGGING_ENABLE_ERROR
10    #define LOGGING_ENABLE_VERBOSEERROR
11    #define LOGGING_ENABLE_PROFILER
12    #endregion
13    #endregion
14    using System;
15  using System.Collections.Generic;  using System.Collections.Generic;
16  using System.Linq;  using System.Linq;
17  using System.Text;  using System.Text;
# Line 18  namespace RomCheater.PluginFramework.Cor Line 31  namespace RomCheater.PluginFramework.Cor
31              LoadedWindowPlugins = new List<IWindowPlugin>();              LoadedWindowPlugins = new List<IWindowPlugin>();
32          }          }
33          #region IPluginLoader Members          #region IPluginLoader Members
34            public void LoadPlugins() { LoadPlugins(false); }
35          public void LoadPlugins()          public void LoadPlugins(bool silent)
36          {          {
37              try              try
38              {              {
39                  logger.Info.WriteLine("Loading Plugins...");                  if (!silent)
40                        logger.Info.WriteLine("Loading Plugins...");
41    
42                  string PluginPath = string.Format(@"{0}\Plugins", typeof(PluginLoader).Assembly.Location.Replace(@"\RomCheater.PluginFramework.dll", ""));                  string PluginPath = string.Format(@"{0}\Plugins", typeof(PluginLoader).Assembly.Location.Replace(@"\RomCheater.PluginFramework.dll", ""));
43                  logger.Debug.WriteLine("Plugins Path: {0}", PluginPath);                  if (!silent)
44                        logger.Debug.WriteLine("Plugins Path: {0}", PluginPath);
45                  List<string> dlls = new List<string>(Directory.GetFiles(PluginPath, "*.dll"));                  List<string> dlls = new List<string>(Directory.GetFiles(PluginPath, "*.dll"));
46                  logger.Debug.WriteLine("  Found: {0} plugin dlls", dlls.Count);                  if (!silent)
47                        logger.Debug.WriteLine("  Found: {0} plugin dlls", dlls.Count);
48                  foreach (string dll in dlls)                  foreach (string dll in dlls)
49                  {                  {
50                      FileInfo fi = new FileInfo(dll);                      FileInfo fi = new FileInfo(dll);
51                      logger.Debug.WriteLine("    plugin[{0}]: {1}", dlls.IndexOf(dll), fi.Name);                      if (!silent)
52                            logger.Debug.WriteLine("    plugin[{0}]: {1}", dlls.IndexOf(dll), fi.Name);
53                      GetConfigPluginsFromDll(fi);                      GetConfigPluginsFromDll(fi);
54                      GetInputPluginsFromDll(fi);                      GetInputPluginsFromDll(fi);
55                      GetWindowPluginsFromDll(fi);                      GetWindowPluginsFromDll(fi);
56                  }                  }
57    
58                  logger.Info.WriteLine("  Loaded {0} config plugins", LoadedConfigPlugins.Count);                  if (!silent)
59                  logger.Info.WriteLine("  Loaded {0} input plugins", LoadedInputPlugins.Count);                      logger.Info.WriteLine("  Loaded {0} config plugins", LoadedConfigPlugins.Count);
60                  logger.Info.WriteLine("  Loaded {0} window plugins", LoadedWindowPlugins.Count);                  if (!silent)
61                        logger.Info.WriteLine("  Loaded {0} input plugins", LoadedInputPlugins.Count);
62                  logger.Info.WriteLine("Plugins Loaded.");                  if (!silent)
63                        logger.Info.WriteLine("  Loaded {0} window plugins", LoadedWindowPlugins.Count);
64                    if (!silent)
65                        logger.Info.WriteLine("Plugins Loaded.");
66              }              }
67              catch (ReflectionTypeLoadException ex)              catch (ReflectionTypeLoadException ex)
68              {              {
# Line 54  namespace RomCheater.PluginFramework.Cor Line 74  namespace RomCheater.PluginFramework.Cor
74                          builder.AppendLine(c.ToString());                          builder.AppendLine(c.ToString());
75                      }                      }
76                  }                  }
77                  logger.Error.WriteLine("Failed to load one or more plugins{0}Possible Reason:{0}{1}", System.Environment.NewLine, builder.ToString());                  if (!silent)
78                        logger.Error.WriteLine("Failed to load one or more plugins{0}Possible Reason:{0}{1}", System.Environment.NewLine, builder.ToString());
79              }              }
80              catch (Exception ex)              catch (Exception ex)
81              {              {
82                  logger.Error.WriteLine("Failed to load one or more plugins{0}Possible Reason:{0}{1}", System.Environment.NewLine, ex.ToString());                  if (!silent)
83                        logger.Error.WriteLine("Failed to load one or more plugins{0}Possible Reason:{0}{1}", System.Environment.NewLine, ex.ToString());
84              }              }
85          }          }
86          public List<IConfigPlugin> LoadedConfigPlugins { get; private set; }          public List<IConfigPlugin> LoadedConfigPlugins { get; private set; }
# Line 107  namespace RomCheater.PluginFramework.Cor Line 129  namespace RomCheater.PluginFramework.Cor
129                  if (type.BaseType == typeof(ConfigPlugin))                  if (type.BaseType == typeof(ConfigPlugin))
130                  {                  {
131                      ConstructorInfo ci = null;                      ConstructorInfo ci = null;
132                      ci = type.GetConstructor(new Type[] {});                      ci = type.GetConstructor(new Type[] { });
133                      if (ci == null)                      if (ci == null)
134                      {                      {
135                          throw new NullReferenceException(string.Format("Unable to bind to constructor for type: {0}", type.Name));                          throw new NullReferenceException(string.Format("Unable to bind to constructor for type: {0}", type.Name));

Legend:
Removed from v.148  
changed lines
  Added in v.414

  ViewVC Help
Powered by ViewVC 1.1.22