UltraGrid
UltraGrid Low-Latency High-Resolution Transmission System
Loading...
Searching...
No Matches
available_settings.cpp File Reference
#include <QString>
#include <QJsonDocument>
#include <QJsonObject>
#include <QJsonArray>
#include <QMessageBox>
#include <cstring>
#include "available_settings.hpp"
#include "utils/string_view_utils.hpp"
#include <iostream>
#include <map>
#include <algorithm>
Include dependency graph for available_settings.cpp:

Go to the source code of this file.

Macros

#define X(type, str)
 
#define X(type, str)
 

Functions

static void maybeWriteString (const QJsonObject &obj, const char *key, std::string &result)
 
std::vector< CapabOpt > parseCapabOpts (const QJsonObject &obj)
 
const char * settingTypeToStr (SettingType type)
 
SettingType strToSettingType (std::string_view sv)
 
static bool vectorContains (const std::vector< std::string > &v, const std::string &s)
 

Macro Definition Documentation

◆ X [1/2]

#define X ( type,
str )
Value:
case type: return str;
Option::OptType type
Definition settings.cpp:194

◆ X [2/2]

#define X ( type,
str )
Value:
if(sv == str) return type; else

Function Documentation

◆ maybeWriteString()

static void maybeWriteString ( const QJsonObject & obj,
const char * key,
std::string & result )
static

Definition at line 133 of file available_settings.cpp.

136{
137 if(obj.contains(key) && obj[key].isString()){
138 result = obj[key].toString().toStdString();
139 }
140}
const char * key
Definition cineform.cpp:125

References key.

Referenced by parseCapabOpts(), AvailableSettings::queryDevice(), and AvailableSettings::queryVideoCompress().

◆ parseCapabOpts()

std::vector< CapabOpt > parseCapabOpts ( const QJsonObject & obj)

Definition at line 142 of file available_settings.cpp.

142 {
143 std::vector<CapabOpt> opts;
144
145 if(obj.contains("options") && obj["options"].isArray()){
146 for(const QJsonValue &val : obj["options"].toArray()){
147 QJsonObject optJson = val.toObject();
148
149 CapabOpt capabOpt;
150 maybeWriteString(optJson, "display_name", capabOpt.displayName);
151 maybeWriteString(optJson, "display_desc", capabOpt.displayDesc);
152 maybeWriteString(optJson, "placeholder_text", capabOpt.placeholder);
153 maybeWriteString(optJson, "key", capabOpt.key);
154 maybeWriteString(optJson, "opt_str", capabOpt.optStr);
155 if(optJson.contains("is_boolean") && optJson["is_boolean"].isString()){
156 capabOpt.booleanOpt = optJson["is_boolean"].toString() == "t";
157 }
158
159 opts.emplace_back(std::move(capabOpt));
160 }
161 }
162
163 return opts;
164}
int void * val
static void maybeWriteString(const QJsonObject &obj, const char *key, std::string &result)
std::string optStr
std::string displayName
std::string displayDesc
std::string key
std::string placeholder

References CapabOpt::booleanOpt, CapabOpt::displayDesc, CapabOpt::displayName, CapabOpt::key, maybeWriteString(), CapabOpt::optStr, CapabOpt::placeholder, and val.

Referenced by AvailableSettings::queryDevice(), and AvailableSettings::queryVideoCompress().

Here is the call graph for this function:

◆ settingTypeToStr()

const char * settingTypeToStr ( SettingType type)

Definition at line 22 of file available_settings.cpp.

22 {
23#define X(type, str) case type: return str;
24 switch(type){
26 case SETTING_TYPE_COUNT: return "";
27 }
28#undef X
29
30 abort(); //Should be unreachable
31}
#define SETTING_TYPE_LIST
@ SETTING_TYPE_COUNT

References SETTING_TYPE_COUNT, SETTING_TYPE_LIST, and type.

◆ strToSettingType()

SettingType strToSettingType ( std::string_view sv)

Definition at line 33 of file available_settings.cpp.

33 {
34#define X(type, str) if(sv == str) return type; else
36 return SETTING_TYPE_UNKNOWN;
37 }
38#undef X
39
40 abort(); //Should be unreachable
41}

References SETTING_TYPE_LIST.

Referenced by AvailableSettings::queryProcessLine().

◆ vectorContains()

static bool vectorContains ( const std::vector< std::string > & v,
const std::string & s )
static

Definition at line 14 of file available_settings.cpp.

14 {
15 for(unsigned i = 0; i < v.size(); i++){
16 if(v[i] == s)
17 return true;
18 }
19 return false;
20}

Referenced by AvailableSettings::isAvailable().