public virtual void SetValue(int i)
{
switch(ValueType) {
case DataValueType.HalfByte:
data.SetValue(valueIndex, Wla.ToHalfByte((byte)i));
break;
case DataValueType.Byte:
case DataValueType.WarpDestIndex:
default:
data.SetByteValue(valueIndex,(byte)i);
break;
case DataValueType.Word:
data.SetWordValue(valueIndex,i);
break;
case DataValueType.ByteBits:
{
int andValue = ((1<<(endBit-startBit+1))-1);
int value = data.GetIntValue(valueIndex) & (~(andValue<<startBit));
value |= ((i&andValue)<<startBit);
data.SetByteValue(valueIndex,(byte)value);
}
break;
case DataValueType.ByteBit:
{
int value = data.GetIntValue(valueIndex) & ~(1<<startBit);
value |= ((i&1)<<startBit);
data.SetByteValue(valueIndex, (byte)value);
}
break;
}
}