/[RomCheater]/trunk/RomCheater/Docking/MemorySearch/ResultItemState.cs
ViewVC logotype

Diff of /trunk/RomCheater/Docking/MemorySearch/ResultItemState.cs

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

revision 229 by william, Sat Jun 2 18:31:40 2012 UTC revision 249 by william, Sun Jun 3 16:09:05 2012 UTC
# Line 6  using System.Windows.Forms; Line 6  using System.Windows.Forms;
6  using System.IO;  using System.IO;
7  using System.Diagnostics;  using System.Diagnostics;
8  using RomCheater.Logging;  using RomCheater.Logging;
9    using Sojaner.MemoryScanner.MemoryProviers;
10    using RomCheater.PluginFramework.Interfaces;
11    
12  namespace RomCheater.Docking.MemorySearch  namespace RomCheater.Docking.MemorySearch
13  {  {
14      [Serializable]      [Serializable]
15      public class ResultItemState      public class ResultItemState :
16            IAcceptsPlugin<IConfigPlugin>,
17            IAcceptsProcess<Process>,
18            IAcceptsProcessAndConfig
19      {      {
20          #region Implicit Conversion          #region Implicit Conversion
21          public static implicit operator ResultDataType(ResultItemState state)          public static implicit operator ResultDataType(ResultItemState state)
# Line 23  namespace RomCheater.Docking.MemorySearc Line 28  namespace RomCheater.Docking.MemorySearc
28                  case "false": frozen = false; break;                  case "false": frozen = false; break;
29              }              }
30    
31              uint Address = Convert.ToUInt32(state.Address, 16);              int Address = Convert.ToInt32(state.Address, 16);
32              switch (state.ValueType)              switch (state.ValueType)
33              {              {
34                  case SearchDataTypes._8bits:                  case SearchDataTypes._8bits:
# Line 46  namespace RomCheater.Docking.MemorySearc Line 51  namespace RomCheater.Docking.MemorySearc
51              return _result;              return _result;
52          }          }
53          #endregion          #endregion
54            #region  IAcceptsProcess<Process> Members
55          public ResultItemState()          public Process AcceptedProcess { get; set; }
56            #endregion
57            #region IAcceptsPlugin<IConfigPlugin> Members
58            public IConfigPlugin AcceptedPlugin { get; set; }
59            #endregion
60            public ResultItemState() : this(null) { }
61            public ResultItemState(IAcceptsProcessAndConfig pconfig)
62          {          {
63              this.IconKey = "";              this.IconKey = "";
64              this.Address = (0).ToString("x8");              this.Address = (0).ToString("x8");
# Line 55  namespace RomCheater.Docking.MemorySearc Line 66  namespace RomCheater.Docking.MemorySearc
66              this.Frozen = false.ToString();              this.Frozen = false.ToString();
67              this.ValueType = SearchDataTypes._32bits;              this.ValueType = SearchDataTypes._32bits;
68              this.IsUnsigned = true;              this.IsUnsigned = true;
69    
70                this.AcceptedPlugin = pconfig.AcceptedPlugin;
71                this.AcceptedProcess = pconfig.AcceptedProcess;
72          }          }
73          public ResultItemState(string address, SearchDataTypes bitsize, bool IsUnsigned, int pid)          public ResultItemState(string address, SearchDataTypes bitsize, bool IsUnsigned, IAcceptsProcessAndConfig pconfig)
74              : this(AVPIconKeys.NOTFROZEN, address, "", false.ToString(), bitsize, IsUnsigned)              : this(AVPIconKeys.NOTFROZEN, address, "", false.ToString(), bitsize, IsUnsigned, pconfig)
75          {          {
76              uint Address = 0;              int Address = 0;
77              Address = Convert.ToUInt32(this.Address, 16);              Address = Convert.ToInt32(this.Address, 16);
78              Sojaner.MemoryScanner.ProcessMemoryReader reader = new Sojaner.MemoryScanner.ProcessMemoryReader();              GenericMemoryProvider provider = new GenericMemoryProvider(pconfig);
79              reader.ReadProcess = Process.GetProcessById(pid);              provider.OpenProvider();
             if (reader.ReadProcess == null) { logger.Error.WriteLine("Could not attach to process: {0}", pid); return; }  
             reader.OpenProcess();  
80              int bytesReadSize;              int bytesReadSize;
81              byte[] data;              byte[] data;
82              uint bytesToRead=0;              uint bytesToRead=0;
# Line 84  namespace RomCheater.Docking.MemorySearc Line 96  namespace RomCheater.Docking.MemorySearc
96                      break;                      break;
97              }              }
98    
99              reader.ReadProcessMemory(Address, bytesToRead, out bytesReadSize, out data);              provider.ReadProcessMemory(Address, bytesToRead, out bytesReadSize, out data);
100              MemoryStream ms = new MemoryStream(data);              MemoryStream ms = new MemoryStream(data);
101              BinaryReader r_ms = new BinaryReader(ms);              BinaryReader r_ms = new BinaryReader(ms);
102                        
# Line 109  namespace RomCheater.Docking.MemorySearc Line 121  namespace RomCheater.Docking.MemorySearc
121                      else { this.Value = string.Format("0x{0:x16}", r_ms.ReadInt64()); }                      else { this.Value = string.Format("0x{0:x16}", r_ms.ReadInt64()); }
122                      break;                      break;
123              }              }
124                provider.CloseProvider();
125          }          }
126          //public ResultItemState(string address, SearchDataTypes bitsize, bool IsUnsigned)          public ResultItemState(string IconKey, string address, string value, string frozen, SearchDataTypes bitsize, bool IsUnsigned, IAcceptsProcessAndConfig pconfig)
127          //    : this(AVPIconKeys.NOTFROZEN, address, "", false.ToString(), bitsize, IsUnsigned)              : this(pconfig)
         //{  
         //    //PCSX2MemoryProvider provider = new PCSX2MemoryProvider(pcsx2_pid, null);  
         //    //byte[] buffered_mem = provider.GetMemory();  
         //    //MemoryStream ms = new MemoryStream(buffered_mem);  
         //    //BinaryReader r_ms = new BinaryReader(ms);  
         //    uint Address = 0;  
         //    Address = Convert.ToUInt32(this.Address, 16);  
         //    //r_ms.BaseStream.Seek(Address, SeekOrigin.Begin);  
         //    int val = 0;  
         //    switch (bitsize)  
         //    {  
         //        case SearchDataTypes._8bits:  
         //            if (IsUnsigned) { this.Value = string.Format("0x{0:x2}", val); }  
         //            else { this.Value = string.Format("0x{0:x2}", val); }  
         //            break;  
         //        case SearchDataTypes._16bits:  
         //            if (IsUnsigned) { this.Value = string.Format("0x{0:x4}", val); }  
         //            else { this.Value = string.Format("0x{0:x4}", val); }  
         //            break;  
         //        case SearchDataTypes._32bits:  
         //            if (IsUnsigned) { this.Value = string.Format("0x{0:x8}", val); }  
         //            else { this.Value = string.Format("0x{0:x8}", val); }  
         //            break;  
         //        case SearchDataTypes._64bits:  
         //            if (IsUnsigned) { this.Value = string.Format("0x{0:x16}", val); }  
         //            else { this.Value = string.Format("0x{0:x16}", val); }  
         //            break;  
         //    }  
         //}  
         public ResultItemState(string IconKey, string address, string value, string frozen, SearchDataTypes bitsize, bool IsUnsigned)  
128          {          {
129              this.IconKey = IconKey;              this.IconKey = IconKey;
130              this.Address = address;              this.Address = address;

Legend:
Removed from v.229  
changed lines
  Added in v.249

  ViewVC Help
Powered by ViewVC 1.1.22