9#ifndef __SGCT__CONFIG__H__
10#define __SGCT__CONFIG__H__
12#include <sgct/sgctexports.h>
33 std::optional<std::string>
name;
53 std::optional<std::filesystem::path>
path;
54 std::optional<ScreenShotRange>
range;
158 std::optional<std::string>
name;
165 std::optional<std::string>
name;
307 std::optional<std::string>
user;
333 AnaglyphRedCyanWimmer,
335 CheckerboardInverted,
337 VerticalInterlacedInverted,
347 std::optional<std::string>
name;
354 std::optional<std::string>
name;
379 std::optional<std::string>
name;
445 std::optional<std::string>
name;
483 const std::filesystem::path& filename);
499 std::optional<config::GeneratorVersion> genVersion = std::nullopt);
508 std::string_view configuration,
const std::filesystem::path& schema);
518 const std::filesystem::path& configuration,
const std::filesystem::path& schema);
Definition clustermanager.h:22
void validateCluster(const Cluster &cluster)
void validateGeneratorVersion(const GeneratorVersion &gVersion)
void validateTracker(const Tracker &tracker)
void validateNode(const Node &node)
void validateProjection(const CubemapProjection &proj)
void validateScene(const Scene &scene)
std::variant< NoProjection, CubemapProjection, CylindricalProjection, EquirectangularProjection, FisheyeProjection, PlanarProjection, ProjectionPlane, SphericalMirrorProjection, TextureMappedProjection > Projections
Definition config.h:289
void validateUser(const User &user)
void validateSettings(const Settings &settings)
void validateCapture(const Capture &capture)
void validateViewport(const Viewport &viewport)
void validateWindow(const Window &window)
config::Cluster readConfig(const std::filesystem::path &filename)
Reads a JSON configuration file from the provided filename.
std::string validateConfigAgainstSchema(std::string_view configuration, const std::filesystem::path &schema)
Validate the provided JSON-based string representation of a configuration against the schema file loc...
std::string serializeConfig(const config::Cluster &cluster, std::optional< config::GeneratorVersion > genVersion=std::nullopt)
Serialize the provided cluster into its JSON string representation such that parsing the serialized s...
config::Cluster readJsonConfig(std::string_view configuration)
Reads a JSON-formatted configuration direction from the provided configuration.
@ Mono
Definition definitions.h:24
@ StereoRight
Definition definitions.h:26
@ StereoLeft
Definition definitions.h:25
config::Cluster defaultCluster()
int last
Definition config.h:48
bool operator==(const ScreenShotRange &) const noexcept=default
int first
Definition config.h:47
std::optional< ScreenShotRange > range
Definition config.h:54
bool operator==(const Capture &) const noexcept=default
std::optional< std::filesystem::path > path
Definition config.h:53
std::optional< int > threadAffinity
Definition config.h:458
std::vector< User > users
Definition config.h:462
bool success
Definition config.h:454
std::string masterAddress
Definition config.h:456
bool operator==(const Cluster &) const noexcept=default
std::optional< Scene > scene
Definition config.h:460
std::optional< Meta > meta
Definition config.h:468
std::optional< Capture > capture
Definition config.h:463
std::optional< bool > firmSync
Definition config.h:459
std::optional< bool > debugLog
Definition config.h:457
std::vector< Node > nodes
Definition config.h:461
std::vector< Tracker > trackers
Definition config.h:464
std::optional< Settings > settings
Definition config.h:465
std::optional< GeneratorVersion > generator
Definition config.h:467
bool bottom
Definition config.h:148
bool zRight
Definition config.h:151
bool top
Definition config.h:149
bool left
Definition config.h:150
bool right
Definition config.h:146
bool zLeft
Definition config.h:147
bool operator==(const Channels &) const noexcept=default
std::optional< std::string > groups
Definition config.h:166
std::optional< std::string > name
Definition config.h:165
bool enabled
Definition config.h:164
bool operator==(const NDI &) const noexcept=default
std::optional< std::string > name
Definition config.h:158
bool enabled
Definition config.h:157
bool operator==(const Spout &) const noexcept=default
std::optional< int > quality
Definition config.h:171
std::optional< NDI > ndi
Definition config.h:173
bool operator==(const CubemapProjection &) const noexcept=default
std::optional< Channels > channels
Definition config.h:174
std::optional< Spout > spout
Definition config.h:172
std::optional< vec3 > orientation
Definition config.h:175
std::optional< float > rotation
Definition config.h:185
std::optional< float > radius
Definition config.h:187
bool operator==(const CylindricalProjection &) const noexcept=default
std::optional< float > heightOffset
Definition config.h:186
std::optional< int > quality
Definition config.h:184
bool operator==(const EquirectangularProjection &) const noexcept=default
std::optional< int > quality
Definition config.h:196
bool operator==(const Crop &) const noexcept=default
float top
Definition config.h:212
float left
Definition config.h:209
float right
Definition config.h:210
float bottom
Definition config.h:211
std::optional< float > tilt
Definition config.h:219
std::optional< int > quality
Definition config.h:217
std::optional< Interpolation > interpolation
Definition config.h:218
std::optional< Crop > crop
Definition config.h:221
bool operator==(const FisheyeProjection &) const noexcept=default
std::optional< float > fov
Definition config.h:216
std::optional< vec4 > background
Definition config.h:224
std::optional< bool > keepAspectRatio
Definition config.h:222
std::optional< vec3 > offset
Definition config.h:223
std::optional< float > diameter
Definition config.h:220
Interpolation
Definition config.h:205
bool operator==(const GeneratorVersion &) const noexcept=default
int major
Definition config.h:428
int minor
Definition config.h:429
std::string name
Definition config.h:427
bool versionCheck(GeneratorVersion check) const
std::string versionString() const
bool operator==(const NoProjection &) const noexcept=default
std::vector< Window > windows
Definition config.h:418
uint16_t port
Definition config.h:415
std::optional< uint16_t > dataTransferPort
Definition config.h:416
std::string address
Definition config.h:414
std::optional< bool > swapLock
Definition config.h:417
bool operator==(const Node &) const noexcept=default
float left
Definition config.h:235
std::optional< float > distance
Definition config.h:238
float up
Definition config.h:237
float down
Definition config.h:234
float right
Definition config.h:236
bool operator==(const FOV &) const noexcept=default
FOV fov
Definition config.h:242
bool operator==(const PlanarProjection &) const noexcept=default
std::optional< quat > orientation
Definition config.h:243
std::optional< vec3 > offset
Definition config.h:244
vec3 upperLeft
Definition config.h:254
vec3 lowerLeft
Definition config.h:253
bool operator==(const ProjectionPlane &) const noexcept=default
vec3 upperRight
Definition config.h:255
std::optional< float > scale
Definition config.h:65
bool operator==(const Scene &) const noexcept=default
std::optional< quat > orientation
Definition config.h:64
std::optional< vec3 > offset
Definition config.h:63
std::optional< int8_t > swapInterval
Definition config.h:77
std::optional< int > refreshRate
Definition config.h:78
bool operator==(const Display &) const noexcept=default
std::optional< Display > display
Definition config.h:87
std::optional< BufferFloatPrecision > bufferFloatPrecision
Definition config.h:86
bool operator==(const Settings &) const noexcept=default
std::optional< bool > useNormalTexture
Definition config.h:84
BufferFloatPrecision
Definition config.h:74
std::optional< bool > useDepthTexture
Definition config.h:83
std::optional< bool > usePositionTexture
Definition config.h:85
bool operator==(const Mesh &) const noexcept=default
std::string left
Definition config.h:266
std::string top
Definition config.h:268
std::string right
Definition config.h:267
std::string bottom
Definition config.h:265
std::optional< int > quality
Definition config.h:272
Mesh mesh
Definition config.h:275
std::optional< float > tilt
Definition config.h:273
std::optional< vec4 > background
Definition config.h:274
bool operator==(const SphericalMirrorProjection &) const noexcept=default
int count
Definition config.h:111
std::string vrpnAddress
Definition config.h:110
bool operator==(const Axis &) const noexcept=default
int identifier
Definition config.h:99
bool operator==(const Sensor &) const noexcept=default
std::string vrpnAddress
Definition config.h:98
bool operator==(const Device &) const noexcept=default
std::optional< vec3 > offset
Definition config.h:120
std::vector< Button > buttons
Definition config.h:118
std::string name
Definition config.h:116
std::optional< mat4 > transformation
Definition config.h:121
std::vector< Sensor > sensors
Definition config.h:117
std::vector< Axis > axes
Definition config.h:119
std::optional< vec3 > offset
Definition config.h:128
std::string name
Definition config.h:126
bool operator==(const Tracker &) const noexcept=default
std::optional< mat4 > transformation
Definition config.h:130
std::vector< Device > devices
Definition config.h:127
std::optional< double > scale
Definition config.h:129
std::string tracker
Definition config.h:27
std::string device
Definition config.h:28
bool operator==(const Tracking &) const noexcept=default
std::optional< Tracking > tracking
Definition config.h:37
std::optional< float > eyeSeparation
Definition config.h:34
std::optional< mat4 > transformation
Definition config.h:36
std::optional< vec3 > position
Definition config.h:35
bool operator==(const User &) const noexcept=default
std::optional< std::string > name
Definition config.h:33
std::optional< Eye > eye
Definition config.h:306
std::optional< std::string > user
Definition config.h:307
bool operator==(const Viewport &) const noexcept=default
std::optional< bool > isTracked
Definition config.h:305
Projections projection
Definition config.h:300
std::optional< std::filesystem::path > blendMaskTexture
Definition config.h:302
std::optional< vec2 > position
Definition config.h:298
Eye
Definition config.h:296
std::optional< vec2 > size
Definition config.h:299
std::optional< std::filesystem::path > correctionMeshTexture
Definition config.h:304
std::optional< std::filesystem::path > overlayTexture
Definition config.h:301
std::optional< std::filesystem::path > blackLevelMaskTexture
Definition config.h:303
std::optional< std::string > name
Definition config.h:354
std::optional< std::string > groups
Definition config.h:355
bool enabled
Definition config.h:353
bool operator==(const NDI &) const noexcept=default
bool enabled
Definition config.h:369
bool operator==(const OpenXR &) const noexcept=default
bool operator==(const Scalable &) const noexcept=default
std::filesystem::path mesh
Definition config.h:361
std::optional< int > orthographicQuality
Definition config.h:362
std::optional< int > orthographicResolution
Definition config.h:363
bool enabled
Definition config.h:346
std::optional< std::string > name
Definition config.h:347
bool operator==(const Spout &) const noexcept=default
std::optional< uint8_t > msaa
Definition config.h:390
std::optional< int8_t > blitWindowId
Definition config.h:397
std::optional< StereoMode > stereo
Definition config.h:401
std::optional< bool > isDecorated
Definition config.h:392
std::optional< bool > hideMouseCursor
Definition config.h:384
std::vector< Viewport > viewports
Definition config.h:377
std::optional< std::string > name
Definition config.h:379
std::optional< bool > noError
Definition config.h:396
std::optional< bool > shouldAutoiconify
Definition config.h:383
ColorBitDepth
Definition config.h:317
std::vector< std::string > tags
Definition config.h:380
std::optional< bool > draw3D
Definition config.h:395
std::optional< ivec2 > resolution
Definition config.h:376
std::optional< ivec2 > size
Definition config.h:375
std::optional< bool > isFloating
Definition config.h:385
std::optional< Spout > spout
Definition config.h:402
std::optional< bool > isResizable
Definition config.h:393
StereoMode
Definition config.h:328
bool operator==(const Window &) const noexcept=default
std::optional< bool > mirrorX
Definition config.h:398
std::optional< OpenXR > openxr
Definition config.h:405
std::optional< bool > takeScreenshot
Definition config.h:388
std::optional< NDI > ndi
Definition config.h:403
std::optional< ColorBitDepth > bufferBitDepth
Definition config.h:381
std::optional< bool > isFullScreen
Definition config.h:382
std::optional< uint8_t > monitor
Definition config.h:400
std::optional< bool > mirrorY
Definition config.h:399
std::optional< bool > draw2D
Definition config.h:394
std::optional< bool > useFxaa
Definition config.h:391
std::optional< Scalable > scalable
Definition config.h:404
std::optional< bool > alwaysRender
Definition config.h:386
std::optional< bool > isHidden
Definition config.h:387
std::optional< ivec2 > pos
Definition config.h:374
std::optional< bool > alpha
Definition config.h:389