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

Annotation of /trunk/RomCheater/Docking/MemorySearch/ResultDataType.cs

Parent Directory Parent Directory | Revision Log Revision Log


Revision 229 - (hide annotations) (download)
Sat Jun 2 18:31:40 2012 UTC (9 years, 6 months ago) by william
File size: 5131 byte(s)

1 william 229 using System;
2     using System.Collections.Generic;
3     using System.Linq;
4     using System.Text;
5    
6     namespace RomCheater.Docking.MemorySearch
7     {
8     public interface IResultDataType
9     {
10     uint Address { get; set; }
11     bool IsFrozen { get; set; }
12     bool IsUnsigned { get; set; }
13     object Value { get; set; }
14     SearchDataTypes ValueType { get; set; }
15     }
16     public class ResultDataType : IResultDataType
17     {
18    
19     public ResultDataType(uint address) { this.Address = address; }
20     public ResultDataType(uint address, bool isfrozen) : this(address) { this.IsFrozen = isfrozen; }
21     public ResultDataType(uint address, bool isfrozen, object value, SearchDataTypes ValueType) : this(address, isfrozen, value) { this.ValueType = ValueType; }
22     public ResultDataType(uint address, bool isfrozen, object value)
23     : this(address, isfrozen)
24     {
25     this.Value = value;
26     this.ValueType = SearchDataTypes._8bits;
27     if (value.GetType() == typeof(sbyte) || value.GetType() == typeof(byte))
28     {
29     this.ValueType = SearchDataTypes._8bits;
30     }
31     else if (value.GetType() == typeof(short) || value.GetType() == typeof(ushort))
32     {
33     this.ValueType = SearchDataTypes._16bits;
34     }
35     else if (value.GetType() == typeof(int) || value.GetType() == typeof(uint))
36     {
37     this.ValueType = SearchDataTypes._32bits;
38     }
39     else if (value.GetType() == typeof(long) || value.GetType() == typeof(ulong))
40     {
41     this.ValueType = SearchDataTypes._64bits;
42     }
43     else
44     {
45     this.ValueType = SearchDataTypes._8bits;
46     }
47     this.IsUnsigned = true;
48     }
49     public ResultDataType(uint address, bool isfrozen, byte value) : this(address, isfrozen) { this.Value = (object)value; this.ValueType = SearchDataTypes._8bits; this.IsUnsigned = true; }
50     public ResultDataType(uint address, bool isfrozen, sbyte value) : this(address, isfrozen) { this.Value = (object)value; this.ValueType = SearchDataTypes._8bits; }
51     public ResultDataType(uint address, bool isfrozen, ushort value) : this(address, isfrozen) { this.Value = (object)value; this.ValueType = SearchDataTypes._16bits; this.IsUnsigned = true; }
52     public ResultDataType(uint address, bool isfrozen, short value) : this(address, isfrozen) { this.Value = (object)value; this.ValueType = SearchDataTypes._16bits; }
53     public ResultDataType(uint address, bool isfrozen, uint value) : this(address, isfrozen) { this.Value = (object)value; this.ValueType = SearchDataTypes._32bits; this.IsUnsigned = true; }
54     public ResultDataType(uint address, bool isfrozen, int value) : this(address, isfrozen) { this.Value = (object)value; this.ValueType = SearchDataTypes._32bits; }
55     public ResultDataType(uint address, bool isfrozen, ulong value) : this(address, isfrozen) { this.Value = (object)value; this.ValueType = SearchDataTypes._64bits; this.IsUnsigned = true; }
56     public ResultDataType(uint address, bool isfrozen, long value) : this(address, isfrozen) { this.Value = (object)value; this.ValueType = SearchDataTypes._64bits; }
57    
58     #region IResultDataType Members
59    
60     private uint _address;
61     private bool _isfrozen;
62     private object _value;
63     private SearchDataTypes _valuetype;
64     private bool _IsUnsigned = false;
65    
66     public uint Address { get { return _address; } set { _address = value; } }
67     public bool IsFrozen { get { return _isfrozen; } set { _isfrozen = value; } }
68     public object Value { get { return _value; } set { _value = value; } }
69     public SearchDataTypes ValueType { get { return _valuetype; } set { _valuetype = value; } }
70    
71     public bool IsUnsigned { get { return _IsUnsigned; } set { _IsUnsigned = value; } }
72     #endregion
73    
74     public override string ToString()
75     {
76     string value_out = "";
77    
78     switch (this.ValueType)
79     {
80     case SearchDataTypes._8bits:
81     value_out = string.Format("0x{0:x2}", this.Value);
82     break;
83     case SearchDataTypes._16bits:
84     value_out = string.Format("0x{0:x4}", this.Value);
85     break;
86     case SearchDataTypes._32bits:
87     value_out = string.Format("0x{0:x8}", this.Value);
88     break;
89     case SearchDataTypes._64bits:
90     value_out = string.Format("0x{0:x16}", this.Value);
91     break;
92     }
93    
94     StringBuilder builder = new StringBuilder();
95     builder.Append("{");
96     builder.AppendFormat("0x{0:x8},{1},{2}",
97     this.Address,
98     value_out,
99     this.IsFrozen);
100     builder.Append("}");
101     return builder.ToString();
102     }
103     }
104     }

  ViewVC Help
Powered by ViewVC 1.1.22