LynnaLab.StreamValueReference.SetValue C# (CSharp) Method

SetValue() public method

public SetValue ( int i ) : void
i int
return void
        public override void SetValue(int i)
        {
            stream.Seek(valueIndex, SeekOrigin.Begin);
            switch(ValueType) {
                case DataValueType.Byte:
                default:
                    stream.WriteByte((byte)i);
                    break;
                case DataValueType.Word:
                    stream.WriteByte((byte)(i&0xff));
                    stream.WriteByte((byte)(i>>8));
                    break;
                case DataValueType.ByteBits:
                    {
                        int andValue = ((1<<(endBit-startBit+1))-1);
                        int value = stream.ReadByte() & (~(andValue<<startBit));
                        value |= ((i&andValue)<<startBit);

                        stream.Seek(valueIndex, SeekOrigin.Begin);
                        stream.WriteByte((byte)value);
                    }
                    break;
                case DataValueType.ByteBit:
                    {
                        int value = stream.ReadByte() & ~(1<<startBit);
                        value |= ((i&1)<<startBit);

                        stream.Seek(valueIndex, SeekOrigin.Begin);
                        stream.WriteByte((byte)value);
                    }
                    break;
            }
        }