SourcePP
Several modern C++20 libraries for sanely parsing Valve's formats.
Loading...
Searching...
No Matches
DMX.h File Reference
#include <array>
#include <filesystem>
#include <span>
#include <string>
#include <string_view>
#include <variant>
#include <vector>
#include <sourcepp/Math.h>
Include dependency graph for DMX.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  kvpp::DMXValue::Element
struct  kvpp::DMXValue::Time
struct  kvpp::DMXValue::Color
struct  kvpp::DMXValue::EulerAngles
struct  kvpp::DMXValue::Quaternion
class  kvpp::DMXAttribute
class  kvpp::DMXElement
class  kvpp::DMX

Namespaces

namespace  kvpp
namespace  kvpp::DMXValue
namespace  kvpp::literals

Typedefs

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

Enumerations

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

Functions

constexpr ID kvpp::DMXValue::decodeID (IDv1 id)
constexpr ID kvpp::DMXValue::decodeID (IDv2 id)
constexpr ID kvpp::DMXValue::decodeID (IDv3 id)
constexpr std::byte kvpp::DMXValue::encodeID (ID id, IDVersion version, bool &incompatible)
constexpr ID kvpp::DMXValue::arrayIDToInnerID (ID id)
constexpr ID kvpp::DMXValue::innerIDToArrayID (ID id)
std::string kvpp::DMXValue::idToString (ID id)
constexpr ID kvpp::DMXValue::stringToID (std::string_view id)
DMX kvpp::literals::operator""_kv2 (const char *str, std::size_t len)