Options (Modules): split code

This commit is contained in:
李通洲
2023-10-25 15:38:46 +08:00
parent ca37206a49
commit 3c5b002414
10 changed files with 318 additions and 297 deletions
+1
View File
@@ -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
+5 -4
View File
@@ -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);
}
}
+2 -118
View File
@@ -15,8 +15,6 @@
#include <signal.h>
#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);
+8 -8
View File
@@ -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;
}
+57 -57
View File
@@ -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,
};
+2 -59
View File
@@ -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;
+51 -50
View File
@@ -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();
+1 -1
View File
@@ -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(
+124
View File
@@ -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);
}
+67
View File
@@ -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);