mirror of
https://github.com/fastfetch-cli/fastfetch.git
synced 2026-09-13 02:42:09 +02:00
Wifi: print signal quality
This commit is contained in:
@@ -8,4 +8,6 @@ typedef struct FFWifiOptions
|
||||
{
|
||||
FFModuleBaseInfo moduleInfo;
|
||||
FFModuleArgs moduleArgs;
|
||||
|
||||
FFColorRangeConfig percent;
|
||||
} FFWifiOptions;
|
||||
|
||||
+56
-10
@@ -4,7 +4,7 @@
|
||||
#include "modules/wifi/wifi.h"
|
||||
#include "util/stringUtils.h"
|
||||
|
||||
#define FF_WIFI_NUM_FORMAT_ARGS 10
|
||||
#define FF_WIFI_NUM_FORMAT_ARGS 11
|
||||
|
||||
void ffPrintWifi(FFWifiOptions* options)
|
||||
{
|
||||
@@ -30,22 +30,56 @@ void ffPrintWifi(FFWifiOptions* options)
|
||||
if(options->moduleArgs.outputFormat.length == 0)
|
||||
{
|
||||
ffPrintLogoAndKey(FF_WIFI_MODULE_NAME, moduleIndex, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
|
||||
|
||||
FF_STRBUF_AUTO_DESTROY buffer = ffStrbufCreate();
|
||||
if(item->conn.ssid.length)
|
||||
{
|
||||
ffStrbufWriteTo(&item->conn.ssid, stdout);
|
||||
if(item->conn.protocol.length)
|
||||
printf(" - %s", item->conn.protocol.chars);
|
||||
if(item->conn.security.length)
|
||||
printf(" - %s", item->conn.security.chars);
|
||||
putchar('\n');
|
||||
if(item->conn.signalQuality == item->conn.signalQuality)
|
||||
{
|
||||
if(instance.config.display.percentType & FF_PERCENTAGE_TYPE_BAR_BIT)
|
||||
{
|
||||
ffPercentAppendBar(&buffer, item->conn.signalQuality, options->percent, &options->moduleArgs);
|
||||
ffStrbufAppendC(&buffer, ' ');
|
||||
}
|
||||
}
|
||||
|
||||
if (!(instance.config.display.percentType & FF_PERCENTAGE_TYPE_HIDE_OTHERS_BIT))
|
||||
{
|
||||
ffStrbufAppend(&buffer, &item->conn.ssid);
|
||||
|
||||
if(item->conn.protocol.length)
|
||||
{
|
||||
ffStrbufAppendS(&buffer, " - ");
|
||||
ffStrbufAppend(&buffer, &item->conn.protocol);
|
||||
}
|
||||
if(item->conn.security.length)
|
||||
{
|
||||
ffStrbufAppendS(&buffer, " - ");
|
||||
ffStrbufAppend(&buffer, &item->conn.security);
|
||||
}
|
||||
ffStrbufAppendC(&buffer, ' ');
|
||||
}
|
||||
|
||||
if(item->conn.signalQuality == item->conn.signalQuality)
|
||||
{
|
||||
if(instance.config.display.percentType & FF_PERCENTAGE_TYPE_NUM_BIT)
|
||||
ffPercentAppendNum(&buffer, item->conn.signalQuality, options->percent, buffer.length > 0, &options->moduleArgs);
|
||||
}
|
||||
|
||||
ffStrbufTrimRight(&buffer, ' ');
|
||||
}
|
||||
else
|
||||
{
|
||||
puts(item->inf.status.chars);
|
||||
ffStrbufAppend(&buffer, &item->inf.status);
|
||||
}
|
||||
ffStrbufPutTo(&buffer, stdout);
|
||||
}
|
||||
else
|
||||
{
|
||||
FF_STRBUF_AUTO_DESTROY percentNum = ffStrbufCreate();
|
||||
ffPercentAppendNum(&percentNum, item->conn.signalQuality, options->percent, false, &options->moduleArgs);
|
||||
FF_STRBUF_AUTO_DESTROY percentBar = ffStrbufCreate();
|
||||
ffPercentAppendBar(&percentBar, item->conn.signalQuality, options->percent, &options->moduleArgs);
|
||||
FF_PRINT_FORMAT_CHECKED(FF_WIFI_MODULE_NAME, moduleIndex, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, FF_WIFI_NUM_FORMAT_ARGS, ((FFformatarg[]){
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, &item->inf.description, "inf-desc"},
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, &item->inf.status, "inf-status"},
|
||||
@@ -53,10 +87,11 @@ void ffPrintWifi(FFWifiOptions* options)
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, &item->conn.ssid, "ssid"},
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, &item->conn.macAddress, "mac-address"},
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, &item->conn.protocol, "protocol"},
|
||||
{FF_FORMAT_ARG_TYPE_DOUBLE, &item->conn.signalQuality, "signal-quality"},
|
||||
{FF_FORMAT_ARG_TYPE_DOUBLE, &percentNum, "signal-quality"},
|
||||
{FF_FORMAT_ARG_TYPE_DOUBLE, &item->conn.rxRate, "rx-rate"},
|
||||
{FF_FORMAT_ARG_TYPE_DOUBLE, &item->conn.txRate, "tx-rate"},
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, &item->conn.security, "security"},
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, &percentBar, "signal-quality-bar"},
|
||||
}));
|
||||
}
|
||||
|
||||
@@ -77,6 +112,9 @@ bool ffParseWifiCommandOptions(FFWifiOptions* options, const char* key, const ch
|
||||
if (ffOptionParseModuleArgs(key, subKey, value, &options->moduleArgs))
|
||||
return true;
|
||||
|
||||
if (ffPercentParseCommandOptions(key, subKey, value, &options->percent))
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -93,6 +131,9 @@ void ffParseWifiJsonObject(FFWifiOptions* options, yyjson_val* module)
|
||||
if (ffJsonConfigParseModuleArgs(key, val, &options->moduleArgs))
|
||||
continue;
|
||||
|
||||
if (ffPercentParseJsonObject(key, val, &options->percent))
|
||||
continue;
|
||||
|
||||
ffPrintError(FF_WIFI_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Unknown JSON key %s", key);
|
||||
}
|
||||
}
|
||||
@@ -103,6 +144,8 @@ void ffGenerateWifiJsonConfig(FFWifiOptions* options, yyjson_mut_doc* doc, yyjso
|
||||
ffInitWifiOptions(&defaultOptions);
|
||||
|
||||
ffJsonConfigGenerateModuleArgsConfig(doc, module, &defaultOptions.moduleArgs, &options->moduleArgs);
|
||||
|
||||
ffPercentGenerateJsonConfig(doc, module, defaultOptions.percent, options->percent);
|
||||
}
|
||||
|
||||
void ffGenerateWifiJsonResult(FF_MAYBE_UNUSED FFWifiOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module)
|
||||
@@ -156,10 +199,11 @@ void ffPrintWifiHelpFormat(void)
|
||||
"Connection SSID - ssid",
|
||||
"Connection BSSID - bssid",
|
||||
"Connection protocol - protocol",
|
||||
"Connection signal quality (percentage) - signal-quality",
|
||||
"Connection signal quality (percentage num) - signal-quality",
|
||||
"Connection RX rate - rx-rate",
|
||||
"Connection TX rate - tx-rate",
|
||||
"Connection Security algorithm - security",
|
||||
"Connection signal quality (percentage bar) - signal-quality-bar",
|
||||
}));
|
||||
}
|
||||
|
||||
@@ -177,6 +221,8 @@ void ffInitWifiOptions(FFWifiOptions* options)
|
||||
ffGenerateWifiJsonConfig
|
||||
);
|
||||
ffOptionInitModuleArg(&options->moduleArgs);
|
||||
|
||||
options->percent = (FFColorRangeConfig) { 50, 20 };
|
||||
}
|
||||
|
||||
void ffDestroyWifiOptions(FFWifiOptions* options)
|
||||
|
||||
Reference in New Issue
Block a user