Helper class to deal with the many different endianness in binary sofu files.
Autodetects input encoding and converts into and from a stream.
| C# |
public class Endianness
| All Members | Constructors | Methods | Properties | ||
| Icon | Member | Description |
|---|---|---|
| Endianness()()() |
Create a new endian encoder using machine order
| |
| Endianness(Int32) |
Create a new encian decoder using a sofu byte order mark.
| |
| Endianness(array<Byte>[]()[]) |
Create a new encian decoder using a sofu byte order mark.
| |
| Endianness(Byte, Byte) |
Create a new encian decoder using a sofu byte order mark.
| |
| BigEndian |
Use big endian as Endianness
| |
| ByteOrderMark()()() |
Returns the byte order mark for this Endianness
| |
| ConvertLong(UInt32) |
Converts one unsigned integer into a byte array using the current Endianness.
| |
| ConvertLong(array<Byte>[]()[]) |
Converts a bytearray into an unsigned integer using the current Endianness
| |
| Equals(Object) | (Inherited from Object.) | |
| Finalize()()() | (Inherited from Object.) | |
| GetHashCode()()() | (Inherited from Object.) | |
| GetType()()() | (Inherited from Object.) | |
| Is7BIT()()() |
Detects 7 Bit Endianness
| |
| LittleEndian |
Use little endian as Endianness
| |
| MachineOrder |
Use this machines default endianess
| |
| MemberwiseClone()()() | (Inherited from Object.) | |
| Only7Bit |
Use integers that don't go over 7 bit.
Useful if your transport stream isn't 8 bit safe.
| |
| ToString()()() | (Inherited from Object.) |
Endianness supports only 3 encodings for now, those defined in the binary sofu file format:
0, 1: Big Endian1, 0: Little Endian0, 0: 7-Bit Integers
Convert a some bytes to an integer
byte[] buffer = new byte[2] { 0, 1 }; // Or read it from somewhere Endianness endian = new Endianness(buffer); // Big Endian, This is in fact a binary sofu header part. byte[] input = new byte[4] { 0xdd, 0x65, 0xee, 0x47 }; int i = endian.ConvertLong(input); Console.Out.WriteLine(i); // Writes: 3714444871
Convert an integer back to some bytes
Endianness endian = Endianness.LittleEndian; byte[] output = endian.ConvertLong(3714444871); // output is now { 0x47, 0xee, 0x65, 0xdd }
| Object | |
| Endianness | |