/[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 472 by william, Mon Jun 3 07:39:39 2013 UTC revision 473 by william, Mon Jun 3 09:21:03 2013 UTC
# Line 67  namespace RomCheater.Docking Line 67  namespace RomCheater.Docking
67          //new Action<int, string>(UpdateProgress) to use this as a delegate          //new Action<int, string>(UpdateProgress) to use this as a delegate
68          private void UpdateProgress(int value, string message)          private void UpdateProgress(int value, string message)
69          {          {
70                //string stacktrace = string.Empty;
71                //if (value == 0 && message == string.Empty)
72                //{
73                //    stacktrace = System.Environment.StackTrace;
74                //}
75              resultsprogress.Value = value;              resultsprogress.Value = value;
76              resultsprogress.Message = message;              resultsprogress.Message = message;
77          }          }
# Line 1370  namespace RomCheater.Docking Line 1375  namespace RomCheater.Docking
1375                                  if (SearchWorkerThread.CancellationPending) { e.Canceled = true; return; }                                  if (SearchWorkerThread.CancellationPending) { e.Canceled = true; return; }
1376                              }                              }
1377                              catch (EndOfStreamException) { }                              catch (EndOfStreamException) { }
1378                              double double_percent_done = 100.0 * (double)((double)CurrentIndex / (double)e.TotalCount);                              if (e.ReportProgress)
                             int int_percent_done = (int)double_percent_done;  
                             if (int_percent_done != Last_Whole_Percent_Done && CurrentIndex % 100000 == 0)  
