JsonConfig: write all flags when generating config file

This commit is contained in:
李通洲
2025-08-04 16:46:28 +08:00
parent e753d4d3a4
commit fa4e11c73b
83 changed files with 700 additions and 932 deletions
+39 -14
View File
@@ -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"
},
+8 -6
View File
@@ -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);
}
+1 -1
View File
@@ -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
View File
@@ -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);
}
+2 -2
View File
@@ -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
View File
@@ -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
View File
@@ -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);
+3 -8
View File
@@ -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)
+1 -4
View File
@@ -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)
+3 -7
View File
@@ -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)
+1 -4
View File
@@ -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)
+1 -4
View File
@@ -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)
+1 -4
View File
@@ -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)
+4 -9
View File
@@ -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)
+2 -5
View File
@@ -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)
+1 -4
View File
@@ -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)
+1 -4
View File
@@ -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
View File
@@ -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);
}
+4 -10
View File
@@ -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)
+3 -7
View File
@@ -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)
+2 -3
View File
@@ -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)
+4 -6
View File
@@ -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)
+1 -4
View File
@@ -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)
+1 -4
View File
@@ -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)
+1 -4
View File
@@ -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
View File
@@ -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
View File
@@ -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)
+4 -7
View File
@@ -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)
+31 -25
View File
@@ -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
View File
@@ -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));
+1 -4
View File
@@ -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)
+1 -4
View File
@@ -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)
+2 -5
View File
@@ -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
View File
@@ -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)
-1
View File
@@ -28,7 +28,6 @@ typedef struct FFGPUOptions
FFGPUDetectionMethod detectionMethod;
bool temp;
bool driverSpecific;
bool forceMethod;
FFColorRangeConfig tempConfig;
FFPercentageModuleConfig percent;
} FFGPUOptions;
+1 -4
View File
@@ -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)
+1 -4
View File
@@ -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)
+1 -4
View File
@@ -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)
+1 -4
View File
@@ -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)
+1 -4
View File
@@ -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
View File
@@ -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)
+4 -9
View File
@@ -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)
+1 -4
View File
@@ -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)
+13 -31
View File
@@ -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)
+1 -4
View File
@@ -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)
+2 -5
View File
@@ -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)
+1 -4
View File
@@ -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)
+1 -4
View File
@@ -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)
+5 -9
View File
@@ -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)
+1 -4
View File
@@ -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
View File
@@ -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
View File
@@ -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)
+41 -43
View File
@@ -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)
+3 -7
View File
@@ -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)
+1 -4
View File
@@ -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)
+1 -4
View File
@@ -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)
+1 -4
View File
@@ -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)
+1 -4
View File
@@ -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)
+4 -10
View File
@@ -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)
+3 -5
View File
@@ -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)
+1 -4
View File
@@ -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
View File
@@ -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)
+3 -5
View File
@@ -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)
+1 -4
View File
@@ -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)
+1 -4
View File
@@ -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)
+1 -4
View File
@@ -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)
+1 -4
View File
@@ -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)
+1 -4
View File
@@ -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)
+6 -19
View File
@@ -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)
+1 -4
View File
@@ -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)
+1 -4
View File
@@ -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)
+3 -8
View File
@@ -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)
+1 -4
View File
@@ -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)
+1 -4
View File
@@ -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)
+1 -4
View File
@@ -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)
+4 -10
View File
@@ -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)
+2 -5
View File
@@ -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
View File
@@ -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)
+1 -4
View File
@@ -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)
+2 -5
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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);
}