/[RomCheater]/trunk/RomCheater/Docking/FloatingMemorySearcher.cs
ViewVC logotype

Diff of /trunk/RomCheater/Docking/FloatingMemorySearcher.cs

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

revision 474 by william, Mon Jun 3 16:48:28 2013 UTC revision 475 by william, Mon Jun 3 17:43:12 2013 UTC
# Line 1378  namespace RomCheater.Docking Line 1378  namespace RomCheater.Docking
1378                              {                              {
1379                                  double double_percent_done = 100.0 * (double)((double)CurrentIndex / (double)e.TotalCount);                                  double double_percent_done = 100.0 * (double)((double)CurrentIndex / (double)e.TotalCount);
1380                                  int int_percent_done = (int)double_percent_done;                                  int int_percent_done = (int)double_percent_done;
1381                                  if (CurrentIndex % 10 == 0)                                  //if (CurrentIndex % 10 == 0)
1382                                  {                                  //{
1383                                      if (int_percent_done <= 100)                                  //    if (int_percent_done <= 100)
1384                                      {                                  //    {
1385                                          new Action<int, string>(UpdateProgress).Invoke(int_percent_done, string.Format(" -> Reading Index: 0x{0:x8} of 0x{1:x8}", CurrentIndex, e.TotalCount));                                  new Action<int, string>(UpdateProgress).Invoke(int_percent_done, string.Format(" -> Reading Index: 0x{0:x8} of 0x{1:x8}", CurrentIndex, e.TotalCount));
1386                                      }                                  //    }
1387                                      if (SearchWorkerThread.CancellationPending) { e.Canceled = true; return; }                                  //    if (SearchWorkerThread.CancellationPending) { e.Canceled = true; return; }
1388                                  }                                  //}
1389                              }                              }
1390                              //switch (sdt)                              //switch (sdt)
1391                              //{                              //{
# Line 1821  namespace RomCheater.Docking Line 1821  namespace RomCheater.Docking
1821                              byte[] guid = SearchGuid.ToByteArray();                              byte[] guid = SearchGuid.ToByteArray();
1822                              guid[guid.Length - 1]++; // increment the search guid by 1                              guid[guid.Length - 1]++; // increment the search guid by 1
1823                              Guid new_SearchGuid = new Guid(guid);                              Guid new_SearchGuid = new Guid(guid);
1824                              const int item_count = 0x100;                              //const int item_count = 0x100;
1825                              using (SearchResultWriter writer = new SearchResultWriter((int)(reader.ResultCount), new_SearchGuid))                              using (SearchResultWriter writer = new SearchResultWriter((int)(reader.ResultCount), new_SearchGuid))
1826                              {                              {
1827                                  ////int Last_Whole_Percent_Done = 0;                                  var items = reader.GetSearchAddressValueMatches((IAcceptsProcessAndConfig)this,SearchArgs, new Action<int, string>(UpdateProgress));
                                 //for (int i = 0; i < reader.ResultCount; i += item_count)  
                                 //{                                    
                                 //    var items = reader.GetResultRangeAtIndex(i,item_count, SearchArgs.IsUnsignedDataType, SearchArgs.DataType, new Action<int, string>(UpdateProgress));  
                                 //    for (int j = 0; j < items.Count(); j++)  
                                 //    {  
                                 //        int index = i + j;  
                                 //        var item = items[j];  
                                 //        provider.OpenProvider();  
                                 //        int bytesRead = 0;  
                                 //        byte[] data = new byte[STEP_SIZE];  
                                 //        provider.ReadProcessMemory(item.Address, STEP_SIZE, out bytesRead, out data);  
                                 //        BaseEventHandler<OnBytesReadEventArgs> t = new BaseEventHandler<OnBytesReadEventArgs>(search_provider_OnBytesRead);  
                                 //        OnBytesReadEventArgs t_args = new OnBytesReadEventArgs(this, writer, data, (uint)index, (uint)reader.ResultCount, false);  
                                 //        t.Invoke(t_args);  
                                 //        t = null;  
                                 //        t_args = null;  
                                 //        data = null;  
                                 //        provider.CloseProvider();                                          
                                 //        //double double_percent_done = 100.0 * (double)((double)index / (double)reader.ResultCount);  
                                 //        //int int_percent_done = (int)double_percent_done;  
                                 //        //if (i % item_count == 0)  
                                 //        //{  
                                 //        //    if (int_percent_done <= 100)  
                                 //        //    {  
                                 //        //        new Action<int, string>(UpdateProgress).Invoke(int_percent_done, string.Format(" -> Loading value for Address: 0x{0:x8}", item.Address));  
                                 //        //        //Last_Whole_Percent_Done = int_percent_done;  
                                 //        //    }  
                                 //        //}  
                                 //    }                                      
                                 //}  
                                 for (int i = 0; i < reader.ResultCount; i += item_count)  
                                 {  
                                     var items = reader.GetResultRangeAtIndex(i, item_count, SearchArgs.IsUnsignedDataType, SearchArgs.DataType, new Action<int, string>(UpdateProgress));  
1828    
1829                                      provider.OpenProvider();                                  foreach (var item in items)
1830                                      int count = 0;                                  {
1831                                      foreach (var item in items)                                      switch (SearchArgs.DataType)
                                     {  
                                         uint bytesToRead = STEP_SIZE;  
                                         int bytesRead = 0;  
                                         byte[] data = new byte[bytesToRead];  
                                         provider.ReadProcessMemory(item.Address, bytesToRead, out bytesRead, out data);  
                                         BaseEventHandler<OnBytesReadEventArgs> t = new BaseEventHandler<OnBytesReadEventArgs>(search_provider_OnBytesRead_compare_only);  
                                         OnBytesReadEventArgs t_args = new OnBytesReadEventArgs(this, writer, data, (uint)count, (uint)item_count, true);  
                                         t.Invoke(t_args);  
                                         t = null;  
                                         t_args = null;  
                                         count++;  
                                     }  
                                     double double_percent_done = 100.0 * (double)((double)i / (double)reader.ResultCount);  
                                     int int_percent_done = (int)double_percent_done;  
                                     if (i % item_count == 0)  
1832                                      {                                      {
1833                                          if (int_percent_done <= 100)                                          case SearchDataTypes._8bits:
1834                                          {                                              if (SearchArgs.IsUnsignedDataType)
1835                                              new Action<int, string>(UpdateProgress).Invoke(int_percent_done, string.Format(" -> Loaded {0} value(s) from index: 0x{1:x8}", item_count, i));                                              {
1836                                              //Last_Whole_Percent_Done = int_percent_done;                                                  writer.WriteResult<byte>(item.Address, Convert.ToByte(item.Value));
1837                                          }                                              }
1838                                                else
1839                                                {
1840                                                    writer.WriteResult<sbyte>(item.Address, Convert.ToSByte(item.Value));
1841                                                }
1842                                                break;
1843                                            case SearchDataTypes._16bits:
1844                                                if (SearchArgs.IsUnsignedDataType)
1845                                                {
1846                                                    writer.WriteResult<ushort>(item.Address, Convert.ToUInt16(item.Value));
1847                                                }
1848                                                else
1849                                                {
1850                                                    writer.WriteResult<short>(item.Address, Convert.ToInt16(item.Value));
1851                                                }
1852                                                break;
1853                                            case SearchDataTypes._32bits:
1854                                                if (SearchArgs.IsUnsignedDataType)
1855                                                {
1856                                                    writer.WriteResult<uint>(item.Address, Convert.ToUInt32(item.Value));
1857                                                }
1858                                                else
1859                                                {
1860                                                    writer.WriteResult<int>(item.Address, Convert.ToInt32(item.Value));
1861                                                }
1862                                                break;
1863                                            case SearchDataTypes._64bits:
1864                                                if (SearchArgs.IsUnsignedDataType)
1865                                                {
1866                                                    writer.WriteResult<ulong>(item.Address, Convert.ToUInt64(item.Value));
1867                                                }
1868                                                else
1869                                                {
1870                                                    writer.WriteResult<long>(item.Address, Convert.ToInt64(item.Value));
1871                                                }
1872                                                break;
1873                                      }                                      }
                                     provider.CloseProvider();  
1874                                  }                                  }
1875                              }                              }
1876                              SearchGuid = new_SearchGuid;                              SearchGuid = new_SearchGuid;

Legend:
Removed from v.474  
changed lines
  Added in v.475

  ViewVC Help
Powered by ViewVC 1.1.22