/[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 366 by william, Sun Jun 10 03:14:42 2012 UTC
# Line 18  namespace RomCheater.PluginFramework.Cor Line 18  namespace RomCheater.PluginFramework.Cor
18              LoadedWindowPlugins = new List<IWindowPlugin>();              LoadedWindowPlugins = new List<IWindowPlugin>();
19          }          }
20          #region IPluginLoader Members          #region IPluginLoader Members
21            public void LoadPlugins() { LoadPlugins(false); }
22          public void LoadPlugins()          public void LoadPlugins(bool silent)
23          {          {
24              try              try
25              {              {
26                  logger.Info.WriteLine("Loading Plugins...");                  if (!silent)
27                        logger.Info.WriteLine("Loading Plugins...");
28    
29                  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", ""));
30                  logger.Debug.WriteLine("Plugins Path: {0}", PluginPath);                  if (!silent)
31                        logger.Debug.WriteLine("Plugins Path: {0}", PluginPath);
32                  List<string> dlls = new List<string>(Directory.GetFiles(PluginPath, "*.dll"));                  List<string> dlls = new List<string>(Directory.GetFiles(PluginPath, "*.dll"));
33                  logger.Debug.WriteLine("  Found: {0} plugin dlls", dlls.Count);                  if (!silent)
34                        logger.Debug.WriteLine("  Found: {0} plugin dlls", dlls.Count);
35                  foreach (string dll in dlls)                  foreach (string dll in dlls)
36                  {                  {
37                      FileInfo fi = new FileInfo(dll);                      FileInfo fi = new FileInfo(dll);
38                      logger.Debug.WriteLine("    plugin[{0}]: {1}", dlls.IndexOf(dll), fi.Name);                      if (!silent)
39                            logger.Debug.WriteLine("    plugin[{0}]: {1}", dlls.IndexOf(dll), fi.Name);
40                      GetConfigPluginsFromDll(fi);                      GetConfigPluginsFromDll(fi);
41                      GetInputPluginsFromDll(fi);                      GetInputPluginsFromDll(fi);
42                      GetWindowPluginsFromDll(fi);                      GetWindowPluginsFromDll(fi);
43                  }                  }
44    
45                  logger.Info.WriteLine("  Loaded {0} config plugins", LoadedConfigPlugins.Count);                  if (!silent)
46                  logger.Info.WriteLine("  Loaded {0} input plugins", LoadedInputPlugins.Count);                      logger.Info.WriteLine("  Loaded {0} config plugins", LoadedConfigPlugins.Count);
47                  logger.Info.WriteLine("  Loaded {0} window plugins", LoadedWindowPlugins.Count);                  if (!silent)
48                        logger.Info.WriteLine("  Loaded {0} input plugins", LoadedInputPlugins.Count);
49                  logger.Info.WriteLine("Plugins Loaded.");                  if (!silent)
50                        logger.Info.WriteLine("  Loaded {0} window plugins", LoadedWindowPlugins.Count);
51                    if (!silent)
52                        logger.Info.WriteLine("Plugins Loaded.");
53              }              }
54              catch (ReflectionTypeLoadException ex)              catch (ReflectionTypeLoadException ex)
55              {              {
# Line 54  namespace RomCheater.PluginFramework.Cor Line 61  namespace RomCheater.PluginFramework.Cor
61                          builder.AppendLine(c.ToString());                          builder.AppendLine(c.ToString());
62                      }                      }
63                  }                  }
64                  logger.Error.WriteLine("Failed to load one or more plugins{0}Possible Reason:{0}{1}", System.Environment.NewLine, builder.ToString());                  if (!silent)
65                        logger.Error.WriteLine("Failed to load one or more plugins{0}Possible Reason:{0}{1}", System.Environment.NewLine, builder.ToString());
66              }              }
67              catch (Exception ex)              catch (Exception ex)
68              {              {
69                  logger.Error.WriteLine("Failed to load one or more plugins{0}Possible Reason:{0}{1}", System.Environment.NewLine, ex.ToString());                  if (!silent)
70                        logger.Error.WriteLine("Failed to load one or more plugins{0}Possible Reason:{0}{1}", System.Environment.NewLine, ex.ToString());
71              }              }
72          }          }
73          public List<IConfigPlugin> LoadedConfigPlugins { get; private set; }          public List<IConfigPlugin> LoadedConfigPlugins { get; private set; }
# Line 107  namespace RomCheater.PluginFramework.Cor Line 116  namespace RomCheater.PluginFramework.Cor
116                  if (type.BaseType == typeof(ConfigPlugin))                  if (type.BaseType == typeof(ConfigPlugin))
117                  {                  {
118                      ConstructorInfo ci = null;                      ConstructorInfo ci = null;
119                      ci = type.GetConstructor(new Type[] {});                      ci = type.GetConstructor(new Type[] { });
120                      if (ci == null)                      if (ci == null)
121                      {                      {
122                          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.366

  ViewVC Help
Powered by ViewVC 1.1.22