mirror of
https://github.com/fastfetch-cli/fastfetch.git
synced 2026-11-08 22:20:17 +01:00
Options (Modules): split code
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
@@ -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);
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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();
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
@@ -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);
|
||||
Reference in New Issue
Block a user