From 3c5b0024141d20beb9f5296311991f9194c6268a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=80=9A=E6=B4=B2?= Date: Wed, 25 Oct 2023 15:38:46 +0800 Subject: [PATCH] Options (Modules): split code --- CMakeLists.txt | 1 + src/common/commandoption.c | 9 ++- src/common/init.c | 120 +---------------------------- src/common/jsonconfig.c | 16 ++-- src/common/modules.c | 114 +++++++++++++-------------- src/fastfetch.h | 61 +-------------- src/flashfetch.c | 101 ++++++++++++------------ src/modules/separator/separator.c | 2 +- src/options/modules.c | 124 ++++++++++++++++++++++++++++++ src/options/modules.h | 67 ++++++++++++++++ 10 files changed, 318 insertions(+), 297 deletions(-) create mode 100644 src/options/modules.c create mode 100644 src/options/modules.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 243172947..c48b06813 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -354,6 +354,7 @@ set(LIBFASTFETCH_SRC src/modules/wifi/wifi.c src/modules/wm/wm.c src/modules/wmtheme/wmtheme.c + src/options/modules.c src/options/logo.c src/options/general.c src/util/edidHelper.c diff --git a/src/common/commandoption.c b/src/common/commandoption.c index ab3ac56da..507393dc3 100644 --- a/src/common/commandoption.c +++ b/src/common/commandoption.c @@ -74,6 +74,7 @@ bool ffParseModuleOptions(const char* key, const char* value) void ffPrepareCommandOption(FFdata* data) { + FFOptionsModules* const options = &instance.config.modules; //If we don't have a custom structure, use the default one if(data->structure.length == 0) ffStrbufAppendS(&data->structure, FASTFETCH_DATATEXT_STRUCTURE); @@ -82,18 +83,18 @@ void ffPrepareCommandOption(FFdata* data) ffPrepareCPUUsage(); if(ffStrbufContainIgnCaseS(&data->structure, FF_DISKIO_MODULE_NAME)) - ffPrepareDiskIO(&instance.config.diskIo); + ffPrepareDiskIO(&options->diskIo); if(ffStrbufContainIgnCaseS(&data->structure, FF_NETIO_MODULE_NAME)) - ffPrepareNetIO(&instance.config.netIo); + ffPrepareNetIO(&options->netIo); if(instance.config.general.multithreading) { if(ffStrbufContainIgnCaseS(&data->structure, FF_PUBLICIP_MODULE_NAME)) - ffPreparePublicIp(&instance.config.publicIP); + ffPreparePublicIp(&options->publicIP); if(ffStrbufContainIgnCaseS(&data->structure, FF_WEATHER_MODULE_NAME)) - ffPrepareWeather(&instance.config.weather); + ffPrepareWeather(&options->weather); } } diff --git a/src/common/init.c b/src/common/init.c index e6ddba717..25e01d748 100644 --- a/src/common/init.c +++ b/src/common/init.c @@ -15,8 +15,6 @@ #include #endif -#include "modules/modules.h" - FFinstance instance; // Global singleton static void initState(FFstate* state) @@ -34,6 +32,7 @@ static void defaultConfig(void) { ffOptionsInitLogo(&instance.config.logo); ffOptionsInitGeneral(&instance.config.general); + ffOptionsInitModules(&instance.config.modules); ffStrbufInit(&instance.config.colorKeys); ffStrbufInit(&instance.config.colorTitle); @@ -66,64 +65,6 @@ static void defaultConfig(void) instance.config.percentType = 1; instance.config.percentNdigits = 0; - ffInitBatteryOptions(&instance.config.battery); - ffInitBiosOptions(&instance.config.bios); - ffInitBluetoothOptions(&instance.config.bluetooth); - ffInitBoardOptions(&instance.config.board); - ffInitBreakOptions(&instance.config.break_); - ffInitBrightnessOptions(&instance.config.brightness); - ffInitCPUOptions(&instance.config.cpu); - ffInitCPUUsageOptions(&instance.config.cpuUsage); - ffInitChassisOptions(&instance.config.chassis); - ffInitColorsOptions(&instance.config.colors); - ffInitCommandOptions(&instance.config.command); - ffInitCursorOptions(&instance.config.cursor); - ffInitCustomOptions(&instance.config.custom); - ffInitDEOptions(&instance.config.de); - ffInitDateTimeOptions(&instance.config.dateTime); - ffInitDiskOptions(&instance.config.disk); - ffInitDiskIOOptions(&instance.config.diskIo); - ffInitDisplayOptions(&instance.config.display); - ffInitFontOptions(&instance.config.font); - ffInitGPUOptions(&instance.config.gpu); - ffInitGamepadOptions(&instance.config.gamepad); - ffInitHostOptions(&instance.config.host); - ffInitIconsOptions(&instance.config.icons); - ffInitKernelOptions(&instance.config.kernel); - ffInitLMOptions(&instance.config.lm); - ffInitLocalIpOptions(&instance.config.localIP); - ffInitLocaleOptions(&instance.config.locale); - ffInitMediaOptions(&instance.config.media); - ffInitMemoryOptions(&instance.config.memory); - ffInitMonitorOptions(&instance.config.monitor); - ffInitNetIOOptions(&instance.config.netIo); - ffInitOSOptions(&instance.config.os); - ffInitOpenCLOptions(&instance.config.openCL); - ffInitOpenGLOptions(&instance.config.openGL); - ffInitPackagesOptions(&instance.config.packages); - ffInitPlayerOptions(&instance.config.player); - ffInitPowerAdapterOptions(&instance.config.powerAdapter); - ffInitProcessesOptions(&instance.config.processes); - ffInitPublicIpOptions(&instance.config.publicIP); - ffInitSeparatorOptions(&instance.config.separator); - ffInitShellOptions(&instance.config.shell); - ffInitSoundOptions(&instance.config.sound); - ffInitSwapOptions(&instance.config.swap); - ffInitTerminalFontOptions(&instance.config.terminalFont); - ffInitTerminalOptions(&instance.config.terminal); - ffInitTerminalSizeOptions(&instance.config.terminalSize); - ffInitThemeOptions(&instance.config.theme); - ffInitTitleOptions(&instance.config.title); - ffInitUptimeOptions(&instance.config.uptime); - ffInitUsersOptions(&instance.config.users); - ffInitVersionOptions(&instance.config.version); - ffInitVulkanOptions(&instance.config.vulkan); - ffInitWMOptions(&instance.config.wm); - ffInitWMThemeOptions(&instance.config.wmTheme); - ffInitWallpaperOptions(&instance.config.wallpaper); - ffInitWeatherOptions(&instance.config.weather); - ffInitWifiOptions(&instance.config.wifi); - ffStrbufInit(&instance.config.libPCI); ffStrbufInit(&instance.config.libVulkan); ffStrbufInit(&instance.config.libWayland); @@ -270,6 +211,7 @@ static void destroyConfig(void) { ffOptionsDestroyLogo(&instance.config.logo); ffOptionsDestroyGeneral(&instance.config.general); + ffOptionsDestroyModules(&instance.config.modules); ffStrbufDestroy(&instance.config.colorKeys); ffStrbufDestroy(&instance.config.colorTitle); @@ -277,64 +219,6 @@ static void destroyConfig(void) ffStrbufDestroy(&instance.config.barCharElapsed); ffStrbufDestroy(&instance.config.barCharTotal); - ffDestroyBatteryOptions(&instance.config.battery); - ffDestroyBiosOptions(&instance.config.bios); - ffDestroyBluetoothOptions(&instance.config.bluetooth); - ffDestroyBoardOptions(&instance.config.board); - ffDestroyBreakOptions(&instance.config.break_); - ffDestroyBrightnessOptions(&instance.config.brightness); - ffDestroyCPUOptions(&instance.config.cpu); - ffDestroyCPUUsageOptions(&instance.config.cpuUsage); - ffDestroyChassisOptions(&instance.config.chassis); - ffDestroyColorsOptions(&instance.config.colors); - ffDestroyCommandOptions(&instance.config.command); - ffDestroyCursorOptions(&instance.config.cursor); - ffDestroyCustomOptions(&instance.config.custom); - ffDestroyDEOptions(&instance.config.de); - ffDestroyDateTimeOptions(&instance.config.dateTime); - ffDestroyDiskOptions(&instance.config.disk); - ffDestroyDiskIOOptions(&instance.config.diskIo); - ffDestroyDisplayOptions(&instance.config.display); - ffDestroyFontOptions(&instance.config.font); - ffDestroyGPUOptions(&instance.config.gpu); - ffDestroyGamepadOptions(&instance.config.gamepad); - ffDestroyHostOptions(&instance.config.host); - ffDestroyIconsOptions(&instance.config.icons); - ffDestroyKernelOptions(&instance.config.kernel); - ffDestroyLMOptions(&instance.config.lm); - ffDestroyLocalIpOptions(&instance.config.localIP); - ffDestroyLocaleOptions(&instance.config.locale); - ffDestroyMediaOptions(&instance.config.media); - ffDestroyMemoryOptions(&instance.config.memory); - ffDestroyMonitorOptions(&instance.config.monitor); - ffDestroyNetIOOptions(&instance.config.netIo); - ffDestroyOSOptions(&instance.config.os); - ffDestroyOpenCLOptions(&instance.config.openCL); - ffDestroyOpenGLOptions(&instance.config.openGL); - ffDestroyPackagesOptions(&instance.config.packages); - ffDestroyPlayerOptions(&instance.config.player); - ffDestroyPowerAdapterOptions(&instance.config.powerAdapter); - ffDestroyProcessesOptions(&instance.config.processes); - ffDestroyPublicIpOptions(&instance.config.publicIP); - ffDestroySeparatorOptions(&instance.config.separator); - ffDestroyShellOptions(&instance.config.shell); - ffDestroySoundOptions(&instance.config.sound); - ffDestroySwapOptions(&instance.config.swap); - ffDestroyTerminalFontOptions(&instance.config.terminalFont); - ffDestroyTerminalOptions(&instance.config.terminal); - ffDestroyTerminalSizeOptions(&instance.config.terminalSize); - ffDestroyThemeOptions(&instance.config.theme); - ffDestroyTitleOptions(&instance.config.title); - ffDestroyUptimeOptions(&instance.config.uptime); - ffDestroyUsersOptions(&instance.config.users); - ffDestroyVersionOptions(&instance.config.version); - ffDestroyVulkanOptions(&instance.config.vulkan); - ffDestroyWMOptions(&instance.config.wm); - ffDestroyWMThemeOptions(&instance.config.wmTheme); - ffDestroyWallpaperOptions(&instance.config.wallpaper); - ffDestroyWeatherOptions(&instance.config.weather); - ffDestroyWifiOptions(&instance.config.wifi); - ffStrbufDestroy(&instance.config.libPCI); ffStrbufDestroy(&instance.config.libVulkan); ffStrbufDestroy(&instance.config.libWayland); diff --git a/src/common/jsonconfig.c b/src/common/jsonconfig.c index f3f240fef..384751370 100644 --- a/src/common/jsonconfig.c +++ b/src/common/jsonconfig.c @@ -127,32 +127,32 @@ static void prepareModuleJsonObject(const char* type, yyjson_val* module) case 'd': case 'D': { if (ffStrEqualsIgnCase(type, FF_DISKIO_MODULE_NAME)) { - if (module) cfg->diskIo.moduleInfo.parseJsonObject(&cfg->diskIo, module); - ffPrepareDiskIO(&cfg->diskIo); + if (module) cfg->modules.diskIo.moduleInfo.parseJsonObject(&cfg->modules.diskIo, module); + ffPrepareDiskIO(&cfg->modules.diskIo); } break; } case 'n': case 'N': { if (ffStrEqualsIgnCase(type, FF_NETIO_MODULE_NAME)) { - if (module) cfg->netIo.moduleInfo.parseJsonObject(&cfg->netIo, module); - ffPrepareNetIO(&cfg->netIo); + if (module) cfg->modules.netIo.moduleInfo.parseJsonObject(&cfg->modules.netIo, module); + ffPrepareNetIO(&cfg->modules.netIo); } break; } case 'p': case 'P': { if (ffStrEqualsIgnCase(type, FF_PUBLICIP_MODULE_NAME)) { - if (module) cfg->publicIP.moduleInfo.parseJsonObject(&cfg->publicIP, module); - ffPreparePublicIp(&cfg->publicIP); + if (module) cfg->modules.publicIP.moduleInfo.parseJsonObject(&cfg->modules.publicIP, module); + ffPreparePublicIp(&cfg->modules.publicIP); } break; } case 'w': case 'W': { if (ffStrEqualsIgnCase(type, FF_WEATHER_MODULE_NAME)) { - if (module) cfg->weather.moduleInfo.parseJsonObject(&cfg->weather, module); - ffPrepareWeather(&cfg->weather); + if (module) cfg->modules.weather.moduleInfo.parseJsonObject(&cfg->modules.weather, module); + ffPrepareWeather(&cfg->modules.weather); } break; } diff --git a/src/common/modules.c b/src/common/modules.c index 216470144..a065bc625 100644 --- a/src/common/modules.c +++ b/src/common/modules.c @@ -5,32 +5,32 @@ static FFModuleBaseInfo* A[] = { }; static FFModuleBaseInfo* B[] = { - (void*) &instance.config.battery, - (void*) &instance.config.bios, - (void*) &instance.config.bluetooth, - (void*) &instance.config.board, - (void*) &instance.config.break_, - (void*) &instance.config.brightness, + (void*) &instance.config.modules.battery, + (void*) &instance.config.modules.bios, + (void*) &instance.config.modules.bluetooth, + (void*) &instance.config.modules.board, + (void*) &instance.config.modules.break_, + (void*) &instance.config.modules.brightness, NULL, }; static FFModuleBaseInfo* C[] = { - (void*) &instance.config.chassis, - (void*) &instance.config.command, - (void*) &instance.config.colors, - (void*) &instance.config.cpu, - (void*) &instance.config.cpuUsage, - (void*) &instance.config.cursor, - (void*) &instance.config.custom, + (void*) &instance.config.modules.chassis, + (void*) &instance.config.modules.command, + (void*) &instance.config.modules.colors, + (void*) &instance.config.modules.cpu, + (void*) &instance.config.modules.cpuUsage, + (void*) &instance.config.modules.cursor, + (void*) &instance.config.modules.custom, NULL, }; static FFModuleBaseInfo* D[] = { - (void*) &instance.config.dateTime, - (void*) &instance.config.de, - (void*) &instance.config.display, - (void*) &instance.config.disk, - (void*) &instance.config.diskIo, + (void*) &instance.config.modules.dateTime, + (void*) &instance.config.modules.de, + (void*) &instance.config.modules.display, + (void*) &instance.config.modules.disk, + (void*) &instance.config.modules.diskIo, NULL, }; @@ -39,23 +39,23 @@ static FFModuleBaseInfo* E[] = { }; static FFModuleBaseInfo* F[] = { - (void*) &instance.config.font, + (void*) &instance.config.modules.font, NULL, }; static FFModuleBaseInfo* G[] = { - (void*) &instance.config.gamepad, - (void*) &instance.config.gpu, + (void*) &instance.config.modules.gamepad, + (void*) &instance.config.modules.gpu, NULL, }; static FFModuleBaseInfo* H[] = { - (void*) &instance.config.host, + (void*) &instance.config.modules.host, NULL, }; static FFModuleBaseInfo* I[] = { - (void*) &instance.config.icons, + (void*) &instance.config.modules.icons, NULL, }; @@ -64,42 +64,42 @@ static FFModuleBaseInfo* J[] = { }; static FFModuleBaseInfo* K[] = { - (void*) &instance.config.kernel, + (void*) &instance.config.modules.kernel, NULL, }; static FFModuleBaseInfo* L[] = { - (void*) &instance.config.lm, - (void*) &instance.config.locale, - (void*) &instance.config.localIP, + (void*) &instance.config.modules.lm, + (void*) &instance.config.modules.locale, + (void*) &instance.config.modules.localIP, NULL, }; static FFModuleBaseInfo* M[] = { - (void*) &instance.config.media, - (void*) &instance.config.memory, - (void*) &instance.config.monitor, + (void*) &instance.config.modules.media, + (void*) &instance.config.modules.memory, + (void*) &instance.config.modules.monitor, NULL, }; static FFModuleBaseInfo* N[] = { - (void*) &instance.config.netIo, + (void*) &instance.config.modules.netIo, NULL, }; static FFModuleBaseInfo* O[] = { - (void*) &instance.config.openCL, - (void*) &instance.config.openGL, - (void*) &instance.config.os, + (void*) &instance.config.modules.openCL, + (void*) &instance.config.modules.openGL, + (void*) &instance.config.modules.os, NULL, }; static FFModuleBaseInfo* P[] = { - (void*) &instance.config.packages, - (void*) &instance.config.player, - (void*) &instance.config.powerAdapter, - (void*) &instance.config.processes, - (void*) &instance.config.publicIP, + (void*) &instance.config.modules.packages, + (void*) &instance.config.modules.player, + (void*) &instance.config.modules.powerAdapter, + (void*) &instance.config.modules.processes, + (void*) &instance.config.modules.publicIP, NULL, }; @@ -112,40 +112,40 @@ static FFModuleBaseInfo* R[] = { }; static FFModuleBaseInfo* S[] = { - (void*) &instance.config.separator, - (void*) &instance.config.shell, - (void*) &instance.config.sound, - (void*) &instance.config.swap, + (void*) &instance.config.modules.separator, + (void*) &instance.config.modules.shell, + (void*) &instance.config.modules.sound, + (void*) &instance.config.modules.swap, NULL, }; static FFModuleBaseInfo* T[] = { - (void*) &instance.config.terminal, - (void*) &instance.config.terminalFont, - (void*) &instance.config.terminalSize, - (void*) &instance.config.title, - (void*) &instance.config.theme, + (void*) &instance.config.modules.terminal, + (void*) &instance.config.modules.terminalFont, + (void*) &instance.config.modules.terminalSize, + (void*) &instance.config.modules.title, + (void*) &instance.config.modules.theme, NULL, }; static FFModuleBaseInfo* U[] = { - (void*) &instance.config.uptime, - (void*) &instance.config.users, + (void*) &instance.config.modules.uptime, + (void*) &instance.config.modules.users, NULL, }; static FFModuleBaseInfo* V[] = { - (void*) &instance.config.version, - (void*) &instance.config.vulkan, + (void*) &instance.config.modules.version, + (void*) &instance.config.modules.vulkan, NULL, }; static FFModuleBaseInfo* W[] = { - (void*) &instance.config.wallpaper, - (void*) &instance.config.weather, - (void*) &instance.config.wm, - (void*) &instance.config.wifi, - (void*) &instance.config.wmTheme, + (void*) &instance.config.modules.wallpaper, + (void*) &instance.config.modules.weather, + (void*) &instance.config.modules.wm, + (void*) &instance.config.modules.wifi, + (void*) &instance.config.modules.wmTheme, NULL, }; diff --git a/src/fastfetch.h b/src/fastfetch.h index f741bf2fd..e957adf75 100644 --- a/src/fastfetch.h +++ b/src/fastfetch.h @@ -23,7 +23,7 @@ #include "util/platform/FFPlatform.h" #include "util/unused.h" -#include "modules/options.h" +#include "options/modules.h" #include "options/logo.h" #include "options/general.h" @@ -45,6 +45,7 @@ typedef struct FFconfig { FFOptionsLogo logo; FFOptionsGeneral general; + FFOptionsModules modules; //If one of those is empty, ffLogoPrint will set them FFstrbuf colorKeys; @@ -72,64 +73,6 @@ typedef struct FFconfig bool noBuffer; uint32_t keyWidth; - FFBatteryOptions battery; - FFBiosOptions bios; - FFBluetoothOptions bluetooth; - FFBoardOptions board; - FFBreakOptions break_; - FFBrightnessOptions brightness; - FFCPUOptions cpu; - FFCPUUsageOptions cpuUsage; - FFChassisOptions chassis; - FFColorsOptions colors; - FFCommandOptions command; - FFCursorOptions cursor; - FFCustomOptions custom; - FFDEOptions de; - FFDateTimeOptions dateTime; - FFDiskOptions disk; - FFDiskIOOptions diskIo; - FFDisplayOptions display; - FFFontOptions font; - FFGPUOptions gpu; - FFGamepadOptions gamepad; - FFHostOptions host; - FFIconsOptions icons; - FFKernelOptions kernel; - FFLMOptions lm; - FFLocalIpOptions localIP; - FFLocaleOptions locale; - FFMediaOptions media; - FFMemoryOptions memory; - FFMonitorOptions monitor; - FFNetIOOptions netIo; - FFOSOptions os; - FFOpenCLOptions openCL; - FFOpenGLOptions openGL; - FFPackagesOptions packages; - FFPlayerOptions player; - FFPowerAdapterOptions powerAdapter; - FFProcessesOptions processes; - FFPublicIpOptions publicIP; - FFSeparatorOptions separator; - FFShellOptions shell; - FFSoundOptions sound; - FFSwapOptions swap; - FFTerminalFontOptions terminalFont; - FFTerminalOptions terminal; - FFTerminalSizeOptions terminalSize; - FFThemeOptions theme; - FFTitleOptions title; - FFUptimeOptions uptime; - FFUsersOptions users; - FFVersionOptions version; - FFVulkanOptions vulkan; - FFWMOptions wm; - FFWMThemeOptions wmTheme; - FFWallpaperOptions wallpaper; - FFWeatherOptions weather; - FFWifiOptions wifi; - FFstrbuf libPCI; FFstrbuf libVulkan; FFstrbuf libWayland; diff --git a/src/flashfetch.c b/src/flashfetch.c index 355238ac4..72e93cf56 100644 --- a/src/flashfetch.c +++ b/src/flashfetch.c @@ -7,63 +7,64 @@ int main(void) ffInitInstance(); //This also applys default configuration to instance.config //Modify instance.config here + FFOptionsModules* const options = &instance.config.modules; // ffPrepareCPUUsage(); - // ffPreparePublicIp(&instance.config.publicIP); - // ffPrepareWeather(&instance.config.weather); + // ffPreparePublicIp(&options->publicIP); + // ffPrepareWeather(&options->weather); //Does things like starting detection threads, disabling line wrap, etc ffStart(); //Printing - ffPrintTitle(&instance.config.title); - ffPrintSeparator(&instance.config.separator); - ffPrintOS(&instance.config.os); - ffPrintHost(&instance.config.host); - //ffPrintBios(&instance.config.bios); - //ffPrintBoard(&instance.config.board); - //ffPrintChassis(&instance.config.chassis); - ffPrintKernel(&instance.config.kernel); - //ffPrintProcesses(&instance.config.processes); - ffPrintUptime(&instance.config.uptime); - ffPrintPackages(&instance.config.packages); - ffPrintShell(&instance.config.shell); - ffPrintDisplay(&instance.config.display); - // ffPrintBrightness(&instance.config.brightness); - ffPrintDE(&instance.config.de); - ffPrintWM(&instance.config.wm); - ffPrintWMTheme(&instance.config.wmTheme); - ffPrintTheme(&instance.config.theme); - ffPrintIcons(&instance.config.icons); - ffPrintFont(&instance.config.font); - ffPrintCursor(&instance.config.cursor); - ffPrintTerminal(&instance.config.terminal); - ffPrintTerminalFont(&instance.config.terminalFont); - ffPrintCPU(&instance.config.cpu); - ffPrintGPU(&instance.config.gpu); - ffPrintMemory(&instance.config.memory); - ffPrintSwap(&instance.config.swap); - ffPrintDisk(&instance.config.disk); - ffPrintBattery(&instance.config.battery); - ffPrintPowerAdapter(&instance.config.powerAdapter); - //ffPrintPlayer(&instance.config.player); - //ffPrintMedia(&instance.config.media); - //ffPrintLocalIp(&instance.config.localIp); - //ffPrintPublicIp(&instance.config.publicIp); - //ffPrintWifi(&instance.config.wifi); - //ffPrintCPUUsage(&instance.config.cpuUsage); - ffPrintLocale(&instance.config.locale); - //ffPrintDateTime(&instance.config.dateTime); - //ffPrintVulkan(&instance.config.vulkan); - //ffPrintOpenGL(&instance.config.openGL); - //ffPrintOpenCL(&instance.config.openCL); - //ffPrintUsers(&instance.config.users); - //ffPrintWeather(&instance.config.weather); - //ffPrintBluetooth(&instance.config.bluetooth); - //ffPrintSound(&instance.config.sound); - //ffPrintGamepad(&instance.config.gamepad); - ffPrintBreak(&instance.config.break_); - ffPrintColors(&instance.config.colors); + ffPrintTitle(&options->title); + ffPrintSeparator(&options->separator); + ffPrintOS(&options->os); + ffPrintHost(&options->host); + //ffPrintBios(&options->bios); + //ffPrintBoard(&options->board); + //ffPrintChassis(&options->chassis); + ffPrintKernel(&options->kernel); + //ffPrintProcesses(&options->processes); + ffPrintUptime(&options->uptime); + ffPrintPackages(&options->packages); + ffPrintShell(&options->shell); + ffPrintDisplay(&options->display); + // ffPrintBrightness(&options->brightness); + ffPrintDE(&options->de); + ffPrintWM(&options->wm); + ffPrintWMTheme(&options->wmTheme); + ffPrintTheme(&options->theme); + ffPrintIcons(&options->icons); + ffPrintFont(&options->font); + ffPrintCursor(&options->cursor); + ffPrintTerminal(&options->terminal); + ffPrintTerminalFont(&options->terminalFont); + ffPrintCPU(&options->cpu); + ffPrintGPU(&options->gpu); + ffPrintMemory(&options->memory); + ffPrintSwap(&options->swap); + ffPrintDisk(&options->disk); + ffPrintBattery(&options->battery); + ffPrintPowerAdapter(&options->powerAdapter); + //ffPrintPlayer(&options->player); + //ffPrintMedia(&options->media); + //ffPrintLocalIp(&options->localIp); + //ffPrintPublicIp(&options->publicIp); + //ffPrintWifi(&options->wifi); + //ffPrintCPUUsage(&options->cpuUsage); + ffPrintLocale(&options->locale); + //ffPrintDateTime(&options->dateTime); + //ffPrintVulkan(&options->vulkan); + //ffPrintOpenGL(&options->openGL); + //ffPrintOpenCL(&options->openCL); + //ffPrintUsers(&options->users); + //ffPrintWeather(&options->weather); + //ffPrintBluetooth(&options->bluetooth); + //ffPrintSound(&options->sound); + //ffPrintGamepad(&options->gamepad); + ffPrintBreak(&options->break_); + ffPrintColors(&options->colors); ffFinish(); ffDestroyInstance(); diff --git a/src/modules/separator/separator.c b/src/modules/separator/separator.c index 1bcc8b192..56a245fac 100644 --- a/src/modules/separator/separator.c +++ b/src/modules/separator/separator.c @@ -21,7 +21,7 @@ static inline uint32_t getWcsWidth(const FFstrbuf* mbstr, wchar_t* wstr, mbstate void ffPrintSeparator(FFSeparatorOptions* options) { mbstate_t state = {}; - bool fqdn = instance.config.title.fqdn; + bool fqdn = instance.config.modules.title.fqdn; const FFPlatform* platform = &instance.state.platform; FF_AUTO_FREE wchar_t* wstr = malloc((max( diff --git a/src/options/modules.c b/src/options/modules.c new file mode 100644 index 000000000..2047abdde --- /dev/null +++ b/src/options/modules.c @@ -0,0 +1,124 @@ +#include "fastfetch.h" +#include "modules/modules.h" + +void ffOptionsInitModules(FFOptionsModules* options) +{ + ffInitBatteryOptions(&options->battery); + ffInitBiosOptions(&options->bios); + ffInitBluetoothOptions(&options->bluetooth); + ffInitBoardOptions(&options->board); + ffInitBreakOptions(&options->break_); + ffInitBrightnessOptions(&options->brightness); + ffInitCPUOptions(&options->cpu); + ffInitCPUUsageOptions(&options->cpuUsage); + ffInitChassisOptions(&options->chassis); + ffInitColorsOptions(&options->colors); + ffInitCommandOptions(&options->command); + ffInitCursorOptions(&options->cursor); + ffInitCustomOptions(&options->custom); + ffInitDEOptions(&options->de); + ffInitDateTimeOptions(&options->dateTime); + ffInitDiskOptions(&options->disk); + ffInitDiskIOOptions(&options->diskIo); + ffInitDisplayOptions(&options->display); + ffInitFontOptions(&options->font); + ffInitGPUOptions(&options->gpu); + ffInitGamepadOptions(&options->gamepad); + ffInitHostOptions(&options->host); + ffInitIconsOptions(&options->icons); + ffInitKernelOptions(&options->kernel); + ffInitLMOptions(&options->lm); + ffInitLocalIpOptions(&options->localIP); + ffInitLocaleOptions(&options->locale); + ffInitMediaOptions(&options->media); + ffInitMemoryOptions(&options->memory); + ffInitMonitorOptions(&options->monitor); + ffInitNetIOOptions(&options->netIo); + ffInitOSOptions(&options->os); + ffInitOpenCLOptions(&options->openCL); + ffInitOpenGLOptions(&options->openGL); + ffInitPackagesOptions(&options->packages); + ffInitPlayerOptions(&options->player); + ffInitPowerAdapterOptions(&options->powerAdapter); + ffInitProcessesOptions(&options->processes); + ffInitPublicIpOptions(&options->publicIP); + ffInitSeparatorOptions(&options->separator); + ffInitShellOptions(&options->shell); + ffInitSoundOptions(&options->sound); + ffInitSwapOptions(&options->swap); + ffInitTerminalFontOptions(&options->terminalFont); + ffInitTerminalOptions(&options->terminal); + ffInitTerminalSizeOptions(&options->terminalSize); + ffInitThemeOptions(&options->theme); + ffInitTitleOptions(&options->title); + ffInitUptimeOptions(&options->uptime); + ffInitUsersOptions(&options->users); + ffInitVersionOptions(&options->version); + ffInitVulkanOptions(&options->vulkan); + ffInitWMOptions(&options->wm); + ffInitWMThemeOptions(&options->wmTheme); + ffInitWallpaperOptions(&options->wallpaper); + ffInitWeatherOptions(&options->weather); + ffInitWifiOptions(&options->wifi); +} + +void ffOptionsDestroyModules(FFOptionsModules* options) +{ + ffDestroyBatteryOptions(&options->battery); + ffDestroyBiosOptions(&options->bios); + ffDestroyBluetoothOptions(&options->bluetooth); + ffDestroyBoardOptions(&options->board); + ffDestroyBreakOptions(&options->break_); + ffDestroyBrightnessOptions(&options->brightness); + ffDestroyCPUOptions(&options->cpu); + ffDestroyCPUUsageOptions(&options->cpuUsage); + ffDestroyChassisOptions(&options->chassis); + ffDestroyColorsOptions(&options->colors); + ffDestroyCommandOptions(&options->command); + ffDestroyCursorOptions(&options->cursor); + ffDestroyCustomOptions(&options->custom); + ffDestroyDEOptions(&options->de); + ffDestroyDateTimeOptions(&options->dateTime); + ffDestroyDiskOptions(&options->disk); + ffDestroyDiskIOOptions(&options->diskIo); + ffDestroyDisplayOptions(&options->display); + ffDestroyFontOptions(&options->font); + ffDestroyGPUOptions(&options->gpu); + ffDestroyGamepadOptions(&options->gamepad); + ffDestroyHostOptions(&options->host); + ffDestroyIconsOptions(&options->icons); + ffDestroyKernelOptions(&options->kernel); + ffDestroyLMOptions(&options->lm); + ffDestroyLocalIpOptions(&options->localIP); + ffDestroyLocaleOptions(&options->locale); + ffDestroyMediaOptions(&options->media); + ffDestroyMemoryOptions(&options->memory); + ffDestroyMonitorOptions(&options->monitor); + ffDestroyNetIOOptions(&options->netIo); + ffDestroyOSOptions(&options->os); + ffDestroyOpenCLOptions(&options->openCL); + ffDestroyOpenGLOptions(&options->openGL); + ffDestroyPackagesOptions(&options->packages); + ffDestroyPlayerOptions(&options->player); + ffDestroyPowerAdapterOptions(&options->powerAdapter); + ffDestroyProcessesOptions(&options->processes); + ffDestroyPublicIpOptions(&options->publicIP); + ffDestroySeparatorOptions(&options->separator); + ffDestroyShellOptions(&options->shell); + ffDestroySoundOptions(&options->sound); + ffDestroySwapOptions(&options->swap); + ffDestroyTerminalFontOptions(&options->terminalFont); + ffDestroyTerminalOptions(&options->terminal); + ffDestroyTerminalSizeOptions(&options->terminalSize); + ffDestroyThemeOptions(&options->theme); + ffDestroyTitleOptions(&options->title); + ffDestroyUptimeOptions(&options->uptime); + ffDestroyUsersOptions(&options->users); + ffDestroyVersionOptions(&options->version); + ffDestroyVulkanOptions(&options->vulkan); + ffDestroyWMOptions(&options->wm); + ffDestroyWMThemeOptions(&options->wmTheme); + ffDestroyWallpaperOptions(&options->wallpaper); + ffDestroyWeatherOptions(&options->weather); + ffDestroyWifiOptions(&options->wifi); +} diff --git a/src/options/modules.h b/src/options/modules.h new file mode 100644 index 000000000..66b4203c6 --- /dev/null +++ b/src/options/modules.h @@ -0,0 +1,67 @@ +#pragma once + +#include "modules/options.h" + +typedef struct FFOptionsModules +{ + FFBatteryOptions battery; + FFBiosOptions bios; + FFBluetoothOptions bluetooth; + FFBoardOptions board; + FFBreakOptions break_; + FFBrightnessOptions brightness; + FFCPUOptions cpu; + FFCPUUsageOptions cpuUsage; + FFChassisOptions chassis; + FFColorsOptions colors; + FFCommandOptions command; + FFCursorOptions cursor; + FFCustomOptions custom; + FFDEOptions de; + FFDateTimeOptions dateTime; + FFDiskOptions disk; + FFDiskIOOptions diskIo; + FFDisplayOptions display; + FFFontOptions font; + FFGPUOptions gpu; + FFGamepadOptions gamepad; + FFHostOptions host; + FFIconsOptions icons; + FFKernelOptions kernel; + FFLMOptions lm; + FFLocalIpOptions localIP; + FFLocaleOptions locale; + FFMediaOptions media; + FFMemoryOptions memory; + FFMonitorOptions monitor; + FFNetIOOptions netIo; + FFOSOptions os; + FFOpenCLOptions openCL; + FFOpenGLOptions openGL; + FFPackagesOptions packages; + FFPlayerOptions player; + FFPowerAdapterOptions powerAdapter; + FFProcessesOptions processes; + FFPublicIpOptions publicIP; + FFSeparatorOptions separator; + FFShellOptions shell; + FFSoundOptions sound; + FFSwapOptions swap; + FFTerminalFontOptions terminalFont; + FFTerminalOptions terminal; + FFTerminalSizeOptions terminalSize; + FFThemeOptions theme; + FFTitleOptions title; + FFUptimeOptions uptime; + FFUsersOptions users; + FFVersionOptions version; + FFVulkanOptions vulkan; + FFWMOptions wm; + FFWMThemeOptions wmTheme; + FFWallpaperOptions wallpaper; + FFWeatherOptions weather; + FFWifiOptions wifi; +} FFOptionsModules; + +void ffOptionsInitModules(FFOptionsModules* options); +void ffOptionsDestroyModules(FFOptionsModules* options);