mirror of
https://github.com/fastfetch-cli/fastfetch.git
synced 2026-09-12 10:22:12 +02:00
JsonConfig: write all flags when generating config file
This commit is contained in:
+39
-14
@@ -10,25 +10,25 @@
|
||||
]
|
||||
},
|
||||
"key": {
|
||||
"description": "Key of the module",
|
||||
"type": "string"
|
||||
"description": "Key of the module\nOne whitespace character (` `) can be used to hide the key",
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"keyColor": {
|
||||
"description": "Color of the module key. Left empty to use `display.color.keys`",
|
||||
"description": "Color of the module key to override the global setting `display.color.key`",
|
||||
"$ref": "#/$defs/colors"
|
||||
},
|
||||
"keyWidth": {
|
||||
"description": "Width of the module key. Use 0 to use `display.keyWidth`",
|
||||
"description": "Width of the module key to override the global setting `display.keyWidth`",
|
||||
"type": "integer",
|
||||
"minimum": 0,
|
||||
"default": 0
|
||||
"minimum": 1
|
||||
},
|
||||
"keyIcon": {
|
||||
"description": "Set the icon to be displayed by `display.keyType: \"icon\"`",
|
||||
"type": "string"
|
||||
},
|
||||
"outputColor": {
|
||||
"description": "Output color of the module. Left empty to use `display.color.output`",
|
||||
"description": "Output color of the module to override the global setting `display.color.output`",
|
||||
"$ref": "#/$defs/colors"
|
||||
},
|
||||
"percentType": {
|
||||
@@ -549,7 +549,7 @@
|
||||
"const": null
|
||||
},
|
||||
{
|
||||
"description": "Set the source file of the logo",
|
||||
"description": "Set the source file of the logo or built-in ASCII art name",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
@@ -671,14 +671,30 @@
|
||||
}
|
||||
},
|
||||
"width": {
|
||||
"type": "integer",
|
||||
"description": "Set the width of the logo (in characters). Required for iTerm image protocol",
|
||||
"minimum": 1
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "null",
|
||||
"description": "Auto detect width (default)"
|
||||
},
|
||||
{
|
||||
"type": "integer",
|
||||
"description": "Set the width of the logo (in characters). Required for some image protocols",
|
||||
"minimum": 1
|
||||
}
|
||||
]
|
||||
},
|
||||
"height": {
|
||||
"type": "integer",
|
||||
"description": "Set the height of the logo (in characters). Required for iTerm image protocol",
|
||||
"minimum": 1
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "null",
|
||||
"description": "Auto detect width (default)"
|
||||
},
|
||||
{
|
||||
"type": "integer",
|
||||
"description": "Set the height of the logo (in characters). Required for some image protocols",
|
||||
"minimum": 1
|
||||
}
|
||||
]
|
||||
},
|
||||
"padding": {
|
||||
"type": "object",
|
||||
@@ -1998,9 +2014,15 @@
|
||||
"key": {
|
||||
"$ref": "#/$defs/key"
|
||||
},
|
||||
"keyColor": {
|
||||
"$ref": "#/$defs/keyColor"
|
||||
},
|
||||
"keyIcon": {
|
||||
"$ref": "#/$defs/keyIcon"
|
||||
},
|
||||
"keyWidth": {
|
||||
"$ref": "#/$defs/keyWidth"
|
||||
},
|
||||
"condition": {
|
||||
"$ref": "#/$defs/conditions"
|
||||
}
|
||||
@@ -2635,6 +2657,9 @@
|
||||
],
|
||||
"default": null
|
||||
},
|
||||
"percent": {
|
||||
"$ref": "#/$defs/percent"
|
||||
},
|
||||
"key": {
|
||||
"$ref": "#/$defs/key"
|
||||
},
|
||||
|
||||
@@ -50,17 +50,19 @@ bool ffJsonConfigParseModuleArgs(yyjson_val* key, yyjson_val* val, FFModuleArgs*
|
||||
return false;
|
||||
}
|
||||
|
||||
void ffJsonConfigGenerateModuleArgsConfig(yyjson_mut_doc* doc, yyjson_mut_val* module, FFModuleArgs* defaultModuleArgs, FFModuleArgs* moduleArgs)
|
||||
void ffJsonConfigGenerateModuleArgsConfig(yyjson_mut_doc* doc, yyjson_mut_val* module, FFModuleArgs* moduleArgs)
|
||||
{
|
||||
if (!ffStrbufEqual(&defaultModuleArgs->key, &moduleArgs->key))
|
||||
if (moduleArgs->key.length > 0)
|
||||
yyjson_mut_obj_add_strbuf(doc, module, "key", &moduleArgs->key);
|
||||
if (!ffStrbufEqual(&defaultModuleArgs->outputFormat, &moduleArgs->outputFormat))
|
||||
if (moduleArgs->outputFormat.length > 0)
|
||||
yyjson_mut_obj_add_strbuf(doc, module, "format", &moduleArgs->outputFormat);
|
||||
if (!ffStrbufEqual(&defaultModuleArgs->keyColor, &moduleArgs->keyColor))
|
||||
if (moduleArgs->outputColor.length > 0)
|
||||
yyjson_mut_obj_add_strbuf(doc, module, "outputColor", &moduleArgs->outputColor);
|
||||
if (moduleArgs->keyColor.length > 0)
|
||||
yyjson_mut_obj_add_strbuf(doc, module, "keyColor", &moduleArgs->keyColor);
|
||||
if (moduleArgs->keyWidth != defaultModuleArgs->keyWidth)
|
||||
if (moduleArgs->keyWidth > 0)
|
||||
yyjson_mut_obj_add_uint(doc, module, "keyWidth", moduleArgs->keyWidth);
|
||||
if (!ffStrbufEqual(&defaultModuleArgs->keyIcon, &moduleArgs->keyIcon))
|
||||
if (moduleArgs->keyIcon.length > 0)
|
||||
yyjson_mut_obj_add_strbuf(doc, module, "keyIcon", &moduleArgs->keyIcon);
|
||||
}
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
bool ffJsonConfigParseModuleArgs(yyjson_val* key, yyjson_val* val, FFModuleArgs* moduleArgs);
|
||||
const char* ffJsonConfigParseEnum(yyjson_val* val, int* result, FFKeyValuePair pairs[]);
|
||||
void ffPrintJsonConfig(bool prepare, yyjson_mut_doc* jsonDoc);
|
||||
void ffJsonConfigGenerateModuleArgsConfig(yyjson_mut_doc* doc, yyjson_mut_val* module, FFModuleArgs* defaultModuleArgs, FFModuleArgs* moduleArgs);
|
||||
void ffJsonConfigGenerateModuleArgsConfig(yyjson_mut_doc* doc, yyjson_mut_val* module, FFModuleArgs* moduleArgs);
|
||||
|
||||
yyjson_api_inline yyjson_mut_val* yyjson_mut_strbuf(yyjson_mut_doc *doc, const FFstrbuf* buf) {
|
||||
return yyjson_mut_strncpy(doc, buf->chars, buf->length);
|
||||
|
||||
+4
-10
@@ -310,16 +310,10 @@ bool ffPercentParseJsonObject(yyjson_val* key, yyjson_val* value, FFPercentageMo
|
||||
return true;
|
||||
}
|
||||
|
||||
void ffPercentGenerateJsonConfig(yyjson_mut_doc* doc, yyjson_mut_val* module, FFPercentageModuleConfig defaultConfig, FFPercentageModuleConfig config)
|
||||
void ffPercentGenerateJsonConfig(yyjson_mut_doc* doc, yyjson_mut_val* module, FFPercentageModuleConfig config)
|
||||
{
|
||||
if (config.green == defaultConfig.green && config.yellow == defaultConfig.yellow)
|
||||
return;
|
||||
|
||||
yyjson_mut_val* percent = yyjson_mut_obj_add_obj(doc, module, "percent");
|
||||
if (config.green != defaultConfig.green)
|
||||
yyjson_mut_obj_add_uint(doc, percent, "green", config.green);
|
||||
if (config.yellow != defaultConfig.yellow)
|
||||
yyjson_mut_obj_add_uint(doc, percent, "yellow", config.yellow);
|
||||
if (config.type != defaultConfig.type)
|
||||
yyjson_mut_obj_add_uint(doc, percent, "type", config.type);
|
||||
yyjson_mut_obj_add_uint(doc, percent, "green", config.green);
|
||||
yyjson_mut_obj_add_uint(doc, percent, "yellow", config.yellow);
|
||||
yyjson_mut_obj_add_uint(doc, percent, "type", config.type);
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@ typedef enum __attribute__((__packed__)) FFPercentageTypeFlags
|
||||
FF_PERCENTAGE_TYPE_BAR_BIT = 1 << 1,
|
||||
FF_PERCENTAGE_TYPE_HIDE_OTHERS_BIT = 1 << 2,
|
||||
FF_PERCENTAGE_TYPE_NUM_COLOR_BIT = 1 << 3,
|
||||
FF_PERCENTAGE_TYPE_BAR_MONOCHROME_BIT = FF_PERCENTAGE_TYPE_NUM_COLOR_BIT,
|
||||
FF_PERCENTAGE_TYPE_BAR_MONOCHROME_BIT = 1 << 4,
|
||||
FF_PERCENTAGE_TYPE_FORCE_UNSIGNED_ = UINT8_MAX,
|
||||
} FFPercentageTypeFlags;
|
||||
static_assert(sizeof(FFPercentageTypeFlags) == 1, "");
|
||||
@@ -41,5 +41,5 @@ typedef struct yyjson_mut_doc yyjson_mut_doc;
|
||||
typedef struct yyjson_mut_val yyjson_mut_val;
|
||||
bool ffPercentParseCommandOptions(const char* key, const char* subkey, const char* value, FFPercentageModuleConfig* config);
|
||||
bool ffPercentParseJsonObject(yyjson_val* key, yyjson_val* value, FFPercentageModuleConfig* config);
|
||||
void ffPercentGenerateJsonConfig(yyjson_mut_doc* doc, yyjson_mut_val* module, FFPercentageModuleConfig defaultConfig, FFPercentageModuleConfig config);
|
||||
void ffPercentGenerateJsonConfig(yyjson_mut_doc* doc, yyjson_mut_val* module, FFPercentageModuleConfig config);
|
||||
const char* ffPercentParseTypeJsonConfig(yyjson_val* value, FFPercentageTypeFlags* result);
|
||||
|
||||
+5
-14
@@ -159,23 +159,14 @@ bool ffTempsParseJsonObject(yyjson_val* key, yyjson_val* value, bool* useTemp, F
|
||||
return true;
|
||||
}
|
||||
|
||||
void ffTempsGenerateJsonConfig(yyjson_mut_doc* doc, yyjson_mut_val* module, FF_MAYBE_UNUSED bool defaultTemp, FFColorRangeConfig defaultConfig, bool temp, FFColorRangeConfig config)
|
||||
void ffTempsGenerateJsonConfig(yyjson_mut_doc* doc, yyjson_mut_val* module, bool temp, FFColorRangeConfig config)
|
||||
{
|
||||
assert(defaultTemp == false); // assume defaultTemp is always false
|
||||
|
||||
if (!temp)
|
||||
return;
|
||||
|
||||
if (config.green != defaultConfig.green || config.yellow != defaultConfig.yellow)
|
||||
{
|
||||
yyjson_mut_val* temp = yyjson_mut_obj_add_obj(doc, module, "temp");
|
||||
if (config.green != defaultConfig.green)
|
||||
yyjson_mut_obj_add_uint(doc, temp, "green", config.green);
|
||||
if (config.yellow != defaultConfig.yellow)
|
||||
yyjson_mut_obj_add_uint(doc, temp, "yellow", config.yellow);
|
||||
}
|
||||
yyjson_mut_obj_add_bool(doc, module, "temp", false);
|
||||
else
|
||||
{
|
||||
yyjson_mut_obj_add_bool(doc, module, "temp", true);
|
||||
yyjson_mut_val* temp = yyjson_mut_obj_add_obj(doc, module, "temp");
|
||||
yyjson_mut_obj_add_uint(doc, temp, "green", config.green);
|
||||
yyjson_mut_obj_add_uint(doc, temp, "yellow", config.yellow);
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -6,4 +6,4 @@
|
||||
void ffTempsAppendNum(double celsius, FFstrbuf* buffer, FFColorRangeConfig config, const FFModuleArgs* module);
|
||||
bool ffTempsParseCommandOptions(const char* key, const char* subkey, const char* value, bool* useTemp, FFColorRangeConfig* config);
|
||||
bool ffTempsParseJsonObject(yyjson_val* key, yyjson_val* value, bool* useTemp, FFColorRangeConfig* config);
|
||||
void ffTempsGenerateJsonConfig(yyjson_mut_doc* doc, yyjson_mut_val* module, FF_MAYBE_UNUSED bool defaultTemp, FFColorRangeConfig defaultConfig, bool temp, FFColorRangeConfig config);
|
||||
void ffTempsGenerateJsonConfig(yyjson_mut_doc* doc, yyjson_mut_val* module, bool temp, FFColorRangeConfig config);
|
||||
|
||||
@@ -188,19 +188,14 @@ void ffParseBatteryJsonObject(FFBatteryOptions* options, yyjson_val* module)
|
||||
|
||||
void ffGenerateBatteryJsonConfig(FFBatteryOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyBatteryOptions))) FFBatteryOptions defaultOptions;
|
||||
ffInitBatteryOptions(&defaultOptions);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
|
||||
#ifdef _WIN32
|
||||
if (defaultOptions.useSetupApi != options->useSetupApi)
|
||||
yyjson_mut_obj_add_bool(doc, module, "useSetupApi", options->useSetupApi);
|
||||
#endif
|
||||
|
||||
ffTempsGenerateJsonConfig(doc, module, defaultOptions.temp, defaultOptions.tempConfig, options->temp, options->tempConfig);
|
||||
|
||||
ffPercentGenerateJsonConfig(doc, module, defaultOptions.percent, options->percent);
|
||||
ffTempsGenerateJsonConfig(doc, module, options->temp, options->tempConfig);
|
||||
ffPercentGenerateJsonConfig(doc, module, options->percent);
|
||||
}
|
||||
|
||||
void ffGenerateBatteryJsonResult(FFBatteryOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
|
||||
@@ -90,10 +90,7 @@ void ffParseBiosJsonObject(FFBiosOptions* options, yyjson_val* module)
|
||||
|
||||
void ffGenerateBiosJsonConfig(FFBiosOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyBiosOptions))) FFBiosOptions defaultOptions;
|
||||
ffInitBiosOptions(&defaultOptions);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
}
|
||||
|
||||
void ffGenerateBiosJsonResult(FF_MAYBE_UNUSED FFBiosOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
|
||||
@@ -121,15 +121,11 @@ void ffParseBluetoothJsonObject(FFBluetoothOptions* options, yyjson_val* module)
|
||||
|
||||
void ffGenerateBluetoothJsonConfig(FFBluetoothOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyBluetoothOptions))) FFBluetoothOptions defaultOptions;
|
||||
ffInitBluetoothOptions(&defaultOptions);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
yyjson_mut_obj_add_bool(doc, module, "showDisconnected", options->showDisconnected);
|
||||
|
||||
if (options->showDisconnected != defaultOptions.showDisconnected)
|
||||
yyjson_mut_obj_add_bool(doc, module, "showDisconnected", options->showDisconnected);
|
||||
|
||||
ffPercentGenerateJsonConfig(doc, module, defaultOptions.percent, options->percent);
|
||||
ffPercentGenerateJsonConfig(doc, module, options->percent);
|
||||
}
|
||||
|
||||
void ffGenerateBluetoothJsonResult(FFBluetoothOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
|
||||
@@ -120,10 +120,7 @@ void ffParseBluetoothRadioJsonObject(FFBluetoothRadioOptions* options, yyjson_va
|
||||
|
||||
void ffGenerateBluetoothRadioJsonConfig(FFBluetoothRadioOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyBluetoothRadioOptions))) FFBluetoothRadioOptions defaultOptions;
|
||||
ffInitBluetoothRadioOptions(&defaultOptions);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
}
|
||||
|
||||
void ffGenerateBluetoothRadioJsonResult(FF_MAYBE_UNUSED FFBluetoothRadioOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
|
||||
@@ -65,10 +65,7 @@ void ffParseBoardJsonObject(FFBoardOptions* options, yyjson_val* module)
|
||||
|
||||
void ffGenerateBoardJsonConfig(FFBoardOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyBoardOptions))) FFBoardOptions defaultOptions;
|
||||
ffInitBoardOptions(&defaultOptions);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
}
|
||||
|
||||
void ffGenerateBoardJsonResult(FF_MAYBE_UNUSED FFBoardOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
|
||||
@@ -65,10 +65,7 @@ void ffParseBootmgrJsonObject(FFBootmgrOptions* options, yyjson_val* module)
|
||||
|
||||
void ffGenerateBootmgrJsonConfig(FFBootmgrOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyBootmgrOptions))) FFBootmgrOptions defaultOptions;
|
||||
ffInitBootmgrOptions(&defaultOptions);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
}
|
||||
|
||||
void ffGenerateBootmgrJsonResult(FF_MAYBE_UNUSED FFBootmgrOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
|
||||
@@ -142,18 +142,13 @@ void ffParseBrightnessJsonObject(FFBrightnessOptions* options, yyjson_val* modul
|
||||
|
||||
void ffGenerateBrightnessJsonConfig(FFBrightnessOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyBrightnessOptions))) FFBrightnessOptions defaultOptions;
|
||||
ffInitBrightnessOptions(&defaultOptions);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
yyjson_mut_obj_add_uint(doc, module, "ddcciSleep", options->ddcciSleep);
|
||||
|
||||
if (defaultOptions.ddcciSleep != options->ddcciSleep)
|
||||
yyjson_mut_obj_add_uint(doc, module, "ddcciSleep", options->ddcciSleep);
|
||||
ffPercentGenerateJsonConfig(doc, module, options->percent);
|
||||
|
||||
ffPercentGenerateJsonConfig(doc, module, defaultOptions.percent, options->percent);
|
||||
|
||||
if (defaultOptions.compact != options->compact)
|
||||
yyjson_mut_obj_add_bool(doc, module, "compact", options->compact);
|
||||
yyjson_mut_obj_add_bool(doc, module, "compact", options->compact);
|
||||
}
|
||||
|
||||
void ffGenerateBrightnessJsonResult(FF_MAYBE_UNUSED FFBrightnessOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
|
||||
@@ -148,12 +148,9 @@ void ffParseBtrfsJsonObject(FFBtrfsOptions* options, yyjson_val* module)
|
||||
|
||||
void ffGenerateBtrfsJsonConfig(FFBtrfsOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyBtrfsOptions))) FFBtrfsOptions defaultOptions;
|
||||
ffInitBtrfsOptions(&defaultOptions);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
|
||||
ffPercentGenerateJsonConfig(doc, module, defaultOptions.percent, options->percent);
|
||||
ffPercentGenerateJsonConfig(doc, module, options->percent);
|
||||
}
|
||||
|
||||
void ffGenerateBtrfsJsonResult(FF_MAYBE_UNUSED FFBtrfsOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
|
||||
@@ -82,10 +82,7 @@ void ffParseCameraJsonObject(FFCameraOptions* options, yyjson_val* module)
|
||||
|
||||
void ffGenerateCameraJsonConfig(FFCameraOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyCameraOptions))) FFCameraOptions defaultOptions;
|
||||
ffInitCameraOptions(&defaultOptions);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
}
|
||||
|
||||
void ffGenerateCameraJsonResult(FF_MAYBE_UNUSED FFCameraOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
|
||||
@@ -66,10 +66,7 @@ void ffParseChassisJsonObject(FFChassisOptions* options, yyjson_val* module)
|
||||
|
||||
void ffGenerateChassisJsonConfig(FFChassisOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyChassisOptions))) FFChassisOptions defaultOptions;
|
||||
ffInitChassisOptions(&defaultOptions);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
}
|
||||
|
||||
void ffGenerateChassisJsonResult(FF_MAYBE_UNUSED FFChassisOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
|
||||
+16
-28
@@ -200,42 +200,30 @@ void ffParseColorsJsonObject(FFColorsOptions* options, yyjson_val* module)
|
||||
|
||||
void ffGenerateColorsJsonConfig(FFColorsOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyColorsOptions))) FFColorsOptions defaultOptions;
|
||||
ffInitColorsOptions(&defaultOptions);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
yyjson_mut_obj_remove_key(module, "format"); // Not supported
|
||||
|
||||
if (defaultOptions.symbol != options->symbol)
|
||||
switch (options->symbol)
|
||||
{
|
||||
switch (options->symbol)
|
||||
{
|
||||
case FF_COLORS_SYMBOL_CIRCLE: yyjson_mut_obj_add_str(doc, module, "symbol", "circle"); break;
|
||||
case FF_COLORS_SYMBOL_DIAMOND: yyjson_mut_obj_add_str(doc, module, "symbol", "diamond"); break;
|
||||
case FF_COLORS_SYMBOL_TRIANGLE: yyjson_mut_obj_add_str(doc, module, "symbol", "triangle"); break;
|
||||
case FF_COLORS_SYMBOL_SQUARE: yyjson_mut_obj_add_str(doc, module, "symbol", "square"); break;
|
||||
case FF_COLORS_SYMBOL_STAR: yyjson_mut_obj_add_str(doc, module, "symbol", "star"); break;
|
||||
default: yyjson_mut_obj_add_str(doc, module, "symbol", "block"); break;
|
||||
}
|
||||
case FF_COLORS_SYMBOL_CIRCLE: yyjson_mut_obj_add_str(doc, module, "symbol", "circle"); break;
|
||||
case FF_COLORS_SYMBOL_DIAMOND: yyjson_mut_obj_add_str(doc, module, "symbol", "diamond"); break;
|
||||
case FF_COLORS_SYMBOL_TRIANGLE: yyjson_mut_obj_add_str(doc, module, "symbol", "triangle"); break;
|
||||
case FF_COLORS_SYMBOL_SQUARE: yyjson_mut_obj_add_str(doc, module, "symbol", "square"); break;
|
||||
case FF_COLORS_SYMBOL_STAR: yyjson_mut_obj_add_str(doc, module, "symbol", "star"); break;
|
||||
default: yyjson_mut_obj_add_str(doc, module, "symbol", "block"); break;
|
||||
}
|
||||
|
||||
if (defaultOptions.paddingLeft != options->paddingLeft)
|
||||
yyjson_mut_obj_add_uint(doc, module, "paddingLeft", options->paddingLeft);
|
||||
yyjson_mut_obj_add_uint(doc, module, "paddingLeft", options->paddingLeft);
|
||||
|
||||
{
|
||||
yyjson_mut_val* block = yyjson_mut_obj(doc);
|
||||
yyjson_mut_val* block = yyjson_mut_obj_add_obj(doc, module, "block");
|
||||
|
||||
if (defaultOptions.block.width != options->block.width)
|
||||
yyjson_mut_obj_add_uint(doc, block, "width", options->block.width);
|
||||
yyjson_mut_obj_add_uint(doc, block, "width", options->block.width);
|
||||
|
||||
if (memcmp(defaultOptions.block.range, options->block.range, sizeof(options->block.range)) != 0)
|
||||
{
|
||||
yyjson_mut_val* range = yyjson_mut_obj_add_arr(doc, block, "range");
|
||||
for (uint8_t i = 0; i < 2; i++)
|
||||
yyjson_mut_arr_add_uint(doc, range, options->block.range[i]);
|
||||
}
|
||||
|
||||
if (yyjson_mut_obj_size(block) > 0)
|
||||
yyjson_mut_obj_add_val(doc, module, "block", block);
|
||||
yyjson_mut_val* range = yyjson_mut_obj_add_arr(doc, block, "range");
|
||||
for (uint8_t i = 0; i < 2; i++)
|
||||
yyjson_mut_arr_add_uint(doc, range, options->block.range[i]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -251,7 +239,7 @@ void ffInitColorsOptions(FFColorsOptions* options)
|
||||
};
|
||||
}
|
||||
|
||||
void ffDestroyColorsOptions(FF_MAYBE_UNUSED FFColorsOptions* options)
|
||||
void ffDestroyColorsOptions(FFColorsOptions* options)
|
||||
{
|
||||
ffOptionDestroyModuleArg(&options->moduleArgs);
|
||||
}
|
||||
|
||||
@@ -76,19 +76,13 @@ void ffParseCommandJsonObject(FFCommandOptions* options, yyjson_val* module)
|
||||
|
||||
void ffGenerateCommandJsonConfig(FFCommandOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyCommandOptions))) FFCommandOptions defaultOptions;
|
||||
ffInitCommandOptions(&defaultOptions);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
yyjson_mut_obj_add_strbuf(doc, module, "shell", &options->shell);
|
||||
|
||||
if (!ffStrbufEqual(&defaultOptions.shell, &options->shell))
|
||||
yyjson_mut_obj_add_strbuf(doc, module, "shell", &options->shell);
|
||||
yyjson_mut_obj_add_strbuf(doc, module, "param", &options->param);
|
||||
|
||||
if (!ffStrbufEqual(&defaultOptions.param, &options->param))
|
||||
yyjson_mut_obj_add_strbuf(doc, module, "param", &options->param);
|
||||
|
||||
if (!ffStrbufEqual(&defaultOptions.text, &options->text))
|
||||
yyjson_mut_obj_add_strbuf(doc, module, "text", &options->text);
|
||||
yyjson_mut_obj_add_strbuf(doc, module, "text", &options->text);
|
||||
}
|
||||
|
||||
void ffGenerateCommandJsonResult(FF_MAYBE_UNUSED FFCommandOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
|
||||
@@ -147,15 +147,11 @@ void ffParseCPUJsonObject(FFCPUOptions* options, yyjson_val* module)
|
||||
|
||||
void ffGenerateCPUJsonConfig(FFCPUOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyCPUOptions))) FFCPUOptions defaultOptions;
|
||||
ffInitCPUOptions(&defaultOptions);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
ffTempsGenerateJsonConfig(doc, module, options->temp, options->tempConfig);
|
||||
|
||||
ffTempsGenerateJsonConfig(doc, module, defaultOptions.temp, defaultOptions.tempConfig, options->temp, options->tempConfig);
|
||||
|
||||
if (defaultOptions.showPeCoreCount != options->showPeCoreCount)
|
||||
yyjson_mut_obj_add_bool(doc, module, "showPeCoreCount", options->showPeCoreCount);
|
||||
yyjson_mut_obj_add_bool(doc, module, "showPeCoreCount", options->showPeCoreCount);
|
||||
}
|
||||
|
||||
void ffGenerateCPUJsonResult(FFCPUOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
|
||||
@@ -153,10 +153,9 @@ void ffParseCPUCacheJsonObject(FFCPUCacheOptions* options, yyjson_val* module)
|
||||
|
||||
void ffGenerateCPUCacheJsonConfig(FFCPUCacheOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyCPUCacheOptions))) FFCPUCacheOptions defaultOptions;
|
||||
ffInitCPUCacheOptions(&defaultOptions);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
yyjson_mut_obj_add_bool(doc, module, "compact", options->compact);
|
||||
}
|
||||
|
||||
void ffGenerateCPUCacheJsonResult(FF_MAYBE_UNUSED FFCPUCacheOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
|
||||
@@ -146,15 +146,13 @@ void ffParseCPUUsageJsonObject(FFCPUUsageOptions* options, yyjson_val* module)
|
||||
|
||||
void ffGenerateCPUUsageJsonConfig(FFCPUUsageOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyCPUUsageOptions))) FFCPUUsageOptions defaultOptions;
|
||||
ffInitCPUUsageOptions(&defaultOptions);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
yyjson_mut_obj_add_bool(doc, module, "separate", options->separate);
|
||||
|
||||
if (options->separate != defaultOptions.separate)
|
||||
yyjson_mut_obj_add_bool(doc, module, "separate", options->separate);
|
||||
ffPercentGenerateJsonConfig(doc, module, options->percent);
|
||||
|
||||
ffPercentGenerateJsonConfig(doc, module, defaultOptions.percent, options->percent);
|
||||
yyjson_mut_obj_add_uint(doc, module, "waitTime", options->waitTime);
|
||||
}
|
||||
|
||||
void ffGenerateCPUUsageJsonResult(FFCPUUsageOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
|
||||
@@ -63,10 +63,7 @@ void ffParseCursorJsonObject(FFCursorOptions* options, yyjson_val* module)
|
||||
|
||||
void ffGenerateCursorJsonConfig(FFCursorOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyCursorOptions))) FFCursorOptions defaultOptions;
|
||||
ffInitCursorOptions(&defaultOptions);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
}
|
||||
|
||||
void ffGenerateCursorJsonResult(FF_MAYBE_UNUSED FFCursorOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
|
||||
@@ -11,10 +11,7 @@ void ffPrintCustom(FFCustomOptions* options)
|
||||
|
||||
void ffGenerateCustomJsonConfig(FFCustomOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyCustomOptions))) FFCustomOptions defaultOptions;
|
||||
ffInitCustomOptions(&defaultOptions);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
}
|
||||
|
||||
void ffParseCustomJsonObject(FFCustomOptions* options, yyjson_val* module)
|
||||
|
||||
@@ -132,10 +132,7 @@ void ffParseDateTimeJsonObject(FFDateTimeOptions* options, yyjson_val* module)
|
||||
|
||||
void ffGenerateDateTimeJsonConfig(FFDateTimeOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyDateTimeOptions))) FFDateTimeOptions defaultOptions;
|
||||
ffInitDateTimeOptions(&defaultOptions);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
}
|
||||
|
||||
void ffGenerateDateTimeJsonResult(FF_MAYBE_UNUSED FFDateTimeOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
|
||||
+2
-6
@@ -63,13 +63,9 @@ void ffParseDEJsonObject(FFDEOptions* options, yyjson_val* module)
|
||||
|
||||
void ffGenerateDEJsonConfig(FFDEOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyDEOptions))) FFDEOptions defaultOptions;
|
||||
ffInitDEOptions(&defaultOptions);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
|
||||
if (defaultOptions.slowVersionDetection != options->slowVersionDetection)
|
||||
yyjson_mut_obj_add_bool(doc, module, "slowVersionDetection", options->slowVersionDetection);
|
||||
yyjson_mut_obj_add_bool(doc, module, "slowVersionDetection", options->slowVersionDetection);
|
||||
}
|
||||
|
||||
void ffGenerateDEJsonResult(FF_MAYBE_UNUSED FFDEOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
|
||||
+12
-28
@@ -302,45 +302,29 @@ void ffParseDiskJsonObject(FFDiskOptions* options, yyjson_val* module)
|
||||
|
||||
void ffGenerateDiskJsonConfig(FFDiskOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyDiskOptions))) FFDiskOptions defaultOptions;
|
||||
ffInitDiskOptions(&defaultOptions);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
yyjson_mut_obj_add_bool(doc, module, "showRegular", !!(options->showTypes & FF_DISK_VOLUME_TYPE_REGULAR_BIT));
|
||||
|
||||
if (defaultOptions.showTypes != options->showTypes)
|
||||
{
|
||||
if (options->showTypes & FF_DISK_VOLUME_TYPE_REGULAR_BIT)
|
||||
yyjson_mut_obj_add_bool(doc, module, "showRegular", true);
|
||||
yyjson_mut_obj_add_bool(doc, module, "showExternal", !!(options->showTypes & FF_DISK_VOLUME_TYPE_EXTERNAL_BIT));
|
||||
|
||||
if (options->showTypes & FF_DISK_VOLUME_TYPE_EXTERNAL_BIT)
|
||||
yyjson_mut_obj_add_bool(doc, module, "showExternal", true);
|
||||
yyjson_mut_obj_add_bool(doc, module, "showHidden", !!(options->showTypes & FF_DISK_VOLUME_TYPE_HIDDEN_BIT));
|
||||
|
||||
if (options->showTypes & FF_DISK_VOLUME_TYPE_HIDDEN_BIT)
|
||||
yyjson_mut_obj_add_bool(doc, module, "showHidden", true);
|
||||
yyjson_mut_obj_add_bool(doc, module, "showSubvolumes", !!(options->showTypes & FF_DISK_VOLUME_TYPE_SUBVOLUME_BIT));
|
||||
|
||||
if (options->showTypes & FF_DISK_VOLUME_TYPE_SUBVOLUME_BIT)
|
||||
yyjson_mut_obj_add_bool(doc, module, "showSubvolumes", true);
|
||||
yyjson_mut_obj_add_bool(doc, module, "showReadOnly", !!(options->showTypes & FF_DISK_VOLUME_TYPE_READONLY_BIT));
|
||||
|
||||
if (options->showTypes & FF_DISK_VOLUME_TYPE_READONLY_BIT)
|
||||
yyjson_mut_obj_add_bool(doc, module, "showReadOnly", true);
|
||||
yyjson_mut_obj_add_bool(doc, module, "showUnknown", !!(options->showTypes & FF_DISK_VOLUME_TYPE_UNKNOWN_BIT));
|
||||
|
||||
if (options->showTypes & FF_DISK_VOLUME_TYPE_UNKNOWN_BIT)
|
||||
yyjson_mut_obj_add_bool(doc, module, "showUnknown", true);
|
||||
}
|
||||
yyjson_mut_obj_add_strbuf(doc, module, "folders", &options->folders);
|
||||
|
||||
if (!ffStrbufEqual(&options->folders, &defaultOptions.folders))
|
||||
yyjson_mut_obj_add_strbuf(doc, module, "folders", &options->folders);
|
||||
yyjson_mut_obj_add_strbuf(doc, module, "hideFolders", &options->hideFolders);
|
||||
|
||||
if (!ffStrbufEqual(&options->hideFolders, &defaultOptions.hideFolders))
|
||||
yyjson_mut_obj_add_strbuf(doc, module, "hideFolders", &options->hideFolders);
|
||||
yyjson_mut_obj_add_strbuf(doc, module, "hideFS", &options->hideFS);
|
||||
|
||||
if (!ffStrbufEqual(&options->hideFS, &defaultOptions.hideFS))
|
||||
yyjson_mut_obj_add_strbuf(doc, module, "hideFS", &options->hideFS);
|
||||
yyjson_mut_obj_add_bool(doc, module, "useAvailable", options->calcType == FF_DISK_CALC_TYPE_AVAILABLE);
|
||||
|
||||
if (defaultOptions.calcType != options->calcType)
|
||||
yyjson_mut_obj_add_bool(doc, module, "useAvailable", options->calcType == FF_DISK_CALC_TYPE_AVAILABLE);
|
||||
|
||||
ffPercentGenerateJsonConfig(doc, module, defaultOptions.percent, options->percent);
|
||||
ffPercentGenerateJsonConfig(doc, module, options->percent);
|
||||
}
|
||||
|
||||
void ffGenerateDiskJsonResult(FFDiskOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
|
||||
@@ -128,16 +128,13 @@ void ffParseDiskIOJsonObject(FFDiskIOOptions* options, yyjson_val* module)
|
||||
|
||||
void ffGenerateDiskIOJsonConfig(FFDiskIOOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyDiskIOOptions))) FFDiskIOOptions defaultOptions;
|
||||
ffInitDiskIOOptions(&defaultOptions);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
yyjson_mut_obj_add_strbuf(doc, module, "namePrefix", &options->namePrefix);
|
||||
|
||||
if (!ffStrbufEqual(&options->namePrefix, &defaultOptions.namePrefix))
|
||||
yyjson_mut_obj_add_strbuf(doc, module, "namePrefix", &options->namePrefix);
|
||||
yyjson_mut_obj_add_bool(doc, module, "detectTotal", options->detectTotal);
|
||||
|
||||
if (defaultOptions.detectTotal != options->detectTotal)
|
||||
yyjson_mut_obj_add_bool(doc, module, "detectTotal", options->detectTotal);
|
||||
yyjson_mut_obj_add_uint(doc, module, "waitTime", options->waitTime);
|
||||
}
|
||||
|
||||
void ffGenerateDiskIOJsonResult(FFDiskIOOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
|
||||
@@ -282,35 +282,41 @@ void ffParseDisplayJsonObject(FFDisplayOptions* options, yyjson_val* module)
|
||||
|
||||
void ffGenerateDisplayJsonConfig(FFDisplayOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyDisplayOptions))) FFDisplayOptions defaultOptions;
|
||||
ffInitDisplayOptions(&defaultOptions);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
|
||||
if (options->compactType != defaultOptions.compactType)
|
||||
switch ((int) options->compactType)
|
||||
{
|
||||
switch ((int) options->compactType)
|
||||
{
|
||||
case FF_DISPLAY_COMPACT_TYPE_NONE:
|
||||
yyjson_mut_obj_add_str(doc, module, "compactType", "none");
|
||||
break;
|
||||
case FF_DISPLAY_COMPACT_TYPE_ORIGINAL_BIT:
|
||||
yyjson_mut_obj_add_str(doc, module, "compactType", "original");
|
||||
break;
|
||||
case FF_DISPLAY_COMPACT_TYPE_SCALED_BIT:
|
||||
yyjson_mut_obj_add_str(doc, module, "compactType", "scaled");
|
||||
break;
|
||||
case FF_DISPLAY_COMPACT_TYPE_ORIGINAL_BIT | FF_DISPLAY_COMPACT_TYPE_REFRESH_RATE_BIT:
|
||||
yyjson_mut_obj_add_str(doc, module, "compactType", "original-with-refresh-rate");
|
||||
break;
|
||||
case FF_DISPLAY_COMPACT_TYPE_SCALED_BIT | FF_DISPLAY_COMPACT_TYPE_REFRESH_RATE_BIT:
|
||||
yyjson_mut_obj_add_str(doc, module, "compactType", "scaled-with-refresh-rate");
|
||||
break;
|
||||
}
|
||||
case FF_DISPLAY_COMPACT_TYPE_NONE:
|
||||
yyjson_mut_obj_add_str(doc, module, "compactType", "none");
|
||||
break;
|
||||
case FF_DISPLAY_COMPACT_TYPE_ORIGINAL_BIT:
|
||||
yyjson_mut_obj_add_str(doc, module, "compactType", "original");
|
||||
break;
|
||||
case FF_DISPLAY_COMPACT_TYPE_SCALED_BIT:
|
||||
yyjson_mut_obj_add_str(doc, module, "compactType", "scaled");
|
||||
break;
|
||||
case FF_DISPLAY_COMPACT_TYPE_ORIGINAL_BIT | FF_DISPLAY_COMPACT_TYPE_REFRESH_RATE_BIT:
|
||||
yyjson_mut_obj_add_str(doc, module, "compactType", "original-with-refresh-rate");
|
||||
break;
|
||||
case FF_DISPLAY_COMPACT_TYPE_SCALED_BIT | FF_DISPLAY_COMPACT_TYPE_REFRESH_RATE_BIT:
|
||||
yyjson_mut_obj_add_str(doc, module, "compactType", "scaled-with-refresh-rate");
|
||||
break;
|
||||
}
|
||||
|
||||
if (options->preciseRefreshRate != defaultOptions.preciseRefreshRate)
|
||||
yyjson_mut_obj_add_bool(doc, module, "preciseRefreshRate", options->preciseRefreshRate);
|
||||
yyjson_mut_obj_add_bool(doc, module, "preciseRefreshRate", options->preciseRefreshRate);
|
||||
|
||||
switch (options->order)
|
||||
{
|
||||
case FF_DISPLAY_ORDER_NONE:
|
||||
yyjson_mut_obj_add_null(doc, module, "order");
|
||||
break;
|
||||
case FF_DISPLAY_ORDER_ASC:
|
||||
yyjson_mut_obj_add_str(doc, module, "order", "asc");
|
||||
break;
|
||||
case FF_DISPLAY_ORDER_DESC:
|
||||
yyjson_mut_obj_add_str(doc, module, "order", "desc");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void ffGenerateDisplayJsonResult(FF_MAYBE_UNUSED FFDisplayOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
|
||||
+12
-21
@@ -88,32 +88,23 @@ void ffParseDNSJsonObject(FFDNSOptions* options, yyjson_val* module)
|
||||
|
||||
void ffGenerateDNSJsonConfig(FFDNSOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyDNSOptions))) FFDNSOptions defaultOptions;
|
||||
ffInitDNSOptions(&defaultOptions);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
|
||||
if (defaultOptions.showType != options->showType)
|
||||
switch ((uint8_t) options->showType)
|
||||
{
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wswitch" // FF_DNS_TYPE_FORCE_UNSIGNED
|
||||
switch (options->showType)
|
||||
{
|
||||
case FF_DNS_TYPE_IPV4_BIT:
|
||||
yyjson_mut_obj_add_str(doc, module, "showType", "ipv4");
|
||||
break;
|
||||
case FF_DNS_TYPE_IPV6_BIT:
|
||||
yyjson_mut_obj_add_str(doc, module, "showType", "ipv6");
|
||||
break;
|
||||
case FF_DNS_TYPE_BOTH:
|
||||
yyjson_mut_obj_add_str(doc, module, "showType", "both");
|
||||
break;
|
||||
}
|
||||
#pragma GCC diagnostic pop
|
||||
case FF_DNS_TYPE_IPV4_BIT:
|
||||
yyjson_mut_obj_add_str(doc, module, "showType", "ipv4");
|
||||
break;
|
||||
case FF_DNS_TYPE_IPV6_BIT:
|
||||
yyjson_mut_obj_add_str(doc, module, "showType", "ipv6");
|
||||
break;
|
||||
case FF_DNS_TYPE_BOTH:
|
||||
yyjson_mut_obj_add_str(doc, module, "showType", "both");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void ffGenerateDNSJsonResult(FF_MAYBE_UNUSED FFDNSOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
void ffGenerateDNSJsonResult(FFDNSOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
FF_LIST_AUTO_DESTROY result = ffListCreate(sizeof(FFstrbuf));
|
||||
|
||||
|
||||
@@ -69,10 +69,7 @@ void ffParseEditorJsonObject(FFEditorOptions* options, yyjson_val* module)
|
||||
|
||||
void ffGenerateEditorJsonConfig(FFEditorOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyEditorOptions))) FFEditorOptions defaultOptions;
|
||||
ffInitEditorOptions(&defaultOptions);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
}
|
||||
|
||||
void ffGenerateEditorJsonResult(FF_MAYBE_UNUSED FFEditorOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
|
||||
@@ -56,10 +56,7 @@ void ffParseFontJsonObject(FFFontOptions* options, yyjson_val* module)
|
||||
|
||||
void ffGenerateFontJsonConfig(FFFontOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyFontOptions))) FFFontOptions defaultOptions;
|
||||
ffInitFontOptions(&defaultOptions);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
}
|
||||
|
||||
void ffGenerateFontJsonResult(FF_MAYBE_UNUSED FFFontOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
|
||||
@@ -95,12 +95,9 @@ void ffParseGamepadJsonObject(FFGamepadOptions* options, yyjson_val* module)
|
||||
|
||||
void ffGenerateGamepadJsonConfig(FFGamepadOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyGamepadOptions))) FFGamepadOptions defaultOptions;
|
||||
ffInitGamepadOptions(&defaultOptions);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
|
||||
ffPercentGenerateJsonConfig(doc, module, defaultOptions.percent, options->percent);
|
||||
ffPercentGenerateJsonConfig(doc, module, options->percent);
|
||||
}
|
||||
|
||||
void ffGenerateGamepadJsonResult(FF_MAYBE_UNUSED FFGamepadOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
|
||||
+33
-43
@@ -269,58 +269,48 @@ void ffParseGPUJsonObject(FFGPUOptions* options, yyjson_val* module)
|
||||
|
||||
void ffGenerateGPUJsonConfig(FFGPUOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyGPUOptions))) FFGPUOptions defaultOptions;
|
||||
ffInitGPUOptions(&defaultOptions);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
yyjson_mut_obj_add_bool(doc, module, "driverSpecific", options->driverSpecific);
|
||||
|
||||
if (options->driverSpecific != defaultOptions.driverSpecific)
|
||||
yyjson_mut_obj_add_bool(doc, module, "driverSpecific", options->driverSpecific);
|
||||
|
||||
if (options->detectionMethod != defaultOptions.detectionMethod)
|
||||
switch (options->detectionMethod)
|
||||
{
|
||||
switch (options->detectionMethod)
|
||||
{
|
||||
case FF_GPU_DETECTION_METHOD_AUTO:
|
||||
yyjson_mut_obj_add_str(doc, module, "detectionMethod", "auto");
|
||||
break;
|
||||
case FF_GPU_DETECTION_METHOD_PCI:
|
||||
yyjson_mut_obj_add_str(doc, module, "detectionMethod", "pci");
|
||||
break;
|
||||
case FF_GPU_DETECTION_METHOD_VULKAN:
|
||||
yyjson_mut_obj_add_str(doc, module, "detectionMethod", "vulkan");
|
||||
break;
|
||||
case FF_GPU_DETECTION_METHOD_OPENCL:
|
||||
yyjson_mut_obj_add_str(doc, module, "detectionMethod", "opencl");
|
||||
break;
|
||||
case FF_GPU_DETECTION_METHOD_OPENGL:
|
||||
yyjson_mut_obj_add_str(doc, module, "detectionMethod", "opengl");
|
||||
break;
|
||||
}
|
||||
case FF_GPU_DETECTION_METHOD_AUTO:
|
||||
yyjson_mut_obj_add_str(doc, module, "detectionMethod", "auto");
|
||||
break;
|
||||
case FF_GPU_DETECTION_METHOD_PCI:
|
||||
yyjson_mut_obj_add_str(doc, module, "detectionMethod", "pci");
|
||||
break;
|
||||
case FF_GPU_DETECTION_METHOD_VULKAN:
|
||||
yyjson_mut_obj_add_str(doc, module, "detectionMethod", "vulkan");
|
||||
break;
|
||||
case FF_GPU_DETECTION_METHOD_OPENCL:
|
||||
yyjson_mut_obj_add_str(doc, module, "detectionMethod", "opencl");
|
||||
break;
|
||||
case FF_GPU_DETECTION_METHOD_OPENGL:
|
||||
yyjson_mut_obj_add_str(doc, module, "detectionMethod", "opengl");
|
||||
break;
|
||||
}
|
||||
|
||||
ffTempsGenerateJsonConfig(doc, module, defaultOptions.temp, defaultOptions.tempConfig, options->temp, options->tempConfig);
|
||||
ffTempsGenerateJsonConfig(doc, module, options->temp, options->tempConfig);
|
||||
|
||||
if (options->hideType != defaultOptions.hideType)
|
||||
switch (options->hideType)
|
||||
{
|
||||
switch (options->hideType)
|
||||
{
|
||||
case FF_GPU_TYPE_NONE:
|
||||
yyjson_mut_obj_add_str(doc, module, "hideType", "none");
|
||||
break;
|
||||
case FF_GPU_TYPE_UNKNOWN:
|
||||
yyjson_mut_obj_add_str(doc, module, "hideType", "unknown");
|
||||
break;
|
||||
case FF_GPU_TYPE_INTEGRATED:
|
||||
yyjson_mut_obj_add_str(doc, module, "hideType", "integrated");
|
||||
break;
|
||||
case FF_GPU_TYPE_DISCRETE:
|
||||
yyjson_mut_obj_add_str(doc, module, "hideType", "discrete");
|
||||
break;
|
||||
}
|
||||
case FF_GPU_TYPE_NONE:
|
||||
yyjson_mut_obj_add_str(doc, module, "hideType", "none");
|
||||
break;
|
||||
case FF_GPU_TYPE_UNKNOWN:
|
||||
yyjson_mut_obj_add_str(doc, module, "hideType", "unknown");
|
||||
break;
|
||||
case FF_GPU_TYPE_INTEGRATED:
|
||||
yyjson_mut_obj_add_str(doc, module, "hideType", "integrated");
|
||||
break;
|
||||
case FF_GPU_TYPE_DISCRETE:
|
||||
yyjson_mut_obj_add_str(doc, module, "hideType", "discrete");
|
||||
break;
|
||||
}
|
||||
|
||||
ffPercentGenerateJsonConfig(doc, module, defaultOptions.percent, options->percent);
|
||||
ffPercentGenerateJsonConfig(doc, module, options->percent);
|
||||
}
|
||||
|
||||
void ffGenerateGPUJsonResult(FFGPUOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
|
||||
@@ -28,7 +28,6 @@ typedef struct FFGPUOptions
|
||||
FFGPUDetectionMethod detectionMethod;
|
||||
bool temp;
|
||||
bool driverSpecific;
|
||||
bool forceMethod;
|
||||
FFColorRangeConfig tempConfig;
|
||||
FFPercentageModuleConfig percent;
|
||||
} FFGPUOptions;
|
||||
|
||||
@@ -82,10 +82,7 @@ void ffParseHostJsonObject(FFHostOptions* options, yyjson_val* module)
|
||||
|
||||
void ffGenerateHostJsonConfig(FFHostOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyHostOptions))) FFHostOptions defaultOptions;
|
||||
ffInitHostOptions(&defaultOptions);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
}
|
||||
|
||||
void ffGenerateHostJsonResult(FF_MAYBE_UNUSED FFHostOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
|
||||
@@ -58,10 +58,7 @@ void ffParseIconsJsonObject(FFIconsOptions* options, yyjson_val* module)
|
||||
|
||||
void ffGenerateIconsJsonConfig(FFIconsOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyIconsOptions))) FFIconsOptions defaultOptions;
|
||||
ffInitIconsOptions(&defaultOptions);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
}
|
||||
|
||||
void ffGenerateIconsJsonResult(FF_MAYBE_UNUSED FFIconsOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
|
||||
@@ -63,10 +63,7 @@ void ffParseInitSystemJsonObject(FFInitSystemOptions* options, yyjson_val* modul
|
||||
|
||||
void ffGenerateInitSystemJsonConfig(FFInitSystemOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyInitSystemOptions))) FFInitSystemOptions defaultOptions;
|
||||
ffInitInitSystemOptions(&defaultOptions);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
}
|
||||
|
||||
void ffGenerateInitSystemJsonResult(FF_MAYBE_UNUSED FFInitSystemOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
|
||||
@@ -47,10 +47,7 @@ void ffParseKernelJsonObject(FFKernelOptions* options, yyjson_val* module)
|
||||
|
||||
void ffGenerateKernelJsonConfig(FFKernelOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyKernelOptions))) FFKernelOptions defaultOptions;
|
||||
ffInitKernelOptions(&defaultOptions);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
}
|
||||
|
||||
void ffGenerateKernelJsonResult(FF_MAYBE_UNUSED FFKernelOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
|
||||
@@ -63,10 +63,7 @@ void ffParseKeyboardJsonObject(FFKeyboardOptions* options, yyjson_val* module)
|
||||
|
||||
void ffGenerateKeyboardJsonConfig(FFKeyboardOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyKeyboardOptions))) FFKeyboardOptions defaultOptions;
|
||||
ffInitKeyboardOptions(&defaultOptions);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
}
|
||||
|
||||
void ffGenerateKeyboardJsonResult(FF_MAYBE_UNUSED FFKeyboardOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
|
||||
+1
-4
@@ -62,10 +62,7 @@ void ffParseLMJsonObject(FFLMOptions* options, yyjson_val* module)
|
||||
|
||||
void ffGenerateLMJsonConfig(FFLMOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyLMOptions))) FFLMOptions defaultOptions;
|
||||
ffInitLMOptions(&defaultOptions);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
}
|
||||
|
||||
void ffGenerateLMJsonResult(FF_MAYBE_UNUSED FFLMOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
|
||||
@@ -120,18 +120,13 @@ void ffParseLoadavgJsonObject(FFLoadavgOptions* options, yyjson_val* module)
|
||||
|
||||
void ffGenerateLoadavgJsonConfig(FFLoadavgOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyLoadavgOptions))) FFLoadavgOptions defaultOptions;
|
||||
ffInitLoadavgOptions(&defaultOptions);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
yyjson_mut_obj_add_uint(doc, module, "ndigits", options->ndigits);
|
||||
|
||||
if (defaultOptions.ndigits != options->ndigits)
|
||||
yyjson_mut_obj_add_uint(doc, module, "ndigits", options->ndigits);
|
||||
yyjson_mut_obj_add_bool(doc, module, "compact", options->compact);
|
||||
|
||||
if (defaultOptions.compact != options->compact)
|
||||
yyjson_mut_obj_add_bool(doc, module, "compact", options->compact);
|
||||
|
||||
ffPercentGenerateJsonConfig(doc, module, defaultOptions.percent, options->percent);
|
||||
ffPercentGenerateJsonConfig(doc, module, options->percent);
|
||||
}
|
||||
|
||||
void ffGenerateLoadavgJsonResult(FF_MAYBE_UNUSED FFLoadavgOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
|
||||
@@ -43,10 +43,7 @@ void ffParseLocaleJsonObject(FFLocaleOptions* options, yyjson_val* module)
|
||||
|
||||
void ffGenerateLocaleJsonConfig(FFLocaleOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyLocaleOptions))) FFLocaleOptions defaultOptions;
|
||||
ffInitLocaleOptions(&defaultOptions);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
}
|
||||
|
||||
void ffGenerateLocaleJsonResult(FF_MAYBE_UNUSED FFLocaleOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
|
||||
@@ -298,49 +298,31 @@ void ffParseLocalIpJsonObject(FFLocalIpOptions* options, yyjson_val* module)
|
||||
|
||||
void ffGenerateLocalIpJsonConfig(FFLocalIpOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyLocalIpOptions))) FFLocalIpOptions defaultOptions;
|
||||
ffInitLocalIpOptions(&defaultOptions);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
yyjson_mut_obj_add_bool(doc, module, "showIpv4", !!(options->showType & FF_LOCALIP_TYPE_IPV4_BIT));
|
||||
|
||||
if (defaultOptions.showType != options->showType)
|
||||
{
|
||||
if (!(options->showType & FF_LOCALIP_TYPE_IPV4_BIT))
|
||||
yyjson_mut_obj_add_bool(doc, module, "showIpv4", false);
|
||||
yyjson_mut_obj_add_bool(doc, module, "showIpv6", !!(options->showType & FF_LOCALIP_TYPE_IPV6_BIT));
|
||||
|
||||
if (options->showType & FF_LOCALIP_TYPE_IPV6_BIT)
|
||||
yyjson_mut_obj_add_bool(doc, module, "showIpv6", true);
|
||||
yyjson_mut_obj_add_bool(doc, module, "showMac", !!(options->showType & FF_LOCALIP_TYPE_MAC_BIT));
|
||||
|
||||
if (options->showType & FF_LOCALIP_TYPE_MAC_BIT)
|
||||
yyjson_mut_obj_add_bool(doc, module, "showMac", true);
|
||||
yyjson_mut_obj_add_bool(doc, module, "showLoop", !!(options->showType & FF_LOCALIP_TYPE_LOOP_BIT));
|
||||
|
||||
if (options->showType & FF_LOCALIP_TYPE_LOOP_BIT)
|
||||
yyjson_mut_obj_add_bool(doc, module, "showLoop", true);
|
||||
yyjson_mut_obj_add_bool(doc, module, "showPrefixLen", !!(options->showType & FF_LOCALIP_TYPE_PREFIX_LEN_BIT));
|
||||
|
||||
if (options->showType & FF_LOCALIP_TYPE_PREFIX_LEN_BIT)
|
||||
yyjson_mut_obj_add_bool(doc, module, "showPrefixLen", true);
|
||||
yyjson_mut_obj_add_bool(doc, module, "showMtu", !!(options->showType & FF_LOCALIP_TYPE_MTU_BIT));
|
||||
|
||||
if (options->showType & FF_LOCALIP_TYPE_MTU_BIT)
|
||||
yyjson_mut_obj_add_bool(doc, module, "showMtu", true);
|
||||
yyjson_mut_obj_add_bool(doc, module, "showSpeed", !!(options->showType & FF_LOCALIP_TYPE_SPEED_BIT));
|
||||
|
||||
if (options->showType & FF_LOCALIP_TYPE_SPEED_BIT)
|
||||
yyjson_mut_obj_add_bool(doc, module, "showSpeed", true);
|
||||
yyjson_mut_obj_add_bool(doc, module, "showFlags", !!(options->showType & FF_LOCALIP_TYPE_FLAGS_BIT));
|
||||
|
||||
if (options->showType & FF_LOCALIP_TYPE_FLAGS_BIT)
|
||||
yyjson_mut_obj_add_bool(doc, module, "showFlags", true);
|
||||
yyjson_mut_obj_add_bool(doc, module, "compact", !!(options->showType & FF_LOCALIP_TYPE_COMPACT_BIT));
|
||||
|
||||
if (options->showType & FF_LOCALIP_TYPE_COMPACT_BIT)
|
||||
yyjson_mut_obj_add_bool(doc, module, "compact", true);
|
||||
yyjson_mut_obj_add_bool(doc, module, "defaultRouteOnly", !!(options->showType & FF_LOCALIP_TYPE_DEFAULT_ROUTE_ONLY_BIT));
|
||||
|
||||
if (!(options->showType & FF_LOCALIP_TYPE_DEFAULT_ROUTE_ONLY_BIT))
|
||||
yyjson_mut_obj_add_bool(doc, module, "defaultRouteOnly", false);
|
||||
yyjson_mut_obj_add_bool(doc, module, "showAllIps", !!(options->showType & FF_LOCALIP_TYPE_ALL_IPS_BIT));
|
||||
|
||||
if (options->showType & FF_LOCALIP_TYPE_ALL_IPS_BIT)
|
||||
yyjson_mut_obj_add_bool(doc, module, "showAllIps", true);
|
||||
}
|
||||
|
||||
if (!ffStrbufEqual(&options->namePrefix, &defaultOptions.namePrefix))
|
||||
yyjson_mut_obj_add_strbuf(doc, module, "namePrefix", &options->namePrefix);
|
||||
yyjson_mut_obj_add_strbuf(doc, module, "namePrefix", &options->namePrefix);
|
||||
}
|
||||
|
||||
void ffGenerateLocalIpJsonResult(FF_MAYBE_UNUSED FFLocalIpOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
|
||||
@@ -121,10 +121,7 @@ void ffParseMediaJsonObject(FFMediaOptions* options, yyjson_val* module)
|
||||
|
||||
void ffGenerateMediaJsonConfig(FFMediaOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyMediaOptions))) FFMediaOptions defaultOptions;
|
||||
ffInitMediaOptions(&defaultOptions);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
}
|
||||
|
||||
void ffGenerateMediaJsonResult(FF_MAYBE_UNUSED FFMediaOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
|
||||
@@ -89,12 +89,9 @@ void ffParseMemoryJsonObject(FFMemoryOptions* options, yyjson_val* module)
|
||||
|
||||
void ffGenerateMemoryJsonConfig(FFMemoryOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyMemoryOptions))) FFMemoryOptions defaultOptions;
|
||||
ffInitMemoryOptions(&defaultOptions);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
|
||||
ffPercentGenerateJsonConfig(doc, module, defaultOptions.percent, options->percent);
|
||||
ffPercentGenerateJsonConfig(doc, module, options->percent);
|
||||
}
|
||||
|
||||
void ffGenerateMemoryJsonResult(FF_MAYBE_UNUSED FFMemoryOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
|
||||
@@ -101,10 +101,7 @@ void ffParseMonitorJsonObject(FFMonitorOptions* options, yyjson_val* module)
|
||||
|
||||
void ffGenerateMonitorJsonConfig(FFMonitorOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyMonitorOptions))) FFMonitorOptions defaultOptions;
|
||||
ffInitMonitorOptions(&defaultOptions);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
}
|
||||
|
||||
void ffGenerateMonitorJsonResult(FF_MAYBE_UNUSED FFMonitorOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
|
||||
@@ -63,10 +63,7 @@ void ffParseMouseJsonObject(FFMouseOptions* options, yyjson_val* module)
|
||||
|
||||
void ffGenerateMouseJsonConfig(FFMouseOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyMouseOptions))) FFMouseOptions defaultOptions;
|
||||
ffInitMouseOptions(&defaultOptions);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
}
|
||||
|
||||
void ffGenerateMouseJsonResult(FF_MAYBE_UNUSED FFMouseOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
|
||||
@@ -142,19 +142,15 @@ void ffParseNetIOJsonObject(FFNetIOOptions* options, yyjson_val* module)
|
||||
|
||||
void ffGenerateNetIOJsonConfig(FFNetIOOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyNetIOOptions))) FFNetIOOptions defaultOptions;
|
||||
ffInitNetIOOptions(&defaultOptions);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
yyjson_mut_obj_add_strbuf(doc, module, "namePrefix", &options->namePrefix);
|
||||
|
||||
if (!ffStrbufEqual(&options->namePrefix, &defaultOptions.namePrefix))
|
||||
yyjson_mut_obj_add_strbuf(doc, module, "namePrefix", &options->namePrefix);
|
||||
yyjson_mut_obj_add_bool(doc, module, "defaultRouteOnly", options->defaultRouteOnly);
|
||||
|
||||
if (options->defaultRouteOnly != defaultOptions.defaultRouteOnly)
|
||||
yyjson_mut_obj_add_bool(doc, module, "defaultRouteOnly", options->defaultRouteOnly);
|
||||
yyjson_mut_obj_add_bool(doc, module, "detectTotal", options->detectTotal);
|
||||
|
||||
if (options->detectTotal != defaultOptions.detectTotal)
|
||||
yyjson_mut_obj_add_bool(doc, module, "detectTotal", options->detectTotal);
|
||||
yyjson_mut_obj_add_uint(doc, module, "waitTime", options->waitTime);
|
||||
}
|
||||
|
||||
void ffGenerateNetIOJsonResult(FFNetIOOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
|
||||
@@ -45,10 +45,7 @@ void ffParseOpenCLJsonObject(FFOpenCLOptions* options, yyjson_val* module)
|
||||
|
||||
void ffGenerateOpenCLJsonConfig(FFOpenCLOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyOpenCLOptions))) FFOpenCLOptions defaultOptions;
|
||||
ffInitOpenCLOptions(&defaultOptions);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
}
|
||||
|
||||
void ffGenerateOpenCLJsonResult(FF_MAYBE_UNUSED FFOpenCLOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
|
||||
+11
-17
@@ -74,25 +74,19 @@ void ffParseOpenGLJsonObject(FFOpenGLOptions* options, yyjson_val* module)
|
||||
|
||||
void ffGenerateOpenGLJsonConfig(FFOpenGLOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyOpenGLOptions))) FFOpenGLOptions defaultOptions;
|
||||
ffInitOpenGLOptions(&defaultOptions);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
|
||||
if (options->library != defaultOptions.library)
|
||||
switch (options->library)
|
||||
{
|
||||
switch (options->library)
|
||||
{
|
||||
case FF_OPENGL_LIBRARY_AUTO:
|
||||
yyjson_mut_obj_add_str(doc, module, "library", "auto");
|
||||
break;
|
||||
case FF_OPENGL_LIBRARY_EGL:
|
||||
yyjson_mut_obj_add_str(doc, module, "library", "egl");
|
||||
break;
|
||||
case FF_OPENGL_LIBRARY_GLX:
|
||||
yyjson_mut_obj_add_str(doc, module, "library", "glx");
|
||||
break;
|
||||
}
|
||||
case FF_OPENGL_LIBRARY_AUTO:
|
||||
yyjson_mut_obj_add_str(doc, module, "library", "auto");
|
||||
break;
|
||||
case FF_OPENGL_LIBRARY_EGL:
|
||||
yyjson_mut_obj_add_str(doc, module, "library", "egl");
|
||||
break;
|
||||
case FF_OPENGL_LIBRARY_GLX:
|
||||
yyjson_mut_obj_add_str(doc, module, "library", "glx");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+1
-4
@@ -130,10 +130,7 @@ void ffParseOSJsonObject(FFOSOptions* options, yyjson_val* module)
|
||||
|
||||
void ffGenerateOSJsonConfig(FFOSOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyOSOptions))) FFOSOptions defaultOptions;
|
||||
ffInitOSOptions(&defaultOptions);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
}
|
||||
|
||||
void ffGenerateOSJsonResult(FF_MAYBE_UNUSED FFOSOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
|
||||
@@ -324,52 +324,50 @@ void ffParsePackagesJsonObject(FFPackagesOptions* options, yyjson_val* module)
|
||||
|
||||
void ffGeneratePackagesJsonConfig(FFPackagesOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyPackagesOptions))) FFPackagesOptions defaultOptions;
|
||||
ffInitPackagesOptions(&defaultOptions);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
|
||||
if (options->disabled != defaultOptions.disabled)
|
||||
{
|
||||
yyjson_mut_val* arr = yyjson_mut_obj_add_arr(doc, module, "disabled");
|
||||
#define FF_TEST_PACKAGE_NAME(name) else if ((options->disabled & FF_PACKAGES_FLAG_ ## name ## _BIT) != (defaultOptions.disabled & FF_PACKAGES_FLAG_ ## name ## _BIT)) { yyjson_mut_arr_add_str(doc, arr, #name); }
|
||||
if (false);
|
||||
FF_TEST_PACKAGE_NAME(AM)
|
||||
FF_TEST_PACKAGE_NAME(APK)
|
||||
FF_TEST_PACKAGE_NAME(BREW)
|
||||
FF_TEST_PACKAGE_NAME(CHOCO)
|
||||
FF_TEST_PACKAGE_NAME(DPKG)
|
||||
FF_TEST_PACKAGE_NAME(EMERGE)
|
||||
FF_TEST_PACKAGE_NAME(EOPKG)
|
||||
FF_TEST_PACKAGE_NAME(FLATPAK)
|
||||
FF_TEST_PACKAGE_NAME(GUIX)
|
||||
FF_TEST_PACKAGE_NAME(HPKG)
|
||||
FF_TEST_PACKAGE_NAME(LINGLONG)
|
||||
FF_TEST_PACKAGE_NAME(LPKG)
|
||||
FF_TEST_PACKAGE_NAME(LPKGBUILD)
|
||||
FF_TEST_PACKAGE_NAME(MACPORTS)
|
||||
FF_TEST_PACKAGE_NAME(MPORT)
|
||||
FF_TEST_PACKAGE_NAME(NIX)
|
||||
FF_TEST_PACKAGE_NAME(OPKG)
|
||||
FF_TEST_PACKAGE_NAME(PACMAN)
|
||||
FF_TEST_PACKAGE_NAME(PACSTALL)
|
||||
FF_TEST_PACKAGE_NAME(PALUDIS)
|
||||
FF_TEST_PACKAGE_NAME(PISI)
|
||||
FF_TEST_PACKAGE_NAME(PKG)
|
||||
FF_TEST_PACKAGE_NAME(PKGTOOL)
|
||||
FF_TEST_PACKAGE_NAME(PKGSRC)
|
||||
FF_TEST_PACKAGE_NAME(RPM)
|
||||
FF_TEST_PACKAGE_NAME(SCOOP)
|
||||
FF_TEST_PACKAGE_NAME(SNAP)
|
||||
FF_TEST_PACKAGE_NAME(SOAR)
|
||||
FF_TEST_PACKAGE_NAME(SORCERY)
|
||||
FF_TEST_PACKAGE_NAME(WINGET)
|
||||
FF_TEST_PACKAGE_NAME(XBPS)
|
||||
#undef FF_TEST_PACKAGE_NAME
|
||||
FF_STRBUF_AUTO_DESTROY buf = ffStrbufCreate();
|
||||
yyjson_mut_val* arr = yyjson_mut_obj_add_arr(doc, module, "disabled");
|
||||
#define FF_TEST_PACKAGE_NAME(name) else if ((options->disabled & FF_PACKAGES_FLAG_ ## name ## _BIT)) { \
|
||||
ffStrbufSetS(&buf, #name); \
|
||||
ffStrbufLowerCase(&buf); \
|
||||
yyjson_mut_arr_add_strbuf(doc, arr, &buf); \
|
||||
}
|
||||
if (false);
|
||||
FF_TEST_PACKAGE_NAME(AM)
|
||||
FF_TEST_PACKAGE_NAME(APK)
|
||||
FF_TEST_PACKAGE_NAME(BREW)
|
||||
FF_TEST_PACKAGE_NAME(CHOCO)
|
||||
FF_TEST_PACKAGE_NAME(DPKG)
|
||||
FF_TEST_PACKAGE_NAME(EMERGE)
|
||||
FF_TEST_PACKAGE_NAME(EOPKG)
|
||||
FF_TEST_PACKAGE_NAME(FLATPAK)
|
||||
FF_TEST_PACKAGE_NAME(GUIX)
|
||||
FF_TEST_PACKAGE_NAME(HPKG)
|
||||
FF_TEST_PACKAGE_NAME(LINGLONG)
|
||||
FF_TEST_PACKAGE_NAME(LPKG)
|
||||
FF_TEST_PACKAGE_NAME(LPKGBUILD)
|
||||
FF_TEST_PACKAGE_NAME(MACPORTS)
|
||||
FF_TEST_PACKAGE_NAME(MPORT)
|
||||
FF_TEST_PACKAGE_NAME(NIX)
|
||||
FF_TEST_PACKAGE_NAME(OPKG)
|
||||
FF_TEST_PACKAGE_NAME(PACMAN)
|
||||
FF_TEST_PACKAGE_NAME(PACSTALL)
|
||||
FF_TEST_PACKAGE_NAME(PALUDIS)
|
||||
FF_TEST_PACKAGE_NAME(PISI)
|
||||
FF_TEST_PACKAGE_NAME(PKG)
|
||||
FF_TEST_PACKAGE_NAME(PKGTOOL)
|
||||
FF_TEST_PACKAGE_NAME(PKGSRC)
|
||||
FF_TEST_PACKAGE_NAME(RPM)
|
||||
FF_TEST_PACKAGE_NAME(SCOOP)
|
||||
FF_TEST_PACKAGE_NAME(SNAP)
|
||||
FF_TEST_PACKAGE_NAME(SOAR)
|
||||
FF_TEST_PACKAGE_NAME(SORCERY)
|
||||
FF_TEST_PACKAGE_NAME(WINGET)
|
||||
FF_TEST_PACKAGE_NAME(XBPS)
|
||||
#undef FF_TEST_PACKAGE_NAME
|
||||
|
||||
if (options->combined != defaultOptions.combined)
|
||||
yyjson_mut_obj_add_bool(doc, module, "combined", options->combined);
|
||||
yyjson_mut_obj_add_bool(doc, module, "combined", options->combined);
|
||||
}
|
||||
|
||||
void ffGeneratePackagesJsonResult(FF_MAYBE_UNUSED FFPackagesOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
|
||||
@@ -157,15 +157,11 @@ void ffParsePhysicalDiskJsonObject(FFPhysicalDiskOptions* options, yyjson_val* m
|
||||
|
||||
void ffGeneratePhysicalDiskJsonConfig(FFPhysicalDiskOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyPhysicalDiskOptions))) FFPhysicalDiskOptions defaultOptions;
|
||||
ffInitPhysicalDiskOptions(&defaultOptions);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
yyjson_mut_obj_add_strbuf(doc, module, "namePrefix", &options->namePrefix);
|
||||
|
||||
if (!ffStrbufEqual(&options->namePrefix, &defaultOptions.namePrefix))
|
||||
yyjson_mut_obj_add_strbuf(doc, module, "namePrefix", &options->namePrefix);
|
||||
|
||||
ffTempsGenerateJsonConfig(doc, module, defaultOptions.temp, defaultOptions.tempConfig, options->temp, options->tempConfig);
|
||||
ffTempsGenerateJsonConfig(doc, module, options->temp, options->tempConfig);
|
||||
}
|
||||
|
||||
void ffGeneratePhysicalDiskJsonResult(FFPhysicalDiskOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
|
||||
@@ -95,10 +95,7 @@ void ffParsePhysicalMemoryJsonObject(FFPhysicalMemoryOptions* options, yyjson_va
|
||||
|
||||
void ffGeneratePhysicalMemoryJsonConfig(FFPhysicalMemoryOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyPhysicalMemoryOptions))) FFPhysicalMemoryOptions defaultOptions;
|
||||
ffInitPhysicalMemoryOptions(&defaultOptions);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
}
|
||||
|
||||
void ffGeneratePhysicalMemoryJsonResult(FF_MAYBE_UNUSED FFPhysicalMemoryOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
|
||||
@@ -96,10 +96,7 @@ void ffParsePlayerJsonObject(FFPlayerOptions* options, yyjson_val* module)
|
||||
|
||||
void ffGeneratePlayerJsonConfig(FFPlayerOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyPlayerOptions))) FFPlayerOptions defaultOptions;
|
||||
ffInitPlayerOptions(&defaultOptions);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
}
|
||||
|
||||
void ffGeneratePlayerJsonResult(FF_MAYBE_UNUSED FFMediaOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
|
||||
@@ -58,10 +58,7 @@ void ffPrintPowerAdapter(FFPowerAdapterOptions* options)
|
||||
|
||||
void ffGeneratePowerAdapterJsonConfig(FFPowerAdapterOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyPowerAdapterOptions))) FFPowerAdapterOptions defaultOptions;
|
||||
ffInitPowerAdapterOptions(&defaultOptions);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
}
|
||||
|
||||
void ffParsePowerAdapterJsonObject(FFPowerAdapterOptions* options, yyjson_val* module)
|
||||
|
||||
@@ -44,10 +44,7 @@ void ffParseProcessesJsonObject(FFProcessesOptions* options, yyjson_val* module)
|
||||
|
||||
void ffGenerateProcessesJsonConfig(FFProcessesOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyProcessesOptions))) FFProcessesOptions defaultOptions;
|
||||
ffInitProcessesOptions(&defaultOptions);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
}
|
||||
|
||||
void ffGenerateProcessesJsonResult(FF_MAYBE_UNUSED FFProcessesOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
|
||||
@@ -72,19 +72,13 @@ void ffParsePublicIpJsonObject(FFPublicIPOptions* options, yyjson_val* module)
|
||||
|
||||
void ffGeneratePublicIpJsonConfig(FFPublicIPOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyPublicIpOptions))) FFPublicIPOptions defaultOptions;
|
||||
ffInitPublicIpOptions(&defaultOptions);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
yyjson_mut_obj_add_strbuf(doc, module, "url", &options->url);
|
||||
|
||||
if (!ffStrbufEqual(&options->url, &defaultOptions.url))
|
||||
yyjson_mut_obj_add_strbuf(doc, module, "url", &options->url);
|
||||
yyjson_mut_obj_add_uint(doc, module, "timeout", options->timeout);
|
||||
|
||||
if (defaultOptions.timeout != options->timeout)
|
||||
yyjson_mut_obj_add_uint(doc, module, "timeout", options->timeout);
|
||||
|
||||
if (defaultOptions.ipv6 != options->ipv6)
|
||||
yyjson_mut_obj_add_bool(doc, module, "ipv6", options->ipv6);
|
||||
yyjson_mut_obj_add_bool(doc, module, "ipv6", options->ipv6);
|
||||
}
|
||||
|
||||
void ffGeneratePublicIpJsonResult(FFPublicIPOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
|
||||
@@ -147,11 +147,9 @@ void ffParseSeparatorJsonObject(FFSeparatorOptions* options, yyjson_val* module)
|
||||
|
||||
void ffGenerateSeparatorJsonConfig(FFSeparatorOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroySeparatorOptions))) FFSeparatorOptions defaultOptions;
|
||||
ffInitSeparatorOptions(&defaultOptions);
|
||||
|
||||
if (!ffStrbufEqual(&options->string, &defaultOptions.string))
|
||||
yyjson_mut_obj_add_strbuf(doc, module, "string", &options->string);
|
||||
yyjson_mut_obj_add_strbuf(doc, module, "string", &options->string);
|
||||
yyjson_mut_obj_add_strbuf(doc, module, "outputColor", &options->outputColor);
|
||||
yyjson_mut_obj_add_uint(doc, module, "length", options->length);
|
||||
}
|
||||
|
||||
void ffInitSeparatorOptions(FFSeparatorOptions* options)
|
||||
|
||||
@@ -57,10 +57,7 @@ void ffParseShellJsonObject(FFShellOptions* options, yyjson_val* module)
|
||||
|
||||
void ffGenerateShellJsonConfig(FFShellOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyShellOptions))) FFShellOptions defaultOptions;
|
||||
ffInitShellOptions(&defaultOptions);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
}
|
||||
|
||||
void ffGenerateShellJsonResult(FF_MAYBE_UNUSED FFShellOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
|
||||
+12
-18
@@ -146,28 +146,22 @@ void ffParseSoundJsonObject(FFSoundOptions* options, yyjson_val* module)
|
||||
|
||||
void ffGenerateSoundJsonConfig(FFSoundOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroySoundOptions))) FFSoundOptions defaultOptions;
|
||||
ffInitSoundOptions(&defaultOptions);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
|
||||
if (defaultOptions.soundType != options->soundType)
|
||||
switch (options->soundType)
|
||||
{
|
||||
switch (options->soundType)
|
||||
{
|
||||
case FF_SOUND_TYPE_MAIN:
|
||||
yyjson_mut_obj_add_str(doc, module, "soundType", "main");
|
||||
break;
|
||||
case FF_SOUND_TYPE_ACTIVE:
|
||||
yyjson_mut_obj_add_str(doc, module, "soundType", "active");
|
||||
break;
|
||||
case FF_SOUND_TYPE_ALL:
|
||||
yyjson_mut_obj_add_str(doc, module, "soundType", "all");
|
||||
break;
|
||||
}
|
||||
case FF_SOUND_TYPE_MAIN:
|
||||
yyjson_mut_obj_add_str(doc, module, "soundType", "main");
|
||||
break;
|
||||
case FF_SOUND_TYPE_ACTIVE:
|
||||
yyjson_mut_obj_add_str(doc, module, "soundType", "active");
|
||||
break;
|
||||
case FF_SOUND_TYPE_ALL:
|
||||
yyjson_mut_obj_add_str(doc, module, "soundType", "all");
|
||||
break;
|
||||
}
|
||||
|
||||
ffPercentGenerateJsonConfig(doc, module, defaultOptions.percent, options->percent);
|
||||
ffPercentGenerateJsonConfig(doc, module, options->percent);
|
||||
}
|
||||
|
||||
void ffGenerateSoundJsonResult(FF_MAYBE_UNUSED FFSoundOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
|
||||
@@ -155,12 +155,10 @@ void ffParseSwapJsonObject(FFSwapOptions* options, yyjson_val* module)
|
||||
|
||||
void ffGenerateSwapJsonConfig(FFSwapOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroySwapOptions))) FFSwapOptions defaultOptions;
|
||||
ffInitSwapOptions(&defaultOptions);
|
||||
ffPercentGenerateJsonConfig(doc, module, options->percent);
|
||||
|
||||
ffPercentGenerateJsonConfig(doc, module, defaultOptions.percent, options->percent);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
yyjson_mut_obj_add_bool(doc, module, "separate", options->separate);
|
||||
}
|
||||
|
||||
void ffGenerateSwapJsonResult(FF_MAYBE_UNUSED FFSwapOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
|
||||
@@ -53,10 +53,7 @@ void ffParseTerminalJsonObject(FFTerminalOptions* options, yyjson_val* module)
|
||||
|
||||
void ffGenerateTerminalJsonConfig(FFTerminalOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyTerminalOptions))) FFTerminalOptions defaultOptions;
|
||||
ffInitTerminalOptions(&defaultOptions);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
}
|
||||
|
||||
void ffGenerateTerminalJsonResult(FF_MAYBE_UNUSED FFTerminalOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
|
||||
@@ -61,10 +61,7 @@ void ffParseTerminalFontJsonObject(FFTerminalFontOptions* options, yyjson_val* m
|
||||
|
||||
void ffGenerateTerminalFontJsonConfig(FFTerminalFontOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyTerminalFontOptions))) FFTerminalFontOptions defaultOptions;
|
||||
ffInitTerminalFontOptions(&defaultOptions);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
}
|
||||
|
||||
void ffGenerateTerminalFontJsonResult(FF_MAYBE_UNUSED FFTerminalFontOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
|
||||
@@ -53,10 +53,7 @@ void ffParseTerminalSizeJsonObject(FFTerminalSizeOptions* options, yyjson_val* m
|
||||
|
||||
void ffGenerateTerminalSizeJsonConfig(FFTerminalSizeOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyTerminalSizeOptions))) FFTerminalSizeOptions defaultOptions;
|
||||
ffInitTerminalSizeOptions(&defaultOptions);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
}
|
||||
|
||||
void ffGenerateTerminalSizeJsonResult(FF_MAYBE_UNUSED FFTerminalSizeOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
|
||||
@@ -58,10 +58,7 @@ void ffParseTerminalThemeJsonObject(FFTerminalThemeOptions* options, yyjson_val*
|
||||
|
||||
void ffGenerateTerminalThemeJsonConfig(FFTerminalThemeOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyTerminalThemeOptions))) FFTerminalThemeOptions defaultOptions;
|
||||
ffInitTerminalThemeOptions(&defaultOptions);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
}
|
||||
|
||||
void ffGenerateTerminalThemeJsonResult(FF_MAYBE_UNUSED FFTerminalThemeOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
|
||||
@@ -58,10 +58,7 @@ void ffParseThemeJsonObject(FFThemeOptions* options, yyjson_val* module)
|
||||
|
||||
void ffGenerateThemeJsonConfig(FFThemeOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyThemeOptions))) FFThemeOptions defaultOptions;
|
||||
ffInitThemeOptions(&defaultOptions);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
}
|
||||
|
||||
void ffGenerateThemeJsonResult(FF_MAYBE_UNUSED FFThemeOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
|
||||
@@ -106,27 +106,14 @@ void ffParseTitleJsonObject(FFTitleOptions* options, yyjson_val* module)
|
||||
|
||||
void ffGenerateTitleJsonConfig(FFTitleOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyTitleOptions))) FFTitleOptions defaultOptions;
|
||||
ffInitTitleOptions(&defaultOptions);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
yyjson_mut_obj_add_bool(doc, module, "fqdn", options->fqdn);
|
||||
|
||||
if (defaultOptions.fqdn != options->fqdn)
|
||||
yyjson_mut_obj_add_bool(doc, module, "fqdn", options->fqdn);
|
||||
|
||||
yyjson_mut_val* color = yyjson_mut_obj(doc);
|
||||
|
||||
if (!ffStrbufEqual(&options->colorUser, &defaultOptions.colorUser))
|
||||
yyjson_mut_obj_add_strbuf(doc, color, "user", &options->colorUser);
|
||||
|
||||
if (!ffStrbufEqual(&options->colorAt, &defaultOptions.colorAt))
|
||||
yyjson_mut_obj_add_strbuf(doc, color, "at", &options->colorAt);
|
||||
|
||||
if (!ffStrbufEqual(&options->colorHost, &defaultOptions.colorHost))
|
||||
yyjson_mut_obj_add_strbuf(doc, color, "host", &options->colorHost);
|
||||
|
||||
if (yyjson_mut_obj_size(color))
|
||||
yyjson_mut_obj_add_val(doc, module, "color", color);
|
||||
yyjson_mut_val* color = yyjson_mut_obj_add_obj(doc, module, "color");
|
||||
yyjson_mut_obj_add_strbuf(doc, color, "user", &options->colorUser);
|
||||
yyjson_mut_obj_add_strbuf(doc, color, "at", &options->colorAt);
|
||||
yyjson_mut_obj_add_strbuf(doc, color, "host", &options->colorHost);
|
||||
}
|
||||
|
||||
void ffGenerateTitleJsonResult(FF_MAYBE_UNUSED FFTitleOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
|
||||
@@ -53,10 +53,7 @@ void ffParseTPMJsonObject(FFTPMOptions* options, yyjson_val* module)
|
||||
|
||||
void ffGenerateTPMJsonConfig(FFTPMOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyTPMOptions))) FFTPMOptions defaultOptions;
|
||||
ffInitTPMOptions(&defaultOptions);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
}
|
||||
|
||||
void ffGenerateTPMJsonResult(FF_MAYBE_UNUSED FFTPMOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
|
||||
@@ -71,10 +71,7 @@ void ffParseUptimeJsonObject(FFUptimeOptions* options, yyjson_val* module)
|
||||
|
||||
void ffGenerateUptimeJsonConfig(FFUptimeOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyUptimeOptions))) FFUptimeOptions defaultOptions;
|
||||
ffInitUptimeOptions(&defaultOptions);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
}
|
||||
|
||||
void ffGenerateUptimeJsonResult(FF_MAYBE_UNUSED FFUptimeOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
|
||||
@@ -137,16 +137,11 @@ void ffParseUsersJsonObject(FFUsersOptions* options, yyjson_val* module)
|
||||
|
||||
void ffGenerateUsersJsonConfig(FFUsersOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyUsersOptions))) FFUsersOptions defaultOptions;
|
||||
ffInitUsersOptions(&defaultOptions);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
yyjson_mut_obj_add_bool(doc, module, "compact", options->compact);
|
||||
|
||||
if (options->compact != defaultOptions.compact)
|
||||
yyjson_mut_obj_add_bool(doc, module, "compact", options->compact);
|
||||
|
||||
if (options->myselfOnly != defaultOptions.myselfOnly)
|
||||
yyjson_mut_obj_add_bool(doc, module, "myselfOnly", options->myselfOnly);
|
||||
yyjson_mut_obj_add_bool(doc, module, "myselfOnly", options->myselfOnly);
|
||||
}
|
||||
|
||||
void ffGenerateUsersJsonResult(FFUsersOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
|
||||
@@ -59,10 +59,7 @@ void ffParseVersionJsonObject(FFVersionOptions* options, yyjson_val* module)
|
||||
|
||||
void ffGenerateVersionJsonConfig(FFVersionOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyVersionOptions))) FFVersionOptions defaultOptions;
|
||||
ffInitVersionOptions(&defaultOptions);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
}
|
||||
|
||||
void ffGenerateVersionJsonResult(FF_MAYBE_UNUSED FFVersionOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
|
||||
@@ -65,10 +65,7 @@ void ffParseVulkanJsonObject(FFVulkanOptions* options, yyjson_val* module)
|
||||
|
||||
void ffGenerateVulkanJsonConfig(FFVulkanOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyVulkanOptions))) FFVulkanOptions defaultOptions;
|
||||
ffInitVulkanOptions(&defaultOptions);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
}
|
||||
|
||||
void ffGenerateVulkanJsonResult(FF_MAYBE_UNUSED FFVulkanOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
|
||||
@@ -55,10 +55,7 @@ void ffParseWallpaperJsonObject(FFWallpaperOptions* options, yyjson_val* module)
|
||||
|
||||
void ffGenerateWallpaperJsonConfig(FFWallpaperOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyWallpaperOptions))) FFWallpaperOptions defaultOptions;
|
||||
ffInitWallpaperOptions(&defaultOptions);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
}
|
||||
|
||||
void ffGenerateWallpaperJsonResult(FF_MAYBE_UNUSED FFWallpaperOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
|
||||
@@ -62,19 +62,13 @@ void ffParseWeatherJsonObject(FFWeatherOptions* options, yyjson_val* module)
|
||||
|
||||
void ffGenerateWeatherJsonConfig(FFWeatherOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyWeatherOptions))) FFWeatherOptions defaultOptions;
|
||||
ffInitWeatherOptions(&defaultOptions);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
yyjson_mut_obj_add_strbuf(doc, module, "location", &options->location);
|
||||
|
||||
if (!ffStrbufEqual(&options->location, &defaultOptions.location))
|
||||
yyjson_mut_obj_add_strbuf(doc, module, "location", &options->location);
|
||||
yyjson_mut_obj_add_strbuf(doc, module, "outputFormat", &options->outputFormat);
|
||||
|
||||
if (!ffStrbufEqual(&options->outputFormat, &defaultOptions.outputFormat))
|
||||
yyjson_mut_obj_add_strbuf(doc, module, "outputFormat", &options->outputFormat);
|
||||
|
||||
if (options->timeout != defaultOptions.timeout)
|
||||
yyjson_mut_obj_add_uint(doc, module, "timeout", options->timeout);
|
||||
yyjson_mut_obj_add_uint(doc, module, "timeout", options->timeout);
|
||||
}
|
||||
|
||||
void ffGenerateWeatherJsonResult(FFWeatherOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
|
||||
@@ -154,12 +154,9 @@ void ffParseWifiJsonObject(FFWifiOptions* options, yyjson_val* module)
|
||||
|
||||
void ffGenerateWifiJsonConfig(FFWifiOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyWifiOptions))) FFWifiOptions defaultOptions;
|
||||
ffInitWifiOptions(&defaultOptions);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
|
||||
ffPercentGenerateJsonConfig(doc, module, defaultOptions.percent, options->percent);
|
||||
ffPercentGenerateJsonConfig(doc, module, options->percent);
|
||||
}
|
||||
|
||||
void ffGenerateWifiJsonResult(FF_MAYBE_UNUSED FFWifiOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
|
||||
+2
-6
@@ -84,13 +84,9 @@ void ffParseWMJsonObject(FFWMOptions* options, yyjson_val* module)
|
||||
|
||||
void ffGenerateWMJsonConfig(FFWMOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyWMOptions))) FFWMOptions defaultOptions;
|
||||
ffInitWMOptions(&defaultOptions);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
|
||||
if (options->detectPlugin != defaultOptions.detectPlugin)
|
||||
yyjson_mut_obj_add_bool(doc, module, "detectPlugin", options->detectPlugin);
|
||||
yyjson_mut_obj_add_bool(doc, module, "detectPlugin", options->detectPlugin);
|
||||
}
|
||||
|
||||
void ffGenerateWMJsonResult(FF_MAYBE_UNUSED FFWMOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
|
||||
@@ -44,10 +44,7 @@ void ffParseWMThemeJsonObject(FFWMThemeOptions* options, yyjson_val* module)
|
||||
|
||||
void ffGenerateWMThemeJsonConfig(FFWMThemeOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyWMThemeOptions))) FFWMThemeOptions defaultOptions;
|
||||
ffInitWMThemeOptions(&defaultOptions);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
}
|
||||
|
||||
void ffGenerateWMThemeJsonResult(FF_MAYBE_UNUSED FFWMThemeOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
|
||||
@@ -125,12 +125,9 @@ void ffParseZpoolJsonObject(FFZpoolOptions* options, yyjson_val* module)
|
||||
|
||||
void ffGenerateZpoolJsonConfig(FFZpoolOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
__attribute__((__cleanup__(ffDestroyZpoolOptions))) FFZpoolOptions defaultOptions;
|
||||
ffInitZpoolOptions(&defaultOptions);
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &options->moduleArgs);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
|
||||
ffPercentGenerateJsonConfig(doc, module, defaultOptions.percent, options->percent);
|
||||
ffPercentGenerateJsonConfig(doc, module, options->percent);
|
||||
}
|
||||
|
||||
void ffGenerateZpoolJsonResult(FF_MAYBE_UNUSED FFZpoolOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
|
||||
+233
-166
@@ -343,7 +343,16 @@ const char* ffOptionsParseDisplayJsonConfig(FFOptionsDisplay* options, yyjson_va
|
||||
if (!yyjson_is_obj(color)) return "display.bar.color must be an object";
|
||||
|
||||
yyjson_val* colorElapsed = yyjson_obj_get(color, "elapsed");
|
||||
if (colorElapsed) ffOptionParseColor(yyjson_get_str(colorElapsed), &options->barColorElapsed);
|
||||
if (colorElapsed)
|
||||
{
|
||||
const char* value = yyjson_get_str(colorElapsed);
|
||||
if (!value)
|
||||
ffStrbufClear(&options->barColorElapsed);
|
||||
else if (ffStrEqualsIgnCase(value, "auto"))
|
||||
ffStrbufSetStatic(&options->barColorElapsed, "auto");
|
||||
else
|
||||
ffOptionParseColor(value, &options->barColorElapsed);
|
||||
}
|
||||
|
||||
yyjson_val* colorTotal = yyjson_obj_get(color, "total");
|
||||
if (colorTotal) ffOptionParseColor(yyjson_get_str(colorTotal), &options->barColorTotal);
|
||||
@@ -700,7 +709,14 @@ bool ffOptionsParseDisplayCommandLine(FFOptionsDisplay* options, const char* key
|
||||
else if(ffStrEqualsIgnCase(subkey, "border-right-elapsed"))
|
||||
ffOptionParseString(key, value, &options->barBorderRightElapsed);
|
||||
else if(ffStrEqualsIgnCase(subkey, "color-elapsed"))
|
||||
ffOptionParseColor(value, &options->barColorElapsed);
|
||||
{
|
||||
if (!value)
|
||||
ffStrbufClear(&options->barColorElapsed);
|
||||
else if (ffStrEqualsIgnCase(value, "auto"))
|
||||
ffStrbufSetStatic(&options->barColorElapsed, "auto");
|
||||
else
|
||||
ffOptionParseColor(value, &options->barColorElapsed);
|
||||
}
|
||||
else if(ffStrEqualsIgnCase(subkey, "color-total"))
|
||||
ffOptionParseColor(value, &options->barColorTotal);
|
||||
else if(ffStrEqualsIgnCase(subkey, "color-border"))
|
||||
@@ -813,188 +829,239 @@ void ffOptionsDestroyDisplay(FFOptionsDisplay* options)
|
||||
|
||||
void ffOptionsGenerateDisplayJsonConfig(FFOptionsDisplay* options, yyjson_mut_doc* doc)
|
||||
{
|
||||
__attribute__((__cleanup__(ffOptionsDestroyDisplay))) FFOptionsDisplay defaultOptions;
|
||||
ffOptionsInitDisplay(&defaultOptions);
|
||||
yyjson_mut_val* obj = yyjson_mut_obj_add_obj(doc, doc->root, "display");
|
||||
|
||||
yyjson_mut_val* obj = yyjson_mut_obj(doc);
|
||||
if (options->stat <= 0)
|
||||
yyjson_mut_obj_add_bool(doc, obj, "stat", options->stat == 0);
|
||||
else
|
||||
yyjson_mut_obj_add_int(doc, obj, "stat", options->stat);
|
||||
|
||||
yyjson_mut_obj_add_bool(doc, obj, "pipe", options->pipe);
|
||||
|
||||
yyjson_mut_obj_add_bool(doc, obj, "showErrors", options->showErrors);
|
||||
|
||||
yyjson_mut_obj_add_bool(doc, obj, "disableLinewrap", options->disableLinewrap);
|
||||
|
||||
yyjson_mut_obj_add_bool(doc, obj, "hideCursor", options->hideCursor);
|
||||
|
||||
yyjson_mut_obj_add_strbuf(doc, obj, "separator", &options->keyValueSeparator);
|
||||
|
||||
if (options->stat != defaultOptions.stat)
|
||||
{
|
||||
if (options->stat <= 0)
|
||||
yyjson_mut_obj_add_bool(doc, obj, "stat", options->stat == 0);
|
||||
yyjson_mut_val* color = yyjson_mut_obj_add_obj(doc, obj, "color");
|
||||
yyjson_mut_obj_add_strbuf(doc, color, "keys", &options->colorKeys);
|
||||
yyjson_mut_obj_add_strbuf(doc, color, "title", &options->colorTitle);
|
||||
yyjson_mut_obj_add_strbuf(doc, color, "output", &options->colorOutput);
|
||||
yyjson_mut_obj_add_strbuf(doc, color, "separator", &options->colorSeparator);
|
||||
}
|
||||
|
||||
yyjson_mut_obj_add_bool(doc, obj, "brightColor", options->brightColor);
|
||||
|
||||
{
|
||||
yyjson_mut_val* duration = yyjson_mut_obj_add_obj(doc, obj, "duration");
|
||||
yyjson_mut_obj_add_bool(doc, duration, "abbreviation", options->durationAbbreviation);
|
||||
switch (options->durationSpaceBeforeUnit)
|
||||
{
|
||||
case FF_SPACE_BEFORE_UNIT_DEFAULT:
|
||||
yyjson_mut_obj_add_str(doc, duration, "spaceBeforeUnit", "default");
|
||||
break;
|
||||
case FF_SPACE_BEFORE_UNIT_ALWAYS:
|
||||
yyjson_mut_obj_add_str(doc, duration, "spaceBeforeUnit", "always");
|
||||
break;
|
||||
case FF_SPACE_BEFORE_UNIT_NEVER:
|
||||
yyjson_mut_obj_add_str(doc, duration, "spaceBeforeUnit", "never");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
yyjson_mut_val* size = yyjson_mut_obj_add_obj(doc, obj, "size");
|
||||
yyjson_mut_obj_add_str(doc, size, "maxPrefix", ((const char* []) {
|
||||
"B",
|
||||
"kB",
|
||||
"MB",
|
||||
"GB",
|
||||
"TB",
|
||||
"PB",
|
||||
"EB",
|
||||
"ZB",
|
||||
"YB",
|
||||
})[options->sizeMaxPrefix]);
|
||||
switch (options->sizeBinaryPrefix)
|
||||
{
|
||||
case FF_SIZE_BINARY_PREFIX_TYPE_IEC:
|
||||
yyjson_mut_obj_add_str(doc, size, "binaryPrefix", "iec");
|
||||
break;
|
||||
case FF_SIZE_BINARY_PREFIX_TYPE_SI:
|
||||
yyjson_mut_obj_add_str(doc, size, "binaryPrefix", "si");
|
||||
break;
|
||||
case FF_SIZE_BINARY_PREFIX_TYPE_JEDEC:
|
||||
yyjson_mut_obj_add_str(doc, size, "binaryPrefix", "jedec");
|
||||
break;
|
||||
}
|
||||
yyjson_mut_obj_add_uint(doc, size, "ndigits", options->sizeNdigits);
|
||||
switch (options->sizeSpaceBeforeUnit)
|
||||
{
|
||||
case FF_SPACE_BEFORE_UNIT_DEFAULT:
|
||||
yyjson_mut_obj_add_str(doc, size, "spaceBeforeUnit", "default");
|
||||
break;
|
||||
case FF_SPACE_BEFORE_UNIT_ALWAYS:
|
||||
yyjson_mut_obj_add_str(doc, size, "spaceBeforeUnit", "always");
|
||||
break;
|
||||
case FF_SPACE_BEFORE_UNIT_NEVER:
|
||||
yyjson_mut_obj_add_str(doc, size, "spaceBeforeUnit", "never");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
yyjson_mut_val* temperature = yyjson_mut_obj_add_obj(doc, obj, "temp");
|
||||
switch (options->tempUnit)
|
||||
{
|
||||
case FF_TEMPERATURE_UNIT_DEFAULT:
|
||||
yyjson_mut_obj_add_str(doc, temperature, "unit", "D");
|
||||
break;
|
||||
case FF_TEMPERATURE_UNIT_CELSIUS:
|
||||
yyjson_mut_obj_add_str(doc, obj, "unit", "C");
|
||||
break;
|
||||
case FF_TEMPERATURE_UNIT_FAHRENHEIT:
|
||||
yyjson_mut_obj_add_str(doc, obj, "unit", "F");
|
||||
break;
|
||||
case FF_TEMPERATURE_UNIT_KELVIN:
|
||||
yyjson_mut_obj_add_str(doc, obj, "unit", "K");
|
||||
break;
|
||||
}
|
||||
yyjson_mut_obj_add_uint(doc, temperature, "ndigits", options->tempNdigits);
|
||||
{
|
||||
yyjson_mut_val* color = yyjson_mut_obj_add_obj(doc, temperature, "color");
|
||||
yyjson_mut_obj_add_strbuf(doc, color, "green", &options->tempColorGreen);
|
||||
yyjson_mut_obj_add_strbuf(doc, color, "yellow", &options->tempColorYellow);
|
||||
yyjson_mut_obj_add_strbuf(doc, color, "red", &options->tempColorRed);
|
||||
}
|
||||
switch (options->tempSpaceBeforeUnit)
|
||||
{
|
||||
case FF_SPACE_BEFORE_UNIT_DEFAULT:
|
||||
yyjson_mut_obj_add_str(doc, temperature, "spaceBeforeUnit", "default");
|
||||
break;
|
||||
case FF_SPACE_BEFORE_UNIT_ALWAYS:
|
||||
yyjson_mut_obj_add_str(doc, temperature, "spaceBeforeUnit", "always");
|
||||
break;
|
||||
case FF_SPACE_BEFORE_UNIT_NEVER:
|
||||
yyjson_mut_obj_add_str(doc, temperature, "spaceBeforeUnit", "never");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
yyjson_mut_val* percent = yyjson_mut_obj_add_obj(doc, obj, "percent");
|
||||
{
|
||||
yyjson_mut_val* type = yyjson_mut_obj_add_arr(doc, percent, "type");
|
||||
if (options->percentType & FF_PERCENTAGE_TYPE_NUM_BIT)
|
||||
yyjson_mut_arr_add_str(doc, type, "num");
|
||||
if (options->percentType & FF_PERCENTAGE_TYPE_BAR_BIT)
|
||||
yyjson_mut_arr_add_str(doc, type, "var");
|
||||
if (options->percentType & FF_PERCENTAGE_TYPE_HIDE_OTHERS_BIT)
|
||||
yyjson_mut_arr_add_str(doc, type, "hide-others");
|
||||
if (options->percentType & FF_PERCENTAGE_TYPE_NUM_COLOR_BIT)
|
||||
yyjson_mut_arr_add_str(doc, type, "num-color");
|
||||
if (options->percentType & FF_PERCENTAGE_TYPE_BAR_MONOCHROME_BIT)
|
||||
yyjson_mut_arr_add_str(doc, type, "bar-monochrome");
|
||||
}
|
||||
yyjson_mut_obj_add_uint(doc, percent, "ndigits", options->percentNdigits);
|
||||
{
|
||||
yyjson_mut_val* color = yyjson_mut_obj_add_obj(doc, percent, "color");
|
||||
yyjson_mut_obj_add_strbuf(doc, color, "green", &options->percentColorGreen);
|
||||
yyjson_mut_obj_add_strbuf(doc, color, "yellow", &options->percentColorYellow);
|
||||
yyjson_mut_obj_add_strbuf(doc, color, "red", &options->percentColorRed);
|
||||
}
|
||||
switch (options->percentSpaceBeforeUnit)
|
||||
{
|
||||
case FF_SPACE_BEFORE_UNIT_DEFAULT:
|
||||
yyjson_mut_obj_add_str(doc, percent, "spaceBeforeUnit", "default");
|
||||
break;
|
||||
case FF_SPACE_BEFORE_UNIT_ALWAYS:
|
||||
yyjson_mut_obj_add_str(doc, percent, "spaceBeforeUnit", "always");
|
||||
break;
|
||||
case FF_SPACE_BEFORE_UNIT_NEVER:
|
||||
yyjson_mut_obj_add_str(doc, percent, "spaceBeforeUnit", "never");
|
||||
break;
|
||||
}
|
||||
yyjson_mut_obj_add_uint(doc, percent, "width", options->percentWidth);
|
||||
}
|
||||
|
||||
{
|
||||
yyjson_mut_val* bar = yyjson_mut_obj_add_obj(doc, obj, "bar");
|
||||
|
||||
yyjson_mut_val* char_ = yyjson_mut_obj_add_obj(doc, bar, "char");
|
||||
yyjson_mut_obj_add_strbuf(doc, char_, "elapsed", &options->barCharElapsed);
|
||||
yyjson_mut_obj_add_strbuf(doc, char_, "total", &options->barCharTotal);
|
||||
|
||||
yyjson_mut_val* border = yyjson_mut_obj_add_obj(doc, bar, "border");
|
||||
yyjson_mut_obj_add_strbuf(doc, border, "left", &options->barBorderLeft);
|
||||
yyjson_mut_obj_add_strbuf(doc, border, "right", &options->barBorderRight);
|
||||
yyjson_mut_obj_add_strbuf(doc, border, "leftElapsed", &options->barBorderLeftElapsed);
|
||||
yyjson_mut_obj_add_strbuf(doc, border, "rightElapsed", &options->barBorderRightElapsed);
|
||||
|
||||
yyjson_mut_val* color = yyjson_mut_obj_add_obj(doc, bar, "color");
|
||||
yyjson_mut_obj_add_strbuf(doc, color, "elapsed", &options->barColorElapsed);
|
||||
yyjson_mut_obj_add_strbuf(doc, color, "total", &options->barColorTotal);
|
||||
yyjson_mut_obj_add_strbuf(doc, color, "border", &options->barColorBorder);
|
||||
|
||||
yyjson_mut_obj_add_uint(doc, bar, "width", options->barWidth);
|
||||
}
|
||||
|
||||
{
|
||||
yyjson_mut_val* fraction = yyjson_mut_obj_add_obj(doc, obj, "fraction");
|
||||
|
||||
if (options->fractionNdigits < 0)
|
||||
yyjson_mut_obj_add_null(doc, fraction, "ndigits");
|
||||
else
|
||||
yyjson_mut_obj_add_int(doc, obj, "stat", options->stat);
|
||||
yyjson_mut_obj_add_uint(doc, fraction, "ndigits", (uint8_t) options->fractionNdigits);
|
||||
}
|
||||
|
||||
if (options->pipe != defaultOptions.pipe)
|
||||
yyjson_mut_obj_add_bool(doc, obj, "pipe", options->pipe);
|
||||
|
||||
if (options->showErrors != defaultOptions.showErrors)
|
||||
yyjson_mut_obj_add_bool(doc, obj, "showErrors", options->showErrors);
|
||||
|
||||
if (options->disableLinewrap != defaultOptions.disableLinewrap)
|
||||
yyjson_mut_obj_add_bool(doc, obj, "disableLinewrap", options->disableLinewrap);
|
||||
|
||||
if (options->hideCursor != defaultOptions.hideCursor)
|
||||
yyjson_mut_obj_add_bool(doc, obj, "hideCursor", options->hideCursor);
|
||||
|
||||
if (!ffStrbufEqual(&options->keyValueSeparator, &defaultOptions.keyValueSeparator))
|
||||
yyjson_mut_obj_add_strbuf(doc, obj, "separator", &options->keyValueSeparator);
|
||||
yyjson_mut_obj_add_bool(doc, obj, "noBuffer", options->noBuffer);
|
||||
|
||||
{
|
||||
yyjson_mut_val* color = yyjson_mut_obj(doc);
|
||||
if (!ffStrbufEqual(&options->colorKeys, &defaultOptions.colorKeys))
|
||||
yyjson_mut_obj_add_strbuf(doc, color, "keys", &options->colorKeys);
|
||||
if (!ffStrbufEqual(&options->colorTitle, &defaultOptions.colorTitle))
|
||||
yyjson_mut_obj_add_strbuf(doc, color, "title", &options->colorTitle);
|
||||
if (!ffStrbufEqual(&options->colorOutput, &defaultOptions.colorOutput))
|
||||
yyjson_mut_obj_add_strbuf(doc, color, "output", &options->colorOutput);
|
||||
if (!ffStrbufEqual(&options->colorSeparator, &defaultOptions.colorSeparator))
|
||||
yyjson_mut_obj_add_strbuf(doc, color, "separator", &options->colorSeparator);
|
||||
if (yyjson_mut_obj_size(color) > 0)
|
||||
yyjson_mut_val* key = yyjson_mut_obj_add_obj(doc, obj, "key");
|
||||
yyjson_mut_obj_add_uint(doc, key, "width", options->keyWidth);
|
||||
switch ((uint8_t) options->keyType)
|
||||
{
|
||||
if (yyjson_mut_obj_size(color) == 2 && ffStrbufEqual(&options->colorKeys, &options->colorTitle))
|
||||
yyjson_mut_obj_add_strbuf(doc, obj, "color", &options->colorKeys);
|
||||
else
|
||||
yyjson_mut_obj_add_val(doc, obj, "color", color);
|
||||
case FF_MODULE_KEY_TYPE_NONE:
|
||||
yyjson_mut_obj_add_str(doc, key, "type", "none");
|
||||
break;
|
||||
case FF_MODULE_KEY_TYPE_STRING:
|
||||
yyjson_mut_obj_add_str(doc, key, "type", "string");
|
||||
break;
|
||||
case FF_MODULE_KEY_TYPE_ICON:
|
||||
yyjson_mut_obj_add_str(doc, key, "type", "icon");
|
||||
break;
|
||||
case FF_MODULE_KEY_TYPE_BOTH:
|
||||
yyjson_mut_obj_add_str(doc, key, "type", "both");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (options->brightColor != defaultOptions.brightColor)
|
||||
yyjson_mut_obj_add_bool(doc, obj, "brightColor", options->brightColor);
|
||||
|
||||
{
|
||||
yyjson_mut_val* size = yyjson_mut_obj(doc);
|
||||
if (options->sizeNdigits != defaultOptions.sizeNdigits)
|
||||
yyjson_mut_obj_add_uint(doc, size, "ndigits", options->sizeNdigits);
|
||||
if (options->sizeMaxPrefix != defaultOptions.sizeMaxPrefix && options->sizeMaxPrefix <= 8)
|
||||
{
|
||||
yyjson_mut_obj_add_str(doc, size, "maxPrefix", ((const char* []) {
|
||||
"B",
|
||||
"kB",
|
||||
"MB",
|
||||
"GB",
|
||||
"TB",
|
||||
"PB",
|
||||
"EB",
|
||||
"ZB",
|
||||
"YB",
|
||||
})[options->sizeMaxPrefix]);
|
||||
}
|
||||
if (options->sizeBinaryPrefix != defaultOptions.sizeBinaryPrefix)
|
||||
{
|
||||
switch (options->sizeBinaryPrefix)
|
||||
{
|
||||
case FF_SIZE_BINARY_PREFIX_TYPE_IEC:
|
||||
yyjson_mut_obj_add_str(doc, size, "binaryPrefix", "iec");
|
||||
break;
|
||||
case FF_SIZE_BINARY_PREFIX_TYPE_SI:
|
||||
yyjson_mut_obj_add_str(doc, size, "binaryPrefix", "si");
|
||||
break;
|
||||
case FF_SIZE_BINARY_PREFIX_TYPE_JEDEC:
|
||||
yyjson_mut_obj_add_str(doc, size, "binaryPrefix", "jedec");
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (yyjson_mut_obj_size(size) > 0)
|
||||
yyjson_mut_obj_add_val(doc, obj, "size", size);
|
||||
yyjson_mut_obj_add_uint(doc, key, "paddingLeft", options->keyPaddingLeft);
|
||||
}
|
||||
|
||||
{
|
||||
yyjson_mut_val* temperature = yyjson_mut_obj(doc);
|
||||
if (options->tempUnit != defaultOptions.tempUnit)
|
||||
yyjson_mut_val* freq = yyjson_mut_obj_add_obj(doc, obj, "freq");
|
||||
yyjson_mut_obj_add_int(doc, freq, "ndigits", options->freqNdigits);
|
||||
switch (options->percentSpaceBeforeUnit)
|
||||
{
|
||||
switch (options->tempUnit)
|
||||
{
|
||||
case FF_TEMPERATURE_UNIT_DEFAULT:
|
||||
yyjson_mut_obj_add_str(doc, temperature, "unit", "DEFAULT");
|
||||
break;
|
||||
case FF_TEMPERATURE_UNIT_CELSIUS:
|
||||
yyjson_mut_obj_add_str(doc, obj, "unit", "C");
|
||||
break;
|
||||
case FF_TEMPERATURE_UNIT_FAHRENHEIT:
|
||||
yyjson_mut_obj_add_str(doc, obj, "unit", "F");
|
||||
break;
|
||||
case FF_TEMPERATURE_UNIT_KELVIN:
|
||||
yyjson_mut_obj_add_str(doc, obj, "unit", "K");
|
||||
break;
|
||||
}
|
||||
case FF_SPACE_BEFORE_UNIT_DEFAULT:
|
||||
yyjson_mut_obj_add_str(doc, freq, "spaceBeforeUnit", "default");
|
||||
break;
|
||||
case FF_SPACE_BEFORE_UNIT_ALWAYS:
|
||||
yyjson_mut_obj_add_str(doc, freq, "spaceBeforeUnit", "always");
|
||||
break;
|
||||
case FF_SPACE_BEFORE_UNIT_NEVER:
|
||||
yyjson_mut_obj_add_str(doc, freq, "spaceBeforeUnit", "never");
|
||||
break;
|
||||
}
|
||||
if (options->tempNdigits != defaultOptions.tempNdigits)
|
||||
yyjson_mut_obj_add_uint(doc, temperature, "ndigits", options->tempNdigits);
|
||||
{
|
||||
yyjson_mut_val* color = yyjson_mut_obj(doc);
|
||||
if (!ffStrbufEqual(&options->tempColorGreen, &defaultOptions.tempColorGreen))
|
||||
yyjson_mut_obj_add_strbuf(doc, color, "green", &options->tempColorGreen);
|
||||
if (!ffStrbufEqual(&options->tempColorYellow, &defaultOptions.tempColorYellow))
|
||||
yyjson_mut_obj_add_strbuf(doc, color, "yellow", &options->tempColorYellow);
|
||||
if (!ffStrbufEqual(&options->tempColorRed, &defaultOptions.tempColorRed))
|
||||
yyjson_mut_obj_add_strbuf(doc, color, "red", &options->tempColorRed);
|
||||
if (yyjson_mut_obj_size(color) > 0)
|
||||
yyjson_mut_obj_add_val(doc, temperature, "color", color);
|
||||
}
|
||||
if (yyjson_mut_obj_size(temperature) > 0)
|
||||
yyjson_mut_obj_add_val(doc, obj, "temp", temperature);
|
||||
}
|
||||
|
||||
{
|
||||
yyjson_mut_val* percent = yyjson_mut_obj(doc);
|
||||
if (options->percentType != defaultOptions.percentType)
|
||||
yyjson_mut_obj_add_uint(doc, percent, "type", options->percentType);
|
||||
if (options->percentNdigits != defaultOptions.percentNdigits)
|
||||
yyjson_mut_obj_add_uint(doc, percent, "ndigits", options->percentNdigits);
|
||||
{
|
||||
yyjson_mut_val* color = yyjson_mut_obj(doc);
|
||||
if (!ffStrbufEqual(&options->percentColorGreen, &defaultOptions.percentColorGreen))
|
||||
yyjson_mut_obj_add_strbuf(doc, color, "green", &options->percentColorGreen);
|
||||
if (!ffStrbufEqual(&options->percentColorYellow, &defaultOptions.percentColorYellow))
|
||||
yyjson_mut_obj_add_strbuf(doc, color, "yellow", &options->percentColorYellow);
|
||||
if (!ffStrbufEqual(&options->percentColorRed, &defaultOptions.percentColorRed))
|
||||
yyjson_mut_obj_add_strbuf(doc, color, "red", &options->percentColorRed);
|
||||
if (yyjson_mut_obj_size(color) > 0)
|
||||
yyjson_mut_obj_add_val(doc, percent, "color", color);
|
||||
}
|
||||
if (yyjson_mut_obj_size(percent) > 0)
|
||||
yyjson_mut_obj_add_val(doc, obj, "percent", percent);
|
||||
yyjson_mut_val* constants = yyjson_mut_obj_add_arr(doc, obj, "constants");
|
||||
FF_LIST_FOR_EACH(FFstrbuf, item, options->constants)
|
||||
yyjson_mut_arr_add_strbuf(doc, constants, item);
|
||||
}
|
||||
|
||||
{
|
||||
yyjson_mut_val* bar = yyjson_mut_obj(doc);
|
||||
if (!ffStrbufEqual(&options->barCharElapsed, &defaultOptions.barCharElapsed))
|
||||
yyjson_mut_obj_add_strbuf(doc, bar, "charElapsed", &options->barCharElapsed);
|
||||
if (!ffStrbufEqual(&options->barCharTotal, &defaultOptions.barCharTotal))
|
||||
yyjson_mut_obj_add_strbuf(doc, bar, "charTotal", &options->barCharTotal);
|
||||
if (!ffStrbufEqual(&options->barBorderLeft, &defaultOptions.barBorderLeft))
|
||||
yyjson_mut_obj_add_strbuf(doc, bar, "borderLeft", &options->barBorderLeft);
|
||||
if (!ffStrbufEqual(&options->barBorderRight, &defaultOptions.barBorderRight))
|
||||
yyjson_mut_obj_add_strbuf(doc, bar, "borderRight", &options->barBorderRight);
|
||||
if (options->barWidth != defaultOptions.barWidth)
|
||||
yyjson_mut_obj_add_uint(doc, bar, "width", options->barWidth);
|
||||
|
||||
if (yyjson_mut_obj_size(bar) > 0)
|
||||
yyjson_mut_obj_add_val(doc, obj, "bar", bar);
|
||||
}
|
||||
|
||||
if (options->noBuffer != defaultOptions.noBuffer)
|
||||
yyjson_mut_obj_add_bool(doc, obj, "noBuffer", options->noBuffer);
|
||||
|
||||
if (options->keyWidth != defaultOptions.keyWidth)
|
||||
yyjson_mut_obj_add_uint(doc, obj, "keyWidth", options->keyWidth);
|
||||
|
||||
if (options->keyType != defaultOptions.keyType)
|
||||
yyjson_mut_obj_add_uint(doc, obj, "keyType", options->keyType);
|
||||
|
||||
if (options->keyPaddingLeft != defaultOptions.keyPaddingLeft)
|
||||
yyjson_mut_obj_add_uint(doc, obj, "keyPaddingLeft", options->keyPaddingLeft);
|
||||
|
||||
{
|
||||
yyjson_mut_val* freq = yyjson_mut_obj(doc);
|
||||
if (options->freqNdigits != defaultOptions.freqNdigits)
|
||||
yyjson_mut_obj_add_int(doc, freq, "ndigits", options->freqNdigits);
|
||||
if (yyjson_mut_obj_size(freq) > 0)
|
||||
yyjson_mut_obj_add_val(doc, obj, "freq", freq);
|
||||
}
|
||||
|
||||
if (yyjson_mut_obj_size(obj) > 0)
|
||||
yyjson_mut_obj_add_val(doc, doc->root, "display", obj);
|
||||
}
|
||||
|
||||
+15
-28
@@ -121,45 +121,32 @@ void ffOptionsDestroyGeneral(FF_MAYBE_UNUSED FFOptionsGeneral* options)
|
||||
|
||||
void ffOptionsGenerateGeneralJsonConfig(FFOptionsGeneral* options, yyjson_mut_doc* doc)
|
||||
{
|
||||
__attribute__((__cleanup__(ffOptionsDestroyGeneral))) FFOptionsGeneral defaultOptions;
|
||||
ffOptionsInitGeneral(&defaultOptions);
|
||||
yyjson_mut_val* obj = yyjson_mut_obj_add_obj(doc, doc->root, "general");
|
||||
|
||||
yyjson_mut_val* obj = yyjson_mut_obj(doc);
|
||||
yyjson_mut_obj_add_bool(doc, obj, "thread", options->multithreading);
|
||||
|
||||
if (options->multithreading != defaultOptions.multithreading)
|
||||
yyjson_mut_obj_add_bool(doc, obj, "thread", options->multithreading);
|
||||
|
||||
if (options->processingTimeout != defaultOptions.processingTimeout)
|
||||
yyjson_mut_obj_add_int(doc, obj, "processingTimeout", options->processingTimeout);
|
||||
yyjson_mut_obj_add_int(doc, obj, "processingTimeout", options->processingTimeout);
|
||||
|
||||
#if defined(__linux__) || defined(__FreeBSD__) || defined(__sun) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__HAIKU__)
|
||||
|
||||
if (!ffStrbufEqual(&options->playerName, &defaultOptions.playerName))
|
||||
yyjson_mut_obj_add_strbuf(doc, obj, "playerName", &options->playerName);
|
||||
yyjson_mut_obj_add_strbuf(doc, obj, "playerName", &options->playerName);
|
||||
|
||||
if (options->dsForceDrm != defaultOptions.dsForceDrm)
|
||||
switch (options->dsForceDrm)
|
||||
{
|
||||
switch (options->dsForceDrm)
|
||||
{
|
||||
case FF_DS_FORCE_DRM_TYPE_FALSE:
|
||||
yyjson_mut_obj_add_bool(doc, obj, "dsForceDrm", false);
|
||||
break;
|
||||
case FF_DS_FORCE_DRM_TYPE_SYSFS_ONLY:
|
||||
yyjson_mut_obj_add_str(doc, obj, "dsForceDrm", "sysfs-only");
|
||||
break;
|
||||
case FF_DS_FORCE_DRM_TYPE_TRUE:
|
||||
yyjson_mut_obj_add_bool(doc, obj, "dsForceDrm", true);
|
||||
break;
|
||||
}
|
||||
case FF_DS_FORCE_DRM_TYPE_FALSE:
|
||||
yyjson_mut_obj_add_bool(doc, obj, "dsForceDrm", false);
|
||||
break;
|
||||
case FF_DS_FORCE_DRM_TYPE_SYSFS_ONLY:
|
||||
yyjson_mut_obj_add_str(doc, obj, "dsForceDrm", "sysfs-only");
|
||||
break;
|
||||
case FF_DS_FORCE_DRM_TYPE_TRUE:
|
||||
yyjson_mut_obj_add_bool(doc, obj, "dsForceDrm", true);
|
||||
break;
|
||||
}
|
||||
|
||||
#elif defined(_WIN32)
|
||||
|
||||
if (options->wmiTimeout != defaultOptions.wmiTimeout)
|
||||
yyjson_mut_obj_add_int(doc, obj, "wmiTimeout", options->wmiTimeout);
|
||||
yyjson_mut_obj_add_int(doc, obj, "wmiTimeout", options->wmiTimeout);
|
||||
|
||||
#endif
|
||||
|
||||
if (yyjson_mut_obj_size(obj) > 0)
|
||||
yyjson_mut_obj_add_val(doc, doc->root, "general", obj);
|
||||
}
|
||||
|
||||
+96
-103
@@ -327,18 +327,28 @@ const char* ffOptionsParseLogoJsonConfig(FFOptionsLogo* options, yyjson_val* roo
|
||||
}
|
||||
else if (ffStrEqualsIgnCase(key, "width"))
|
||||
{
|
||||
uint32_t value = (uint32_t) yyjson_get_uint(val);
|
||||
if (value == 0)
|
||||
return "Logo width must be a positive integer";
|
||||
options->width = value;
|
||||
if (yyjson_is_null(val))
|
||||
options->width = 0;
|
||||
else
|
||||
{
|
||||
uint32_t value = (uint32_t) yyjson_get_uint(val);
|
||||
if (value == 0)
|
||||
return "Logo width must be a positive integer";
|
||||
options->width = value;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
else if (ffStrEqualsIgnCase(key, "height"))
|
||||
{
|
||||
uint32_t value = (uint32_t) yyjson_get_uint(val);
|
||||
if (value == 0)
|
||||
return "Logo height must be a positive integer";
|
||||
options->height = value;
|
||||
if (yyjson_is_null(val))
|
||||
options->height = 0;
|
||||
else
|
||||
{
|
||||
uint32_t value = (uint32_t) yyjson_get_uint(val);
|
||||
if (value == 0)
|
||||
return "Logo height must be a positive integer";
|
||||
options->height = value;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
else if (ffStrEqualsIgnCase(key, "padding"))
|
||||
@@ -463,121 +473,106 @@ const char* ffOptionsParseLogoJsonConfig(FFOptionsLogo* options, yyjson_val* roo
|
||||
|
||||
void ffOptionsGenerateLogoJsonConfig(FFOptionsLogo* options, yyjson_mut_doc* doc)
|
||||
{
|
||||
__attribute__((__cleanup__(ffOptionsDestroyLogo))) FFOptionsLogo defaultOptions;
|
||||
ffOptionsInitLogo(&defaultOptions);
|
||||
|
||||
yyjson_mut_val* obj = yyjson_mut_obj(doc);
|
||||
|
||||
if (options->type != defaultOptions.type)
|
||||
switch (options->type)
|
||||
{
|
||||
switch (options->type)
|
||||
{
|
||||
case FF_LOGO_TYPE_NONE:
|
||||
yyjson_mut_obj_add_null(doc, doc->root, "logo");
|
||||
return;
|
||||
case FF_LOGO_TYPE_BUILTIN:
|
||||
yyjson_mut_obj_add_str(doc, obj, "type", "builtin");
|
||||
break;
|
||||
case FF_LOGO_TYPE_SMALL:
|
||||
yyjson_mut_obj_add_str(doc, obj, "type", "small");
|
||||
break;
|
||||
case FF_LOGO_TYPE_FILE:
|
||||
yyjson_mut_obj_add_str(doc, obj, "type", "file");
|
||||
break;
|
||||
case FF_LOGO_TYPE_FILE_RAW:
|
||||
yyjson_mut_obj_add_str(doc, obj, "type", "file-raw");
|
||||
break;
|
||||
case FF_LOGO_TYPE_DATA:
|
||||
yyjson_mut_obj_add_str(doc, obj, "type", "data");
|
||||
break;
|
||||
case FF_LOGO_TYPE_DATA_RAW:
|
||||
yyjson_mut_obj_add_str(doc, obj, "type", "data-raw");
|
||||
break;
|
||||
case FF_LOGO_TYPE_COMMAND_RAW:
|
||||
yyjson_mut_obj_add_str(doc, obj, "type", "command-raw");
|
||||
break;
|
||||
case FF_LOGO_TYPE_IMAGE_SIXEL:
|
||||
yyjson_mut_obj_add_str(doc, obj, "type", "sixel");
|
||||
break;
|
||||
case FF_LOGO_TYPE_IMAGE_KITTY:
|
||||
yyjson_mut_obj_add_str(doc, obj, "type", "kitty");
|
||||
break;
|
||||
case FF_LOGO_TYPE_IMAGE_ITERM:
|
||||
yyjson_mut_obj_add_str(doc, obj, "type", "iterm");
|
||||
break;
|
||||
case FF_LOGO_TYPE_IMAGE_CHAFA:
|
||||
yyjson_mut_obj_add_str(doc, obj, "type", "chafa");
|
||||
break;
|
||||
case FF_LOGO_TYPE_IMAGE_RAW:
|
||||
yyjson_mut_obj_add_str(doc, obj, "type", "raw");
|
||||
break;
|
||||
default:
|
||||
yyjson_mut_obj_add_str(doc, obj, "type", "auto");
|
||||
break;
|
||||
}
|
||||
case FF_LOGO_TYPE_NONE:
|
||||
yyjson_mut_obj_add_null(doc, doc->root, "logo");
|
||||
return;
|
||||
case FF_LOGO_TYPE_BUILTIN:
|
||||
yyjson_mut_obj_add_str(doc, obj, "type", "builtin");
|
||||
break;
|
||||
case FF_LOGO_TYPE_SMALL:
|
||||
yyjson_mut_obj_add_str(doc, obj, "type", "small");
|
||||
break;
|
||||
case FF_LOGO_TYPE_FILE:
|
||||
yyjson_mut_obj_add_str(doc, obj, "type", "file");
|
||||
break;
|
||||
case FF_LOGO_TYPE_FILE_RAW:
|
||||
yyjson_mut_obj_add_str(doc, obj, "type", "file-raw");
|
||||
break;
|
||||
case FF_LOGO_TYPE_DATA:
|
||||
yyjson_mut_obj_add_str(doc, obj, "type", "data");
|
||||
break;
|
||||
case FF_LOGO_TYPE_DATA_RAW:
|
||||
yyjson_mut_obj_add_str(doc, obj, "type", "data-raw");
|
||||
break;
|
||||
case FF_LOGO_TYPE_COMMAND_RAW:
|
||||
yyjson_mut_obj_add_str(doc, obj, "type", "command-raw");
|
||||
break;
|
||||
case FF_LOGO_TYPE_IMAGE_SIXEL:
|
||||
yyjson_mut_obj_add_str(doc, obj, "type", "sixel");
|
||||
break;
|
||||
case FF_LOGO_TYPE_IMAGE_KITTY:
|
||||
yyjson_mut_obj_add_str(doc, obj, "type", "kitty");
|
||||
break;
|
||||
case FF_LOGO_TYPE_IMAGE_KITTY_DIRECT:
|
||||
yyjson_mut_obj_add_str(doc, obj, "type", "kitty-direct");
|
||||
break;
|
||||
case FF_LOGO_TYPE_IMAGE_KITTY_ICAT:
|
||||
yyjson_mut_obj_add_str(doc, obj, "type", "kitty-icat");
|
||||
break;
|
||||
case FF_LOGO_TYPE_IMAGE_ITERM:
|
||||
yyjson_mut_obj_add_str(doc, obj, "type", "iterm");
|
||||
break;
|
||||
case FF_LOGO_TYPE_IMAGE_CHAFA:
|
||||
yyjson_mut_obj_add_str(doc, obj, "type", "chafa");
|
||||
break;
|
||||
case FF_LOGO_TYPE_IMAGE_RAW:
|
||||
yyjson_mut_obj_add_str(doc, obj, "type", "raw");
|
||||
break;
|
||||
default:
|
||||
yyjson_mut_obj_add_str(doc, obj, "type", "auto");
|
||||
break;
|
||||
}
|
||||
|
||||
if (!ffStrbufEqual(&options->source, &defaultOptions.source))
|
||||
yyjson_mut_obj_add_str(doc, obj, "source", options->source.chars);
|
||||
yyjson_mut_obj_add_str(doc, obj, "source", options->source.chars);
|
||||
|
||||
{
|
||||
yyjson_mut_val* color = yyjson_mut_obj(doc);
|
||||
for (int i = 0; i < FASTFETCH_LOGO_MAX_COLORS; i++)
|
||||
{
|
||||
if (!ffStrbufEqual(&options->colors[i], &defaultOptions.colors[i]))
|
||||
{
|
||||
char c = (char)('1' + i);
|
||||
yyjson_mut_obj_add(color, yyjson_mut_strncpy(doc, &c, 1), yyjson_mut_strbuf(doc, &options->colors[i]));
|
||||
}
|
||||
char c = (char)('1' + i);
|
||||
yyjson_mut_obj_add(color, yyjson_mut_strncpy(doc, &c, 1), yyjson_mut_strbuf(doc, &options->colors[i]));
|
||||
}
|
||||
if (yyjson_mut_obj_size(color) > 0)
|
||||
yyjson_mut_obj_add_val(doc, obj, "color", color);
|
||||
yyjson_mut_obj_add_val(doc, obj, "color", color);
|
||||
}
|
||||
|
||||
if (options->width != defaultOptions.width)
|
||||
if (options->width == 0)
|
||||
yyjson_mut_obj_add_null(doc, obj, "width");
|
||||
else
|
||||
yyjson_mut_obj_add_uint(doc, obj, "width", options->width);
|
||||
|
||||
if (options->height != defaultOptions.height)
|
||||
if (options->height == 0)
|
||||
yyjson_mut_obj_add_null(doc, obj, "height");
|
||||
else
|
||||
yyjson_mut_obj_add_uint(doc, obj, "height", options->height);
|
||||
|
||||
{
|
||||
yyjson_mut_val* padding = yyjson_mut_obj(doc);
|
||||
if (options->paddingTop != defaultOptions.paddingTop)
|
||||
yyjson_mut_obj_add_uint(doc, padding, "top", options->paddingTop);
|
||||
if (options->paddingLeft != defaultOptions.paddingLeft)
|
||||
yyjson_mut_obj_add_uint(doc, padding, "left", options->paddingLeft);
|
||||
if (options->paddingRight != defaultOptions.paddingRight)
|
||||
yyjson_mut_obj_add_uint(doc, padding, "right", options->paddingRight);
|
||||
|
||||
if (yyjson_mut_obj_size(padding) > 0)
|
||||
yyjson_mut_obj_add_val(doc, obj, "padding", padding);
|
||||
yyjson_mut_val* padding = yyjson_mut_obj_add_obj(doc, obj, "padding");
|
||||
yyjson_mut_obj_add_uint(doc, padding, "top", options->paddingTop);
|
||||
yyjson_mut_obj_add_uint(doc, padding, "left", options->paddingLeft);
|
||||
yyjson_mut_obj_add_uint(doc, padding, "right", options->paddingRight);
|
||||
}
|
||||
|
||||
if (options->printRemaining != defaultOptions.printRemaining)
|
||||
yyjson_mut_obj_add_bool(doc, obj, "printRemaining", options->printRemaining);
|
||||
yyjson_mut_obj_add_bool(doc, obj, "printRemaining", options->printRemaining);
|
||||
|
||||
if (options->preserveAspectRatio != defaultOptions.preserveAspectRatio)
|
||||
yyjson_mut_obj_add_bool(doc, obj, "preserveAspectRatio", options->preserveAspectRatio);
|
||||
yyjson_mut_obj_add_bool(doc, obj, "preserveAspectRatio", options->preserveAspectRatio);
|
||||
|
||||
if (options->recache != defaultOptions.recache)
|
||||
yyjson_mut_obj_add_bool(doc, obj, "recache", options->recache);
|
||||
yyjson_mut_obj_add_bool(doc, obj, "recache", options->recache);
|
||||
|
||||
if (options->position != defaultOptions.position)
|
||||
{
|
||||
yyjson_mut_obj_add_str(doc, obj, "position", ((const char* []) {
|
||||
"left",
|
||||
"top",
|
||||
"right",
|
||||
})[options->position]);
|
||||
}
|
||||
yyjson_mut_obj_add_str(doc, obj, "position", ((const char* []) {
|
||||
"left",
|
||||
"top",
|
||||
"right",
|
||||
})[options->position]);
|
||||
|
||||
{
|
||||
yyjson_mut_val* chafa = yyjson_mut_obj(doc);
|
||||
if (options->chafaFgOnly != defaultOptions.chafaFgOnly)
|
||||
yyjson_mut_obj_add_bool(doc, chafa, "fgOnly", options->chafaFgOnly);
|
||||
if (!ffStrbufEqual(&options->chafaSymbols, &defaultOptions.chafaSymbols))
|
||||
yyjson_mut_obj_add_strbuf(doc, chafa, "symbols", &options->chafaSymbols);
|
||||
if (options->chafaCanvasMode != defaultOptions.chafaCanvasMode && options->chafaCanvasMode <= 7)
|
||||
yyjson_mut_obj_add_bool(doc, chafa, "fgOnly", options->chafaFgOnly);
|
||||
yyjson_mut_obj_add_strbuf(doc, chafa, "symbols", &options->chafaSymbols);
|
||||
if (options->chafaCanvasMode <= 7)
|
||||
{
|
||||
yyjson_mut_obj_add_str(doc, chafa, "canvasMode", ((const char* []) {
|
||||
"TRUECOLOR",
|
||||
@@ -590,14 +585,14 @@ void ffOptionsGenerateLogoJsonConfig(FFOptionsLogo* options, yyjson_mut_doc* doc
|
||||
"INDEXED_16_8",
|
||||
})[options->chafaCanvasMode]);
|
||||
}
|
||||
if (options->chafaColorSpace != defaultOptions.chafaColorSpace && options->chafaColorSpace <= 1)
|
||||
if (options->chafaColorSpace <= 1)
|
||||
{
|
||||
yyjson_mut_obj_add_str(doc, chafa, "colorSpace", ((const char* []) {
|
||||
"RGB",
|
||||
"DIN99D",
|
||||
})[options->chafaColorSpace]);
|
||||
}
|
||||
if (options->chafaDitherMode != defaultOptions.chafaDitherMode && options->chafaDitherMode <= 2)
|
||||
if (options->chafaDitherMode <= 2)
|
||||
{
|
||||
yyjson_mut_obj_add_str(doc, chafa, "ditherMode", ((const char* []) {
|
||||
"NONE",
|
||||
@@ -606,10 +601,8 @@ void ffOptionsGenerateLogoJsonConfig(FFOptionsLogo* options, yyjson_mut_doc* doc
|
||||
})[options->chafaDitherMode]);
|
||||
}
|
||||
|
||||
if (yyjson_mut_obj_size(chafa) > 0)
|
||||
yyjson_mut_obj_add_val(doc, obj, "chafa", chafa);
|
||||
yyjson_mut_obj_add_val(doc, obj, "chafa", chafa);
|
||||
}
|
||||
|
||||
if (yyjson_mut_obj_size(obj) > 0)
|
||||
yyjson_mut_obj_add_val(doc, doc->root, "logo", obj);
|
||||
yyjson_mut_obj_add_val(doc, doc->root, "logo", obj);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user