SourcePP
Several modern C++20 libraries for sanely parsing Valve's formats.
Loading...
Searching...
No Matches
kvpp::DMXValue Namespace Reference

Classes

struct  Color
struct  Element
struct  EulerAngles
struct  Quaternion
struct  Time

Typedefs

using UUID = std::array<std::byte, 16>
using ByteArray = std::vector<std::byte>
using Vector2 = sourcepp::math::Vec2f
using Vector3 = sourcepp::math::Vec3f
using Vector4 = sourcepp::math::Vec4f
using Matrix4x4 = sourcepp::math::Mat4x4f
using Generic

Enumerations

enum class  IDv1 : uint8_t {
  INVALID = 0 , VALUE_START , ELEMENT = VALUE_START , INT32 ,
  FLOAT , BOOL , STRING , BYTEARRAY ,
  UUID , COLOR , VECTOR2 , VECTOR3 ,
  VECTOR4 , EULER_ANGLES , QUATERNION , MATRIX_4X4 ,
  VALUE_END = MATRIX_4X4 , ARRAY_START , ARRAY_ELEMENT = ARRAY_START , ARRAY_INT32 ,
  ARRAY_FLOAT , ARRAY_BOOL , ARRAY_STRING , ARRAY_BYTEARRAY ,
  ARRAY_UUID , ARRAY_COLOR , ARRAY_VECTOR2 , ARRAY_VECTOR3 ,
  ARRAY_VECTOR4 , ARRAY_EULER_ANGLES , ARRAY_QUATERNION , ARRAY_MATRIX_4X4 ,
  ARRAY_END = ARRAY_MATRIX_4X4
}
enum class  IDv2 : uint8_t {
  INVALID = 0 , VALUE_START , ELEMENT = VALUE_START , INT32 ,
  FLOAT , BOOL , STRING , BYTEARRAY ,
  TIME , COLOR , VECTOR2 , VECTOR3 ,
  VECTOR4 , EULER_ANGLES , QUATERNION , MATRIX_4X4 ,
  VALUE_END = MATRIX_4X4 , ARRAY_START , ARRAY_ELEMENT = ARRAY_START , ARRAY_INT32 ,
  ARRAY_FLOAT , ARRAY_BOOL , ARRAY_STRING , ARRAY_BYTEARRAY ,
  ARRAY_TIME , ARRAY_COLOR , ARRAY_VECTOR2 , ARRAY_VECTOR3 ,
  ARRAY_VECTOR4 , ARRAY_EULER_ANGLES , ARRAY_QUATERNION , ARRAY_MATRIX_4X4 ,
  ARRAY_END = ARRAY_MATRIX_4X4
}
enum class  IDv3 : uint8_t {
  INVALID = 0 , VALUE_START , ELEMENT = VALUE_START , INT32 ,
  FLOAT , BOOL , STRING , BYTEARRAY ,
  TIME , COLOR , VECTOR2 , VECTOR3 ,
  VECTOR4 , EULER_ANGLES , QUATERNION , MATRIX_4X4 ,
  UINT64 , UINT8 , VALUE_END = UINT8 , ARRAY_START = 33 ,
  ARRAY_ELEMENT = ARRAY_START , ARRAY_INT32 , ARRAY_FLOAT , ARRAY_BOOL ,
  ARRAY_STRING , ARRAY_BYTEARRAY , ARRAY_TIME , ARRAY_COLOR ,
  ARRAY_VECTOR2 , ARRAY_VECTOR3 , ARRAY_VECTOR4 , ARRAY_EULER_ANGLES ,
  ARRAY_QUATERNION , ARRAY_MATRIX_4X4 , ARRAY_UINT64 , ARRAY_UINT8 ,
  ARRAY_END = ARRAY_UINT8
}
enum class  IDVersion { V1 , V2 , V3 }
 Not representative of DMX encoding version, although the attribute type enum variances are linked to that. More...