1379                              {                              {
1380                                  if (int_percent_done <= 100)                                  double double_percent_done = 100.0 * (double)((double)CurrentIndex / (double)e.TotalCount);
1381                                    int int_percent_done = (int)double_percent_done;
1382                                    if (int_percent_done != Last_Whole_Percent_Done && CurrentIndex % 100000 == 0)
1383                                  {                                  {
1384                                      new Action<int, string>(UpdateProgress).Invoke(int_percent_done, string.Format(" -> Reading Address: 0x{0:x8}", (CurrentIndex + MemoryRangeStart)));                                      if (int_percent_done <= 100)
1385                                      Last_Whole_Percent_Done = int_percent_done;                                      {
1386                                            new Action<int, string>(UpdateProgress).Invoke(int_percent_done, string.Format(" -> Reading Address: 0x{0:x8}", (CurrentIndex + MemoryRangeStart)));
1387                                            Last_Whole_Percent_Done = int_percent_done;
1388                                        }
1389                                        if (SearchWorkerThread.CancellationPending) { e.Canceled = true; return; }
1390                                  }                                  }
                                 if (SearchWorkerThread.CancellationPending) { e.Canceled = true; return; }  
1391                              }                              }
1392                              switch (sdt)                              switch (sdt)
1393                              {                              {
# Line 1462  namespace RomCheater.Docking Line 1470  namespace RomCheater.Docking
1470                              guid[guid.Length - 1]++; // increment the search guid by 1                              guid[guid.Length - 1]++; // increment the search guid by 1
1471                              Guid new_SearchGuid = new Guid(guid);                              Guid new_SearchGuid = new Guid(guid);
1472                              //provider.OnBytesRead += new BaseEventHandler<OnBytesReadEventArgs>(search_provider_OnBytesRead);                              //provider.OnBytesRead += new BaseEventHandler<OnBytesReadEventArgs>(search_provider_OnBytesRead);
1473                              int count = 0;                              //int count = 0;
1474                              //int Last_Whole_Percent_Done = 0;                              //int Last_Whole_Percent_Done = 0;
1475                              //var results = reader.GetResults(SearchArgs.IsUnsignedDataType, SearchArgs.DataType, new Action<int, string>(UpdateProgress));                              //var results = reader.GetResults(SearchArgs.IsUnsignedDataType, SearchArgs.DataType, new Action<int, string>(UpdateProgress));
1476    
1477                              //reader.WriteUpdatedEntries(new_SearchGuid, SearchArgs.IsUnsignedDataType, SearchArgs.DataType, new Action<int, string>(UpdateProgress));                              //reader.WriteUpdatedEntries(new_SearchGuid, SearchArgs.IsUnsignedDataType, SearchArgs.DataType, new Action<int, string>(UpdateProgress));
1478    
1479                                const int item_count = 0x1;
1480                              using (SearchResultWriter writer = new SearchResultWriter((int)(reader.ResultCount), new_SearchGuid))                              using (SearchResultWriter writer = new SearchResultWriter((int)(reader.ResultCount), new_SearchGuid))
1481                              {                              {
1482                                  for (int i = 0; i < reader.ResultCount; i++)                                  //int Last_Whole_Percent_Done = 0;
1483                                  {                                  for (int i = 0; i < reader.ResultCount; i += item_count)
1484                                    {                                  
1485                                      var item = reader.GetResultAtIndex(i, SearchArgs.IsUnsignedDataType, SearchArgs.DataType, new Action<int, string>(UpdateProgress));                                      var item = reader.GetResultAtIndex(i, SearchArgs.IsUnsignedDataType, SearchArgs.DataType, new Action<int, string>(UpdateProgress));
1486                                      provider.OpenProvider();                                      double double_percent_done = 100.0 * (double)((double)i / (double)reader.ResultCount);
1487                                      int bytesRead = 0;                                      int int_percent_done = (int)double_percent_done;
1488                                      byte[] data = new byte[STEP_SIZE];                                      if (i % 10 == 0)
1489                                      provider.ReadProcessMemory(item.Address, STEP_SIZE, out bytesRead, out data);                                      {
1490                                      BaseEventHandler<OnBytesReadEventArgs> t = new BaseEventHandler<OnBytesReadEventArgs>(search_provider_OnBytesRead);                                          if (int_percent_done <= 100)
1491                                      OnBytesReadEventArgs t_args = new OnBytesReadEventArgs(this, writer, data, item.Address, (uint)reader.ResultCount);                                          {
1492                                      t.Invoke(t_args);                                              new Action<int, string>(UpdateProgress).Invoke(int_percent_done, string.Format(" -> Loading value for Address: 0x{0:x8}", item.Address));
1493                                      t = null;                                              //Last_Whole_Percent_Done = int_percent_done;
1494                                      t_args = null;                                          }
1495                                      double percent_done = 100.0 * ((double)count / (double)reader.ResultCount);                                      }
1496                                      new Action<int, string>(UpdateProgress).Invoke((int)percent_done, string.Format(" -> Reading Address: 0x{0:x8}", item.Address));                                      //for (int j = 0; j < items.Count(); j++)
1497                                      count++;                                      //{
1498                                      data = null;                                          //var item = items[j];
1499                                      provider.CloseProvider();                                          provider.OpenProvider();
1500                                            int bytesRead = 0;
1501                                            byte[] data = new byte[STEP_SIZE];
1502                                            provider.ReadProcessMemory(item.Address, STEP_SIZE, out bytesRead, out data);
1503                                            BaseEventHandler<OnBytesReadEventArgs> t = new BaseEventHandler<OnBytesReadEventArgs>(search_provider_OnBytesRead);
1504                                            OnBytesReadEventArgs t_args = new OnBytesReadEventArgs(this, writer, data, item.Address, (uint)reader.ResultCount, false);
1505                                            t.Invoke(t_args);
1506                                            t = null;
1507                                            t_args = null;
1508                                            data = null;
1509                                            provider.CloseProvider();
1510                                            //double percent_done = 100.0 * ((double)i+(double)j / (double)reader.ResultCount);
1511    
1512                                            
1513    
1514                                            //double percent_done = 100.0 * ((double)i / (double)reader.ResultCount);
1515                                            //new Action<int, string>(UpdateProgress).Invoke((int)percent_done, string.Format(" -> Reading Address: 0x{0:x8}", item.Address));
1516                                        //}                                
1517                                  }                                  }
1518                              }                              }
1519                              SearchGuid = new_SearchGuid;                              SearchGuid = new_SearchGuid;

Legend:
Removed from v.472  
changed lines
  Added in v.473

  ViewVC Help
Powered by ViewVC 1.1.22