mirror of
https://github.com/TalAloni/SMBLibrary.git
synced 2025-05-17 17:59:32 +02:00
BigEndianReader / Writer: Added ReadUInt24 / WriteUInt24 methods
This commit is contained in:
parent
366c4d61d1
commit
fb7d6d4bc8
2 changed files with 36 additions and 0 deletions
|
@ -18,6 +18,17 @@ namespace Utilities
|
||||||
return BigEndianConverter.ToUInt16(buffer, offset - 2);
|
return BigEndianConverter.ToUInt16(buffer, offset - 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static uint ReadUInt24(byte[] buffer, int offset)
|
||||||
|
{
|
||||||
|
return (uint)((buffer[offset + 0] << 16) | (buffer[offset + 1] << 8) | (buffer[offset + 2] << 0));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static uint ReadUInt24(byte[] buffer, ref int offset)
|
||||||
|
{
|
||||||
|
offset += 3;
|
||||||
|
return ReadUInt24(buffer, offset - 3);
|
||||||
|
}
|
||||||
|
|
||||||
public static int ReadInt32(byte[] buffer, ref int offset)
|
public static int ReadInt32(byte[] buffer, ref int offset)
|
||||||
{
|
{
|
||||||
offset += 4;
|
offset += 4;
|
||||||
|
@ -62,6 +73,13 @@ namespace Utilities
|
||||||
return BigEndianConverter.ToUInt16(buffer, 0);
|
return BigEndianConverter.ToUInt16(buffer, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static uint ReadUInt24(Stream stream)
|
||||||
|
{
|
||||||
|
byte[] buffer = new byte[4];
|
||||||
|
stream.Read(buffer, 1, 3);
|
||||||
|
return BigEndianConverter.ToUInt32(buffer, 0);
|
||||||
|
}
|
||||||
|
|
||||||
public static int ReadInt32(Stream stream)
|
public static int ReadInt32(Stream stream)
|
||||||
{
|
{
|
||||||
byte[] buffer = new byte[4];
|
byte[] buffer = new byte[4];
|
||||||
|
|
|
@ -30,6 +30,18 @@ namespace Utilities
|
||||||
offset += 2;
|
offset += 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void WriteUInt24(byte[] buffer, int offset, uint value)
|
||||||
|
{
|
||||||
|
byte[] bytes = BigEndianConverter.GetBytes(value);
|
||||||
|
Array.Copy(bytes, 1, buffer, offset, 3);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void WriteUInt24(byte[] buffer, ref int offset, uint value)
|
||||||
|
{
|
||||||
|
WriteUInt24(buffer, offset, value);
|
||||||
|
offset += 3;
|
||||||
|
}
|
||||||
|
|
||||||
public static void WriteInt32(byte[] buffer, int offset, int value)
|
public static void WriteInt32(byte[] buffer, int offset, int value)
|
||||||
{
|
{
|
||||||
byte[] bytes = BigEndianConverter.GetBytes(value);
|
byte[] bytes = BigEndianConverter.GetBytes(value);
|
||||||
|
@ -102,6 +114,12 @@ namespace Utilities
|
||||||
stream.Write(bytes, 0, bytes.Length);
|
stream.Write(bytes, 0, bytes.Length);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void WriteUInt24(Stream stream, uint value)
|
||||||
|
{
|
||||||
|
byte[] bytes = BigEndianConverter.GetBytes(value);
|
||||||
|
stream.Write(bytes, 1, 3);
|
||||||
|
}
|
||||||
|
|
||||||
public static void WriteInt32(Stream stream, int value)
|
public static void WriteInt32(Stream stream, int value)
|
||||||
{
|
{
|
||||||
byte[] bytes = BigEndianConverter.GetBytes(value);
|
byte[] bytes = BigEndianConverter.GetBytes(value);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue