#pragma once #ifndef FASTFETCH_INCLUDED #define FASTFETCH_INCLUDED #include "fastfetch_config.h" #include #include #ifdef FF_USE_SYSTEM_YYJSON #include #else #include "3rdparty/yyjson/yyjson.h" #endif #ifdef _MSC_VER #define __attribute__(x) #endif #include "util/FFstrbuf.h" #include "util/FFlist.h" #include "util/platform/FFPlatform.h" #include "util/unused.h" #include "options/modules.h" #include "options/logo.h" #include "options/display.h" #include "options/general.h" #include "options/library.h" typedef struct FFconfig { FFOptionsLogo logo; FFOptionsDisplay display; FFOptionsGeneral general; FFOptionsModules modules; FFOptionsLibrary library; } FFconfig; typedef struct FFstate { uint32_t logoWidth; uint32_t logoHeight; uint32_t keysHeight; FFPlatform platform; yyjson_doc* configDoc; yyjson_mut_doc* resultDoc; FFstrbuf migrateConfigPath; } FFstate; typedef struct FFinstance { FFconfig config; FFstate state; } FFinstance; extern FFinstance instance; // Defined in `common/init.c` extern FFModuleBaseInfo** ffModuleInfos[]; ////////////////////// // Init functions // ////////////////////// //common/init.c void ffInitInstance(); void ffStart(); void ffFinish(); void ffDestroyInstance(); void ffListFeatures(); //////////////////// // Logo functions // //////////////////// void ffLogoPrint(); void ffLogoPrintRemaining(); void ffLogoPrintLine(); void ffLogoBuiltinPrint(); void ffLogoBuiltinList(); void ffLogoBuiltinListAutocompletion(); #endif