mirror of
https://github.com/fastfetch-cli/fastfetch.git
synced 2026-09-13 02:42:09 +02:00
Migration: finish modules support
This commit is contained in:
@@ -123,6 +123,17 @@ 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, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
|
||||
if (defaultOptions.ddcciSleep != options->ddcciSleep)
|
||||
yyjson_mut_obj_add_uint(doc, module, "ddcciSleep", options->ddcciSleep);
|
||||
}
|
||||
|
||||
void ffGenerateBrightnessJsonResult(FF_MAYBE_UNUSED FFBrightnessOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
FF_LIST_AUTO_DESTROY result = ffListCreate(sizeof(FFBrightnessResult));
|
||||
@@ -180,7 +191,7 @@ void ffInitBrightnessOptions(FFBrightnessOptions* options)
|
||||
ffPrintBrightness,
|
||||
ffGenerateBrightnessJsonResult,
|
||||
ffPrintBrightnessHelpFormat,
|
||||
NULL
|
||||
ffGenerateBrightnessJsonConfig
|
||||
);
|
||||
ffOptionInitModuleArg(&options->moduleArgs);
|
||||
|
||||
|
||||
@@ -77,6 +77,14 @@ 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);
|
||||
}
|
||||
|
||||
void ffGenerateChassisJsonResult(FF_MAYBE_UNUSED FFChassisOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
FFChassisResult result;
|
||||
@@ -128,7 +136,7 @@ void ffInitChassisOptions(FFChassisOptions* options)
|
||||
ffPrintChassis,
|
||||
ffGenerateChassisJsonResult,
|
||||
ffPrintChassisHelpFormat,
|
||||
NULL
|
||||
ffGenerateChassisJsonConfig
|
||||
);
|
||||
ffOptionInitModuleArg(&options->moduleArgs);
|
||||
}
|
||||
|
||||
@@ -127,6 +127,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, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
|
||||
if (defaultOptions.symbol != 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;
|
||||
}
|
||||
}
|
||||
|
||||
if (defaultOptions.paddingLeft != options->paddingLeft)
|
||||
yyjson_mut_obj_add_uint(doc, module, "paddingLeft", options->paddingLeft);
|
||||
}
|
||||
|
||||
void ffInitColorsOptions(FFColorsOptions* options)
|
||||
{
|
||||
ffOptionInitModuleBaseInfo(
|
||||
@@ -137,7 +161,7 @@ void ffInitColorsOptions(FFColorsOptions* options)
|
||||
ffPrintColors,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
ffGenerateColorsJsonConfig
|
||||
);
|
||||
ffOptionInitModuleArg(&options->moduleArgs);
|
||||
ffStrbufSetStatic(&options->moduleArgs.key, " ");
|
||||
|
||||
@@ -96,6 +96,20 @@ 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, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
|
||||
if (!ffStrbufEqual(&defaultOptions.shell, &options->shell))
|
||||
yyjson_mut_obj_add_strbuf(doc, module, "shell", &options->shell);
|
||||
|
||||
if (!ffStrbufEqual(&defaultOptions.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)
|
||||
{
|
||||
FF_STRBUF_AUTO_DESTROY result = ffStrbufCreate();
|
||||
@@ -142,7 +156,7 @@ void ffInitCommandOptions(FFCommandOptions* options)
|
||||
ffPrintCommand,
|
||||
ffGenerateCommandJsonResult,
|
||||
ffPrintCommandHelpFormat,
|
||||
NULL
|
||||
ffGenerateCommandJsonConfig
|
||||
);
|
||||
ffOptionInitModuleArg(&options->moduleArgs);
|
||||
|
||||
|
||||
+17
-3
@@ -77,7 +77,7 @@ void ffPrintCPU(FFCPUOptions* options)
|
||||
ffStrbufDestroy(&cpu.vendor);
|
||||
}
|
||||
|
||||
bool ffParseCPUCommandOptions(FFCPUOptions* options, const char* key, const char* value)
|
||||
bool ffParseCPUCPUOptions(FFCPUOptions* options, const char* key, const char* value)
|
||||
{
|
||||
const char* subKey = ffOptionTestPrefix(key, FF_CPU_MODULE_NAME);
|
||||
if (!subKey) return false;
|
||||
@@ -128,6 +128,20 @@ 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, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
|
||||
if (defaultOptions.temp != options->temp)
|
||||
yyjson_mut_obj_add_bool(doc, module, "temp", options->temp);
|
||||
|
||||
if (defaultOptions.freqNdigits != options->freqNdigits)
|
||||
yyjson_mut_obj_add_uint(doc, module, "freqNdigits", options->freqNdigits);
|
||||
}
|
||||
|
||||
void ffGenerateCPUJsonResult(FFCPUOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
FFCPUResult cpu;
|
||||
@@ -188,12 +202,12 @@ void ffInitCPUOptions(FFCPUOptions* options)
|
||||
ffOptionInitModuleBaseInfo(
|
||||
&options->moduleInfo,
|
||||
FF_CPU_MODULE_NAME,
|
||||
ffParseCPUCommandOptions,
|
||||
ffParseCPUCPUOptions,
|
||||
ffParseCPUJsonObject,
|
||||
ffPrintCPU,
|
||||
ffGenerateCPUJsonResult,
|
||||
ffPrintCPUHelpFormat,
|
||||
NULL
|
||||
ffGenerateCPUJsonConfig
|
||||
);
|
||||
ffOptionInitModuleArg(&options->moduleArgs);
|
||||
options->temp = false;
|
||||
|
||||
@@ -124,6 +124,17 @@ 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, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
|
||||
if (options->separate != defaultOptions.separate)
|
||||
yyjson_mut_obj_add_bool(doc, module, "separate", options->separate);
|
||||
}
|
||||
|
||||
void ffGenerateCPUUsageJsonResult(FF_MAYBE_UNUSED FFCPUUsageOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
FF_LIST_AUTO_DESTROY percentages = ffListCreate(sizeof(double));
|
||||
@@ -162,7 +173,7 @@ void ffInitCPUUsageOptions(FFCPUUsageOptions* options)
|
||||
ffPrintCPUUsage,
|
||||
ffGenerateCPUUsageJsonResult,
|
||||
ffPrintCPUUsageHelpFormat,
|
||||
NULL
|
||||
ffGenerateCPUUsageJsonConfig
|
||||
);
|
||||
ffOptionInitModuleArg(&options->moduleArgs);
|
||||
}
|
||||
|
||||
@@ -77,6 +77,14 @@ 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);
|
||||
}
|
||||
|
||||
void ffGenerateCursorJsonResult(FF_MAYBE_UNUSED FFCursorOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
FFCursorResult result;
|
||||
@@ -119,7 +127,7 @@ void ffInitCursorOptions(FFCursorOptions* options)
|
||||
ffPrintCursor,
|
||||
ffGenerateCursorJsonResult,
|
||||
ffPrintCursorHelpFormat,
|
||||
NULL
|
||||
ffGenerateCursorJsonConfig
|
||||
);
|
||||
ffOptionInitModuleArg(&options->moduleArgs);
|
||||
}
|
||||
|
||||
@@ -168,6 +168,14 @@ 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);
|
||||
}
|
||||
|
||||
void ffGenerateDateTimeJsonResult(FF_MAYBE_UNUSED FFDateTimeOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
yyjson_mut_obj_add_uint(doc, module, "result", ffTimeGetNow());
|
||||
@@ -209,7 +217,7 @@ void ffInitDateTimeOptions(FFDateTimeOptions* options)
|
||||
ffPrintDateTime,
|
||||
ffGenerateDateTimeJsonResult,
|
||||
ffPrintDateTimeHelpFormat,
|
||||
NULL
|
||||
ffGenerateDateTimeJsonConfig
|
||||
);
|
||||
ffOptionInitModuleArg(&options->moduleArgs);
|
||||
}
|
||||
|
||||
+9
-1
@@ -67,6 +67,14 @@ 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, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
}
|
||||
|
||||
void ffGenerateDEJsonResult(FF_MAYBE_UNUSED FFDEOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
const FFDisplayServerResult* result = ffConnectDisplayServer();
|
||||
@@ -102,7 +110,7 @@ void ffInitDEOptions(FFDEOptions* options)
|
||||
ffPrintDE,
|
||||
ffGenerateDEJsonResult,
|
||||
ffPrintDEHelpFormat,
|
||||
NULL
|
||||
ffGenerateDEJsonConfig
|
||||
);
|
||||
ffOptionInitModuleArg(&options->moduleArgs);
|
||||
}
|
||||
|
||||
+33
-1
@@ -358,6 +358,38 @@ 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, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
|
||||
if (defaultOptions.showTypes != options->showTypes)
|
||||
{
|
||||
if (options->showTypes & FF_DISK_VOLUME_TYPE_EXTERNAL_BIT)
|
||||
yyjson_mut_obj_add_bool(doc, module, "showExternal", true);
|
||||
|
||||
if (options->showTypes & FF_DISK_VOLUME_TYPE_HIDDEN_BIT)
|
||||
yyjson_mut_obj_add_bool(doc, module, "showHidden", true);
|
||||
|
||||
if (options->showTypes & FF_DISK_VOLUME_TYPE_SUBVOLUME_BIT)
|
||||
yyjson_mut_obj_add_bool(doc, module, "showSubvolumes", true);
|
||||
|
||||
if (options->showTypes & FF_DISK_VOLUME_TYPE_READONLY_BIT)
|
||||
yyjson_mut_obj_add_bool(doc, module, "showReadOnly", true);
|
||||
|
||||
if (options->showTypes & FF_DISK_VOLUME_TYPE_UNKNOWN_BIT)
|
||||
yyjson_mut_obj_add_bool(doc, module, "showUnknown", true);
|
||||
}
|
||||
|
||||
if (!ffStrbufEqual(&options->folders, &defaultOptions.folders))
|
||||
yyjson_mut_obj_add_strbuf(doc, module, "folders", &options->folders);
|
||||
|
||||
if (defaultOptions.calcType != options->calcType)
|
||||
yyjson_mut_obj_add_bool(doc, module, "useAvailable", options->calcType == FF_DISK_CALC_TYPE_AVAILABLE);
|
||||
}
|
||||
|
||||
void ffGenerateDiskJsonResult(FFDiskOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
FF_LIST_AUTO_DESTROY disks = ffListCreate(sizeof (FFDisk));
|
||||
@@ -436,7 +468,7 @@ void ffInitDiskOptions(FFDiskOptions* options)
|
||||
ffPrintDisk,
|
||||
ffGenerateDiskJsonResult,
|
||||
ffPrintDiskHelpFormat,
|
||||
NULL
|
||||
ffGenerateDiskJsonConfig
|
||||
);
|
||||
ffOptionInitModuleArg(&options->moduleArgs);
|
||||
|
||||
|
||||
@@ -151,6 +151,17 @@ 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, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
|
||||
if (!ffStrbufEqual(&options->namePrefix, &defaultOptions.namePrefix))
|
||||
yyjson_mut_obj_add_strbuf(doc, module, "namePrefix", &options->namePrefix);
|
||||
}
|
||||
|
||||
void ffGenerateDiskIOJsonResult(FFDiskIOOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
FF_LIST_AUTO_DESTROY result = ffListCreate(sizeof(FFDiskIOResult));
|
||||
@@ -223,7 +234,7 @@ void ffInitDiskIOOptions(FFDiskIOOptions* options)
|
||||
ffPrintDiskIO,
|
||||
ffGenerateDiskIOJsonResult,
|
||||
ffPrintDiskIOHelpFormat,
|
||||
NULL
|
||||
ffGenerateDiskIOJsonConfig
|
||||
);
|
||||
ffOptionInitModuleArg(&options->moduleArgs);
|
||||
|
||||
|
||||
@@ -175,6 +175,33 @@ 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, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
|
||||
if (options->compactType != defaultOptions.compactType)
|
||||
{
|
||||
switch (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;
|
||||
}
|
||||
}
|
||||
|
||||
if (options->preciseRefreshRate != defaultOptions.preciseRefreshRate)
|
||||
yyjson_mut_obj_add_bool(doc, module, "preciseRefreshRate", options->preciseRefreshRate);
|
||||
}
|
||||
|
||||
void ffGenerateDisplayJsonResult(FF_MAYBE_UNUSED FFDisplayOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
const FFDisplayServerResult* dsResult = ffConnectDisplayServer();
|
||||
@@ -236,7 +263,7 @@ void ffInitDisplayOptions(FFDisplayOptions* options)
|
||||
ffPrintDisplay,
|
||||
ffGenerateDisplayJsonResult,
|
||||
ffPrintDisplayHelpFormat,
|
||||
NULL
|
||||
ffGenerateDisplayJsonConfig
|
||||
);
|
||||
ffOptionInitModuleArg(&options->moduleArgs);
|
||||
options->compactType = FF_DISPLAY_COMPACT_TYPE_NONE;
|
||||
|
||||
@@ -70,6 +70,14 @@ 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);
|
||||
}
|
||||
|
||||
void ffGenerateFontJsonResult(FF_MAYBE_UNUSED FFFontOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
FFFontResult font;
|
||||
@@ -117,7 +125,7 @@ void ffInitFontOptions(FFFontOptions* options)
|
||||
ffPrintFont,
|
||||
ffGenerateFontJsonResult,
|
||||
ffPrintFontHelpFormat,
|
||||
NULL
|
||||
ffGenerateFontJsonConfig
|
||||
);
|
||||
ffOptionInitModuleArg(&options->moduleArgs);
|
||||
}
|
||||
|
||||
@@ -76,6 +76,14 @@ 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, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
}
|
||||
|
||||
void ffGenerateGamepadJsonResult(FF_MAYBE_UNUSED FFGamepadOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
FF_LIST_AUTO_DESTROY result = ffListCreate(sizeof(FFGamepadDevice));
|
||||
@@ -127,7 +135,7 @@ void ffInitGamepadOptions(FFGamepadOptions* options)
|
||||
ffPrintGamepad,
|
||||
ffGenerateGamepadJsonResult,
|
||||
ffPrintGamepadHelpFormat,
|
||||
NULL
|
||||
ffGenerateGamepadJsonConfig
|
||||
);
|
||||
ffOptionInitModuleArg(&options->moduleArgs);
|
||||
}
|
||||
|
||||
+31
-1
@@ -200,6 +200,36 @@ 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, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
|
||||
if (options->forceVulkan != defaultOptions.forceVulkan)
|
||||
yyjson_mut_obj_add_bool(doc, module, "forceVulkan", options->forceVulkan);
|
||||
|
||||
if (options->temp != defaultOptions.temp)
|
||||
yyjson_mut_obj_add_bool(doc, module, "temp", options->temp);
|
||||
|
||||
if (options->hideType != defaultOptions.hideType)
|
||||
{
|
||||
switch (options->hideType)
|
||||
{
|
||||
case FF_GPU_TYPE_UNKNOWN:
|
||||
yyjson_mut_obj_add_str(doc, module, "hideType", "none");
|
||||
break;
|
||||
case FF_GPU_TYPE_INTEGRATED:
|
||||
yyjson_mut_obj_add_str(doc, module, "hideType", "intergrated");
|
||||
break;
|
||||
case FF_GPU_TYPE_DISCRETE:
|
||||
yyjson_mut_obj_add_str(doc, module, "hideType", "discrete");
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ffGenerateGPUJsonResult(FFGPUOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
FF_LIST_AUTO_DESTROY gpus = ffListCreate(sizeof (FFGPUResult));
|
||||
@@ -293,7 +323,7 @@ void ffInitGPUOptions(FFGPUOptions* options)
|
||||
ffPrintGPU,
|
||||
ffGenerateGPUJsonResult,
|
||||
ffPrintGPUHelpFormat,
|
||||
NULL
|
||||
ffGenerateGPUJsonConfig
|
||||
);
|
||||
ffOptionInitModuleArg(&options->moduleArgs);
|
||||
|
||||
|
||||
@@ -92,6 +92,14 @@ 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);
|
||||
}
|
||||
|
||||
void ffGenerateHostJsonResult(FF_MAYBE_UNUSED FFHostOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
FFHostResult host;
|
||||
@@ -150,7 +158,7 @@ void ffInitHostOptions(FFHostOptions* options)
|
||||
ffPrintHost,
|
||||
ffGenerateHostJsonResult,
|
||||
ffPrintHostHelpFormat,
|
||||
NULL
|
||||
ffGenerateHostJsonConfig
|
||||
);
|
||||
ffOptionInitModuleArg(&options->moduleArgs);
|
||||
}
|
||||
|
||||
@@ -57,6 +57,14 @@ 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);
|
||||
}
|
||||
|
||||
void ffGenerateIconsJsonResult(FF_MAYBE_UNUSED FFIconsOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
FF_STRBUF_AUTO_DESTROY icons = ffStrbufCreate();
|
||||
@@ -88,7 +96,7 @@ void ffInitIconsOptions(FFIconsOptions* options)
|
||||
ffPrintIcons,
|
||||
ffGenerateIconsJsonResult,
|
||||
ffPrintIconsHelpFormat,
|
||||
NULL
|
||||
ffGenerateIconsJsonConfig
|
||||
);
|
||||
ffOptionInitModuleArg(&options->moduleArgs);
|
||||
}
|
||||
|
||||
@@ -57,6 +57,14 @@ 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);
|
||||
}
|
||||
|
||||
void ffGenerateKernelJsonResult(FF_MAYBE_UNUSED FFKernelOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
yyjson_mut_val* obj = yyjson_mut_obj_add_obj(doc, module, "result");
|
||||
@@ -86,7 +94,7 @@ void ffInitKernelOptions(FFKernelOptions* options)
|
||||
ffPrintKernel,
|
||||
ffGenerateKernelJsonResult,
|
||||
ffPrintKernelHelpFormat,
|
||||
NULL
|
||||
ffGenerateKernelJsonConfig
|
||||
);
|
||||
ffOptionInitModuleArg(&options->moduleArgs);
|
||||
}
|
||||
|
||||
+9
-1
@@ -76,6 +76,14 @@ 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);
|
||||
}
|
||||
|
||||
void ffGenerateLMJsonResult(FF_MAYBE_UNUSED FFLMOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
FFLMResult result;
|
||||
@@ -126,7 +134,7 @@ void ffInitLMOptions(FFLMOptions* options)
|
||||
ffPrintLM,
|
||||
ffGenerateLMJsonResult,
|
||||
ffPrintLMHelpFormat,
|
||||
NULL
|
||||
ffGenerateLMJsonConfig
|
||||
);
|
||||
ffOptionInitModuleArg(&options->moduleArgs);
|
||||
}
|
||||
|
||||
@@ -57,6 +57,14 @@ 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);
|
||||
}
|
||||
|
||||
void ffGenerateLocaleJsonResult(FF_MAYBE_UNUSED FFLocaleOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
FF_STRBUF_AUTO_DESTROY locale = ffStrbufCreate();
|
||||
@@ -88,7 +96,7 @@ void ffInitLocaleOptions(FFLocaleOptions* options)
|
||||
ffPrintLocale,
|
||||
ffGenerateLocaleJsonResult,
|
||||
ffPrintLocaleHelpFormat,
|
||||
NULL
|
||||
ffGenerateLocaleJsonConfig
|
||||
);
|
||||
ffOptionInitModuleArg(&options->moduleArgs);
|
||||
}
|
||||
|
||||
@@ -272,6 +272,38 @@ 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, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
|
||||
if (defaultOptions.showType != options->showType)
|
||||
{
|
||||
if (options->showType & FF_LOCALIP_TYPE_IPV4_BIT)
|
||||
yyjson_mut_obj_add_bool(doc, module, "showIpv4", true);
|
||||
|
||||
if (options->showType & FF_LOCALIP_TYPE_IPV6_BIT)
|
||||
yyjson_mut_obj_add_bool(doc, module, "showIpv6", true);
|
||||
|
||||
if (options->showType & FF_LOCALIP_TYPE_MAC_BIT)
|
||||
yyjson_mut_obj_add_bool(doc, module, "showMac", true);
|
||||
|
||||
if (options->showType & FF_LOCALIP_TYPE_LOOP_BIT)
|
||||
yyjson_mut_obj_add_bool(doc, module, "showLoop", true);
|
||||
|
||||
if (options->showType & FF_LOCALIP_TYPE_COMPACT_BIT)
|
||||
yyjson_mut_obj_add_bool(doc, module, "compact", true);
|
||||
}
|
||||
|
||||
if (!ffStrbufEqual(&options->namePrefix, &defaultOptions.namePrefix))
|
||||
yyjson_mut_obj_add_strbuf(doc, module, "namePrefix", &options->namePrefix);
|
||||
|
||||
if (options->defaultRouteOnly != defaultOptions.defaultRouteOnly)
|
||||
yyjson_mut_obj_add_bool(doc, module, "defaultRouteOnly", options->defaultRouteOnly);
|
||||
}
|
||||
|
||||
void ffGenerateLocalIpJsonResult(FF_MAYBE_UNUSED FFLocalIpOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
FF_LIST_AUTO_DESTROY results = ffListCreate(sizeof(FFLocalIpResult));
|
||||
@@ -332,7 +364,7 @@ void ffInitLocalIpOptions(FFLocalIpOptions* options)
|
||||
ffPrintLocalIp,
|
||||
ffGenerateLocalIpJsonResult,
|
||||
ffPrintLocalIpHelpFormat,
|
||||
NULL
|
||||
ffGenerateLocalIpJsonConfig
|
||||
);
|
||||
ffOptionInitModuleArg(&options->moduleArgs);
|
||||
|
||||
|
||||
@@ -132,6 +132,14 @@ 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);
|
||||
}
|
||||
|
||||
void ffGenerateMediaJsonResult(FF_MAYBE_UNUSED FFMediaOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
const FFMediaResult* media = ffDetectMedia();
|
||||
@@ -170,7 +178,7 @@ void ffInitMediaOptions(FFMediaOptions* options)
|
||||
ffPrintMedia,
|
||||
ffGenerateMediaJsonResult,
|
||||
ffPrintMediaHelpFormat,
|
||||
NULL
|
||||
ffGenerateMediaJsonConfig
|
||||
);
|
||||
ffOptionInitModuleArg(&options->moduleArgs);
|
||||
}
|
||||
|
||||
@@ -93,6 +93,14 @@ 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, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
}
|
||||
|
||||
void ffGenerateMemoryJsonResult(FF_MAYBE_UNUSED FFMemoryOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
FFMemoryResult storage;
|
||||
@@ -128,7 +136,7 @@ void ffInitMemoryOptions(FFMemoryOptions* options)
|
||||
ffPrintMemory,
|
||||
ffGenerateMemoryJsonResult,
|
||||
ffPrintMemoryHelpFormat,
|
||||
NULL
|
||||
ffGenerateMemoryJsonConfig
|
||||
);
|
||||
ffOptionInitModuleArg(&options->moduleArgs);
|
||||
}
|
||||
|
||||
@@ -102,6 +102,14 @@ 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);
|
||||
}
|
||||
|
||||
void ffGenerateMonitorJsonResult(FF_MAYBE_UNUSED FFMonitorOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
FF_LIST_AUTO_DESTROY results = ffListCreate(sizeof(FFMonitorResult));
|
||||
@@ -160,7 +168,7 @@ void ffInitMonitorOptions(FFMonitorOptions* options)
|
||||
ffPrintMonitor,
|
||||
ffGenerateMonitorJsonResult,
|
||||
ffPrintMonitorHelpFormat,
|
||||
NULL
|
||||
ffGenerateMonitorJsonConfig
|
||||
);
|
||||
ffOptionInitModuleArg(&options->moduleArgs);
|
||||
}
|
||||
|
||||
@@ -150,6 +150,20 @@ 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, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
|
||||
if (!ffStrbufEqual(&options->namePrefix, &defaultOptions.namePrefix))
|
||||
yyjson_mut_obj_add_strbuf(doc, module, "namePrefix", &options->namePrefix);
|
||||
|
||||
if (options->defaultRouteOnly != defaultOptions.defaultRouteOnly)
|
||||
yyjson_mut_obj_add_bool(doc, module, "defaultRouteOnly", options->defaultRouteOnly);
|
||||
}
|
||||
|
||||
void ffGenerateNetIOJsonResult(FFNetIOOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
FF_LIST_AUTO_DESTROY result = ffListCreate(sizeof(FFNetIOResult));
|
||||
@@ -211,7 +225,7 @@ void ffInitNetIOOptions(FFNetIOOptions* options)
|
||||
ffPrintNetIO,
|
||||
ffGenerateNetIOJsonResult,
|
||||
ffPrintNetIOHelpFormat,
|
||||
NULL
|
||||
ffGenerateNetIOJsonConfig
|
||||
);
|
||||
ffOptionInitModuleArg(&options->moduleArgs);
|
||||
|
||||
|
||||
@@ -66,6 +66,14 @@ 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);
|
||||
}
|
||||
|
||||
void ffGenerateOpenCLJsonResult(FF_MAYBE_UNUSED FFOpenCLOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
FFOpenCLResult opencl;
|
||||
@@ -111,7 +119,7 @@ void ffInitOpenCLOptions(FFOpenCLOptions* options)
|
||||
ffPrintOpenCL,
|
||||
ffGenerateOpenCLJsonResult,
|
||||
ffPrintOpenCLHelpFormat,
|
||||
NULL
|
||||
ffGenerateOpenCLJsonConfig
|
||||
);
|
||||
ffOptionInitModuleArg(&options->moduleArgs);
|
||||
}
|
||||
|
||||
@@ -101,6 +101,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, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
|
||||
#if defined(__linux__) || defined(__FreeBSD__)
|
||||
if (!ffStrbufEqual(&options->library, &defaultOptions.library))
|
||||
yyjson_mut_obj_add_strbuf(doc, module, "library", &options->library);
|
||||
#endif
|
||||
}
|
||||
|
||||
void ffGenerateOpenGLJsonResult(FF_MAYBE_UNUSED FFOpenGLOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
FFOpenGLResult result;
|
||||
@@ -149,7 +162,7 @@ void ffInitOpenGLOptions(FFOpenGLOptions* options)
|
||||
ffPrintOpenGL,
|
||||
ffGenerateOpenGLJsonResult,
|
||||
ffPrintOpenGLHelpFormat,
|
||||
NULL
|
||||
ffGenerateOpenGLJsonConfig
|
||||
);
|
||||
ffOptionInitModuleArg(&options->moduleArgs);
|
||||
|
||||
|
||||
+9
-1
@@ -163,6 +163,14 @@ 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);
|
||||
}
|
||||
|
||||
void ffGenerateOSJsonResult(FF_MAYBE_UNUSED FFOSOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
const FFOSResult* os = ffDetectOS();
|
||||
@@ -214,7 +222,7 @@ void ffInitOSOptions(FFOSOptions* options)
|
||||
ffPrintOS,
|
||||
ffGenerateOSJsonResult,
|
||||
ffPrintOSHelpFormat,
|
||||
NULL
|
||||
ffGenerateOSJsonConfig
|
||||
);
|
||||
ffOptionInitModuleArg(&options->moduleArgs);
|
||||
}
|
||||
|
||||
@@ -129,6 +129,14 @@ 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, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
}
|
||||
|
||||
void ffGeneratePackagesJsonResult(FF_MAYBE_UNUSED FFPackagesOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
FFPackagesResult counts = {};
|
||||
@@ -214,7 +222,7 @@ void ffInitPackagesOptions(FFPackagesOptions* options)
|
||||
ffPrintPackages,
|
||||
ffGeneratePackagesJsonResult,
|
||||
ffPrintPackagesHelpFormat,
|
||||
NULL
|
||||
ffGeneratePackagesJsonConfig
|
||||
);
|
||||
ffOptionInitModuleArg(&options->moduleArgs);
|
||||
}
|
||||
|
||||
@@ -100,6 +100,14 @@ 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);
|
||||
}
|
||||
|
||||
void ffGeneratePlayerJsonResult(FF_MAYBE_UNUSED FFMediaOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
const FFMediaResult* media = ffDetectMedia();
|
||||
@@ -136,7 +144,7 @@ void ffInitPlayerOptions(FFPlayerOptions* options)
|
||||
ffPrintPlayer,
|
||||
ffGeneratePlayerJsonResult,
|
||||
ffPrintPlayerHelpFormat,
|
||||
NULL
|
||||
ffGeneratePlayerJsonConfig
|
||||
);
|
||||
ffOptionInitModuleArg(&options->moduleArgs);
|
||||
}
|
||||
|
||||
@@ -70,6 +70,14 @@ bool ffParsePowerAdapterCommandOptions(FFPowerAdapterOptions* options, const cha
|
||||
return false;
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
void ffParsePowerAdapterJsonObject(FFPowerAdapterOptions* options, yyjson_val* module)
|
||||
{
|
||||
yyjson_val *key_, *val;
|
||||
@@ -137,7 +145,7 @@ void ffInitPowerAdapterOptions(FFPowerAdapterOptions* options)
|
||||
ffPrintPowerAdapter,
|
||||
ffGeneratePowerAdapterJsonResult,
|
||||
ffPrintPowerAdapterHelpFormat,
|
||||
NULL
|
||||
ffGeneratePowerAdapterJsonConfig
|
||||
);
|
||||
ffOptionInitModuleArg(&options->moduleArgs);
|
||||
}
|
||||
|
||||
@@ -58,6 +58,14 @@ 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);
|
||||
}
|
||||
|
||||
void ffGenerateProcessesJsonResult(FF_MAYBE_UNUSED FFProcessesOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
uint32_t result;
|
||||
@@ -89,7 +97,7 @@ void ffInitProcessesOptions(FFProcessesOptions* options)
|
||||
ffPrintProcesses,
|
||||
ffGenerateProcessesJsonResult,
|
||||
ffPrintProcessesHelpFormat,
|
||||
NULL
|
||||
ffGenerateProcessesJsonConfig
|
||||
);
|
||||
ffOptionInitModuleArg(&options->moduleArgs);
|
||||
}
|
||||
|
||||
@@ -91,6 +91,17 @@ 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, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
|
||||
if (!ffStrbufEqual(&options->url, &defaultOptions.url))
|
||||
yyjson_mut_obj_add_strbuf(doc, module, "url", &options->url);
|
||||
}
|
||||
|
||||
void ffGeneratePublicIpJsonResult(FFPublicIpOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
FFPublicIpResult result;
|
||||
@@ -130,7 +141,7 @@ void ffInitPublicIpOptions(FFPublicIpOptions* options)
|
||||
ffPrintPublicIp,
|
||||
ffGeneratePublicIpJsonResult,
|
||||
ffPrintPublicIpHelpFormat,
|
||||
NULL
|
||||
ffGeneratePublicIpJsonConfig
|
||||
);
|
||||
ffOptionInitModuleArg(&options->moduleArgs);
|
||||
|
||||
|
||||
@@ -109,6 +109,15 @@ 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);
|
||||
}
|
||||
|
||||
void ffInitSeparatorOptions(FFSeparatorOptions* options)
|
||||
{
|
||||
ffOptionInitModuleBaseInfo(
|
||||
@@ -119,7 +128,7 @@ void ffInitSeparatorOptions(FFSeparatorOptions* options)
|
||||
ffPrintSeparator,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
ffGenerateSeparatorJsonConfig
|
||||
);
|
||||
ffStrbufInit(&options->string);
|
||||
}
|
||||
|
||||
@@ -69,6 +69,14 @@ 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);
|
||||
}
|
||||
|
||||
void ffGenerateShellJsonResult(FF_MAYBE_UNUSED FFShellOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
const FFTerminalShellResult* result = ffDetectTerminalShell();
|
||||
@@ -109,7 +117,7 @@ void ffInitShellOptions(FFShellOptions* options)
|
||||
ffPrintShell,
|
||||
ffGenerateShellJsonResult,
|
||||
ffPrintShellHelpFormat,
|
||||
NULL
|
||||
ffGenerateShellJsonConfig
|
||||
);
|
||||
ffOptionInitModuleArg(&options->moduleArgs);
|
||||
}
|
||||
|
||||
@@ -82,7 +82,6 @@ void ffPrintSound(FFSoundOptions* options)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
bool ffParseSoundCommandOptions(FFSoundOptions* options, const char* key, const char* value)
|
||||
{
|
||||
const char* subKey = ffOptionTestPrefix(key, FF_SOUND_MODULE_NAME);
|
||||
@@ -137,6 +136,30 @@ 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, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
|
||||
if (defaultOptions.soundType != 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ffGenerateSoundJsonResult(FF_MAYBE_UNUSED FFSoundOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
FF_LIST_AUTO_DESTROY result = ffListCreate(sizeof(FFSoundDevice));
|
||||
@@ -197,7 +220,7 @@ void ffInitSoundOptions(FFSoundOptions* options)
|
||||
ffPrintSound,
|
||||
ffGenerateSoundJsonResult,
|
||||
ffPrintSoundHelpFormat,
|
||||
NULL
|
||||
ffGenerateSoundJsonConfig
|
||||
);
|
||||
ffOptionInitModuleArg(&options->moduleArgs);
|
||||
|
||||
|
||||
@@ -100,6 +100,14 @@ 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);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
}
|
||||
|
||||
void ffGenerateSwapJsonResult(FF_MAYBE_UNUSED FFSwapOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
FFSwapResult storage;
|
||||
@@ -135,7 +143,7 @@ void ffInitSwapOptions(FFSwapOptions* options)
|
||||
ffPrintSwap,
|
||||
ffGenerateSwapJsonResult,
|
||||
ffPrintSwapHelpFormat,
|
||||
NULL
|
||||
ffGenerateSwapJsonConfig
|
||||
);
|
||||
ffOptionInitModuleArg(&options->moduleArgs);
|
||||
}
|
||||
|
||||
@@ -67,6 +67,14 @@ 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);
|
||||
}
|
||||
|
||||
void ffGenerateTerminalJsonResult(FF_MAYBE_UNUSED FFTerminalOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
const FFTerminalShellResult* result = ffDetectTerminalShell();
|
||||
@@ -108,7 +116,7 @@ void ffInitTerminalOptions(FFTerminalOptions* options)
|
||||
ffPrintTerminal,
|
||||
ffGenerateTerminalJsonResult,
|
||||
ffPrintTerminalHelpFormat,
|
||||
NULL
|
||||
ffGenerateTerminalJsonConfig
|
||||
);
|
||||
ffOptionInitModuleArg(&options->moduleArgs);
|
||||
}
|
||||
|
||||
@@ -74,6 +74,14 @@ 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);
|
||||
}
|
||||
|
||||
void ffGenerateTerminalFontJsonResult(FF_MAYBE_UNUSED FFTerminalOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
FFTerminalFontResult result;
|
||||
@@ -134,7 +142,7 @@ void ffInitTerminalFontOptions(FFTerminalFontOptions* options)
|
||||
ffPrintTerminalFont,
|
||||
ffGenerateTerminalFontJsonResult,
|
||||
ffPrintTerminalFontHelpFormat,
|
||||
NULL
|
||||
ffGenerateTerminalFontJsonConfig
|
||||
);
|
||||
ffOptionInitModuleArg(&options->moduleArgs);
|
||||
}
|
||||
|
||||
@@ -66,6 +66,14 @@ 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);
|
||||
}
|
||||
|
||||
void ffGenerateTerminalSizeJsonResult(FF_MAYBE_UNUSED FFTerminalOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
FFTerminalSizeResult result;
|
||||
@@ -103,7 +111,7 @@ void ffInitTerminalSizeOptions(FFTerminalSizeOptions* options)
|
||||
ffPrintTerminalSize,
|
||||
ffGenerateTerminalSizeJsonResult,
|
||||
ffPrintTerminalSizeHelpFormat,
|
||||
NULL
|
||||
ffGenerateTerminalSizeJsonConfig
|
||||
);
|
||||
ffOptionInitModuleArg(&options->moduleArgs);
|
||||
}
|
||||
|
||||
@@ -57,6 +57,14 @@ 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);
|
||||
}
|
||||
|
||||
void ffGenerateThemeJsonResult(FF_MAYBE_UNUSED FFThemeOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
FF_STRBUF_AUTO_DESTROY theme = ffStrbufCreate();
|
||||
@@ -88,7 +96,7 @@ void ffInitThemeOptions(FFThemeOptions* options)
|
||||
ffPrintTheme,
|
||||
ffGenerateThemeJsonResult,
|
||||
ffPrintThemeHelpFormat,
|
||||
NULL
|
||||
ffGenerateThemeJsonConfig
|
||||
);
|
||||
ffOptionInitModuleArg(&options->moduleArgs);
|
||||
}
|
||||
|
||||
@@ -143,6 +143,31 @@ 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, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
void ffGenerateTitleJsonResult(FF_MAYBE_UNUSED FFTitleOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
yyjson_mut_val* obj = yyjson_mut_obj_add_obj(doc, module, "result");
|
||||
@@ -177,7 +202,7 @@ void ffInitTitleOptions(FFTitleOptions* options)
|
||||
ffPrintTitle,
|
||||
ffGenerateTitleJsonResult,
|
||||
ffPrintTitleHelpFormat,
|
||||
NULL
|
||||
ffGenerateTitleJsonConfig
|
||||
);
|
||||
ffOptionInitModuleArg(&options->moduleArgs);
|
||||
ffStrbufSetStatic(&options->moduleArgs.key, " ");
|
||||
|
||||
@@ -116,6 +116,14 @@ 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);
|
||||
}
|
||||
|
||||
void ffGenerateUptimeJsonResult(FF_MAYBE_UNUSED FFUptimeOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
FFUptimeResult result;
|
||||
@@ -152,7 +160,7 @@ void ffInitUptimeOptions(FFUptimeOptions* options)
|
||||
ffPrintUptime,
|
||||
ffGenerateUptimeJsonResult,
|
||||
ffPrintUptimeHelpFormat,
|
||||
NULL
|
||||
ffGenerateUptimeJsonConfig
|
||||
);
|
||||
ffOptionInitModuleArg(&options->moduleArgs);
|
||||
}
|
||||
|
||||
@@ -130,6 +130,17 @@ 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, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
|
||||
if (options->compact != defaultOptions.compact)
|
||||
yyjson_mut_obj_add_bool(doc, module, "compact", options->compact);
|
||||
}
|
||||
|
||||
void ffGenerateUsersJsonResult(FF_MAYBE_UNUSED FFUsersOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
FF_LIST_AUTO_DESTROY results = ffListCreate(sizeof(FFUserResult));
|
||||
@@ -184,7 +195,7 @@ void ffInitUsersOptions(FFUsersOptions* options)
|
||||
ffPrintUsers,
|
||||
ffGenerateUsersJsonResult,
|
||||
ffPrintUsersHelpFormat,
|
||||
NULL
|
||||
ffGenerateUsersJsonConfig
|
||||
);
|
||||
ffOptionInitModuleArg(&options->moduleArgs);
|
||||
|
||||
|
||||
@@ -72,6 +72,14 @@ 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);
|
||||
}
|
||||
|
||||
void ffGenerateVersionJsonResult(FF_MAYBE_UNUSED FFVersionOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
FFVersionResult result;
|
||||
@@ -129,7 +137,7 @@ void ffInitVersionOptions(FFVersionOptions* options)
|
||||
ffPrintVersion,
|
||||
ffGenerateVersionJsonResult,
|
||||
ffPrintVersionHelpFormat,
|
||||
NULL
|
||||
ffGenerateVersionJsonConfig
|
||||
);
|
||||
ffOptionInitModuleArg(&options->moduleArgs);
|
||||
}
|
||||
|
||||
@@ -71,6 +71,14 @@ 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);
|
||||
}
|
||||
|
||||
void ffGenerateVulkanJsonResult(FF_MAYBE_UNUSED FFVulkanOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
const FFVulkanResult* result = ffDetectVulkan();
|
||||
@@ -145,7 +153,7 @@ void ffInitVulkanOptions(FFVulkanOptions* options)
|
||||
ffPrintVulkan,
|
||||
ffGenerateVulkanJsonResult,
|
||||
ffPrintVulkanHelpFormat,
|
||||
NULL
|
||||
ffGenerateVulkanJsonConfig
|
||||
);
|
||||
ffOptionInitModuleArg(&options->moduleArgs);
|
||||
}
|
||||
|
||||
@@ -69,6 +69,14 @@ 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);
|
||||
}
|
||||
|
||||
void ffGenerateWallpaperJsonResult(FF_MAYBE_UNUSED FFWallpaperOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
FF_STRBUF_AUTO_DESTROY fullpath = ffStrbufCreate();
|
||||
@@ -98,7 +106,7 @@ void ffInitWallpaperOptions(FFWallpaperOptions* options)
|
||||
ffPrintWallpaper,
|
||||
ffGenerateWallpaperJsonResult,
|
||||
ffPrintWallpaperHelpFormat,
|
||||
NULL
|
||||
ffGenerateWallpaperJsonConfig
|
||||
);
|
||||
ffOptionInitModuleArg(&options->moduleArgs);
|
||||
}
|
||||
|
||||
@@ -94,6 +94,23 @@ 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, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
|
||||
if (!ffStrbufEqual(&options->location, &defaultOptions.location))
|
||||
yyjson_mut_obj_add_strbuf(doc, module, "location", &options->location);
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
void ffGenerateWeatherJsonResult(FFWeatherOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
FF_STRBUF_AUTO_DESTROY result = ffStrbufCreate();
|
||||
@@ -125,7 +142,7 @@ void ffInitWeatherOptions(FFWeatherOptions* options)
|
||||
ffPrintWeather,
|
||||
ffGenerateWeatherJsonResult,
|
||||
ffPrintWeatherHelpFormat,
|
||||
NULL
|
||||
ffGenerateWeatherJsonConfig
|
||||
);
|
||||
ffOptionInitModuleArg(&options->moduleArgs);
|
||||
|
||||
|
||||
@@ -97,6 +97,14 @@ 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, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
}
|
||||
|
||||
void ffGenerateWifiJsonResult(FF_MAYBE_UNUSED FFWifiOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
FF_LIST_AUTO_DESTROY result = ffListCreate(sizeof(FFWifiResult));
|
||||
@@ -169,7 +177,7 @@ void ffInitWifiOptions(FFWifiOptions* options)
|
||||
ffPrintWifi,
|
||||
ffGenerateWifiJsonResult,
|
||||
ffPrintWifiHelpFormat,
|
||||
NULL
|
||||
ffGenerateWifiJsonConfig
|
||||
);
|
||||
ffOptionInitModuleArg(&options->moduleArgs);
|
||||
}
|
||||
|
||||
+9
-1
@@ -68,6 +68,14 @@ 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, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
}
|
||||
|
||||
void ffGenerateWMJsonResult(FF_MAYBE_UNUSED FFWMOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
const FFDisplayServerResult* result = ffConnectDisplayServer();
|
||||
@@ -102,7 +110,7 @@ void ffInitWMOptions(FFWMOptions* options)
|
||||
ffPrintWM,
|
||||
ffGenerateWMJsonResult,
|
||||
ffPrintWMHelpFormat,
|
||||
NULL
|
||||
ffGenerateWMJsonConfig
|
||||
);
|
||||
ffOptionInitModuleArg(&options->moduleArgs);
|
||||
}
|
||||
|
||||
@@ -57,6 +57,14 @@ 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);
|
||||
}
|
||||
|
||||
void ffGenerateWMThemeJsonResult(FF_MAYBE_UNUSED FFWMThemeOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
{
|
||||
FF_STRBUF_AUTO_DESTROY themeOrError = ffStrbufCreate();
|
||||
@@ -86,7 +94,7 @@ void ffInitWMThemeOptions(FFWMThemeOptions* options)
|
||||
ffPrintWMTheme,
|
||||
ffGenerateWMThemeJsonResult,
|
||||
ffPrintWMthemeHelpFormat,
|
||||
NULL
|
||||
ffGenerateWMThemeJsonConfig
|
||||
);
|
||||
ffOptionInitModuleArg(&options->moduleArgs);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user