enum class  ID : uint8_t {
  INVALID = 0 , VALUE_START , ELEMENT = VALUE_START , INT32 ,
  FLOAT , BOOL , STRING , BYTEARRAY ,
  UUID , TIME , COLOR , VECTOR2 ,
  VECTOR3 , VECTOR4 , EULER_ANGLES , QUATERNION ,
  MATRIX_4X4 , UINT64 , UINT8 , VALUE_END = UINT8 ,
  ARRAY_START , ARRAY_ELEMENT = ARRAY_START , ARRAY_INT32 , ARRAY_FLOAT ,
  ARRAY_BOOL , ARRAY_STRING , ARRAY_BYTEARRAY , ARRAY_UUID ,
  ARRAY_TIME , ARRAY_COLOR , ARRAY_VECTOR2 , ARRAY_VECTOR3 ,
  ARRAY_VECTOR4 , ARRAY_EULER_ANGLES , ARRAY_QUATERNION , ARRAY_MATRIX_4X4 ,
  ARRAY_UINT64 , ARRAY_UINT8 , ARRAY_END = ARRAY_UINT8
}

Functions

constexpr ID decodeID (IDv1 id)
constexpr ID decodeID (IDv2 id)
constexpr ID decodeID (IDv3 id)
constexpr std::byte encodeID (ID id, IDVersion version, bool &incompatible)
constexpr ID arrayIDToInnerID (ID id)
constexpr ID innerIDToArrayID (ID id)
std::string idToString (ID id)
constexpr ID stringToID (std::string_view id)

Typedef Documentation

◆ ByteArray

using kvpp::DMXValue::ByteArray = std::vector<std::byte>

Definition at line 27 of file DMX.h.

◆ Generic

Definition at line 460 of file DMX.h.

◆ Matrix4x4

using kvpp::DMXValue::Matrix4x4 = sourcepp::math::Mat4x4f

Definition at line 50 of file DMX.h.

◆ UUID

using kvpp::DMXValue::UUID = std::array<std::byte, 16>

Definition at line 17 of file DMX.h.

◆ Vector2

using kvpp::DMXValue::Vector2 = sourcepp::math::Vec2f

Definition at line 40 of file DMX.h.

◆ Vector3

using kvpp::DMXValue::Vector3 = sourcepp::math::Vec3f

Definition at line 42 of file DMX.h.

◆ Vector4

using kvpp::DMXValue::Vector4 = sourcepp::math::Vec4f

Definition at line 44 of file DMX.h.

Enumeration Type Documentation

◆ ID

enum class kvpp::DMXValue::ID : uint8_t
strong
Enumerator
INVALID 
VALUE_START 
ELEMENT 
INT32 
FLOAT 
BOOL 
STRING 
BYTEARRAY 
UUID 
TIME 
COLOR 
VECTOR2 
VECTOR3 
VECTOR4 
EULER_ANGLES 
QUATERNION 
MATRIX_4X4 
UINT64 
UINT8 
VALUE_END 
ARRAY_START 
ARRAY_ELEMENT 
ARRAY_INT32 
ARRAY_FLOAT 
ARRAY_BOOL 
ARRAY_STRING 
ARRAY_BYTEARRAY 
ARRAY_UUID 
ARRAY_TIME 
ARRAY_COLOR 
ARRAY_VECTOR2 
ARRAY_VECTOR3 
ARRAY_VECTOR4 
ARRAY_EULER_ANGLES 
ARRAY_QUATERNION 
ARRAY_MATRIX_4X4 
ARRAY_UINT64 
ARRAY_UINT8 
ARRAY_END 

Definition at line 177 of file DMX.h.

◆ IDv1

enum class kvpp::DMXValue::IDv1 : uint8_t
strong
Enumerator
INVALID 
VALUE_START 
ELEMENT 
INT32 
FLOAT 
BOOL 
STRING 
BYTEARRAY 
UUID 
COLOR 
VECTOR2 
VECTOR3 
VECTOR4 
EULER_ANGLES 
QUATERNION 
MATRIX_4X4 
VALUE_END 
ARRAY_START 
ARRAY_ELEMENT 
ARRAY_INT32 
ARRAY_FLOAT 
ARRAY_BOOL 
ARRAY_STRING 
ARRAY_BYTEARRAY 
ARRAY_UUID 
ARRAY_COLOR 
ARRAY_VECTOR2 
ARRAY_VECTOR3 
ARRAY_VECTOR4 
ARRAY_EULER_ANGLES 
ARRAY_QUATERNION 
ARRAY_MATRIX_4X4 
ARRAY_END 

