using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Diagnostics; using RomCheater.PluginFramework.Core; namespace RomCheater.PluginFramework.Interfaces { #region IPluginBase public interface IPluginBase : IPluginName, IPluginDescription, IPluginID, IToString, IPluginRefresh { } #region IPluginBase SubMembers public interface IToString { string ToString(); } public interface IPluginName { string Name { get; } } public interface IPluginDescription { string Description { get; } } public interface IPluginID { Guid ID { get; } } public interface IPluginRefresh { void Reload(); } #endregion #endregion #region IConfigPlugin public interface IConfigPlugin : IPluginBase { List ValidProcessesForPlugin { get; } } #endregion #region IInputPlugin public interface IInputPlugin : IPluginBase { } #endregion #region IWindowPlugin public interface IWindowPlugin : IPluginBase { } #endregion #region IPluginLoader public interface IPluginLoader { void LoadPlugins(); List LoadedConfigPlugins { get; } List LoadedInputPlugins { get; } List LoadedWindowPlugins { get; } IConfigPlugin GetConfigPlugin(string t); IInputPlugin GetInputPlugin(string t); IWindowPlugin GetWindowPlugin(string t); string ToString(); } #endregion #region AcceptsPlugin public interface IAcceptsPlugin where PLUGIN_TYPE : IPluginBase { PLUGIN_TYPE AcceptedPlugin { get; set; } } #endregion public interface IProcessConfig : IAcceptsPlugin { Process AcceptedProcess { get; set; } } }