Definition at line 52 of file DMX.h.

◆ IDv2

enum class kvpp::DMXValue::IDv2 : uint8_t
strong
Enumerator
INVALID 
VALUE_START 
ELEMENT 
INT32 
FLOAT 
BOOL 
STRING 
BYTEARRAY 
TIME 
COLOR 
VECTOR2 
VECTOR3 
VECTOR4 
EULER_ANGLES 
QUATERNION 
MATRIX_4X4 
VALUE_END 
ARRAY_START 
ARRAY_ELEMENT 
ARRAY_INT32 
ARRAY_FLOAT 
ARRAY_BOOL 
ARRAY_STRING 
ARRAY_BYTEARRAY 
ARRAY_TIME 
ARRAY_COLOR 
ARRAY_VECTOR2 
ARRAY_VECTOR3 
ARRAY_VECTOR4 
ARRAY_EULER_ANGLES 
ARRAY_QUATERNION 
ARRAY_MATRIX_4X4 
ARRAY_END 

Definition at line 90 of file DMX.h.

◆ IDv3

enum class kvpp::DMXValue::IDv3 : uint8_t
strong
Enumerator
INVALID 
VALUE_START 
ELEMENT 
INT32 
FLOAT 
BOOL 
STRING 
BYTEARRAY 
TIME 
COLOR 
VECTOR2 
VECTOR3 
VECTOR4 
EULER_ANGLES 
QUATERNION 
MATRIX_4X4 
UINT64 
UINT8 
VALUE_END 
ARRAY_START 
ARRAY_ELEMENT 
ARRAY_INT32 
ARRAY_FLOAT 
ARRAY_BOOL 
ARRAY_STRING 
ARRAY_BYTEARRAY 
ARRAY_TIME 
ARRAY_COLOR 
ARRAY_VECTOR2 
ARRAY_VECTOR3 
ARRAY_VECTOR4 
ARRAY_EULER_ANGLES 
ARRAY_QUATERNION 
ARRAY_MATRIX_4X4 
ARRAY_UINT64 
ARRAY_UINT8 
ARRAY_END 

Definition at line 128 of file DMX.h.

◆ IDVersion

enum class kvpp::DMXValue::IDVersion
strong

Not representative of DMX encoding version, although the attribute type enum variances are linked to that.

Enumerator
V1 
V2 
V3 

Definition at line 171 of file DMX.h.

Function Documentation

◆ arrayIDToInnerID()

ID kvpp::DMXValue::arrayIDToInnerID ( ID id)
nodiscardconstexpr

Definition at line 500 of file DMX.h.

◆ decodeID() [1/3]

ID kvpp::DMXValue::decodeID ( IDv1 id)
nodiscardconstexpr

Definition at line 221 of file DMX.h.

◆ decodeID() [2/3]

ID kvpp::DMXValue::decodeID ( IDv2 id)
nodiscardconstexpr

Definition at line 256 of file DMX.h.

◆ decodeID() [3/3]

ID kvpp::DMXValue::decodeID ( IDv3 id)
nodiscardconstexpr

Definition at line 291 of file DMX.h.

◆ encodeID()

std::byte kvpp::DMXValue::encodeID ( ID id,
IDVersion version,
bool & incompatible )
nodiscardconstexpr

Definition at line 330 of file DMX.h.

◆ idToString()

std::string kvpp::DMXValue::idToString ( ID id)
nodiscard

Definition at line 19 of file DMX.cpp.

◆ innerIDToArrayID()

ID kvpp::DMXValue::innerIDToArrayID ( ID id)
nodiscardconstexpr

Definition at line 507 of file DMX.h.

◆ stringToID()

ID kvpp::DMXValue::stringToID ( std::string_view id)
nodiscardconstexpr

Definition at line 517 of file DMX.h.