mirror of
https://github.com/fastfetch-cli/fastfetch.git
synced 2026-09-13 02:14:37 +02:00
Wifi (Android): report more props
This commit is contained in:
@@ -29,3 +29,15 @@ typedef struct FFWifiResult
|
||||
} FFWifiResult;
|
||||
|
||||
const char* ffDetectWifi(FFlist* result /*list of FFWifiItem*/);
|
||||
|
||||
static inline uint16_t ffWifiFreqToChannel(uint16_t frequency)
|
||||
{
|
||||
// https://github.com/opetryna/win32wifi/blob/master/win32wifi/Win32Wifi.py#L140
|
||||
// FIXME: Does it work for 6 GHz?
|
||||
if (frequency == 2484)
|
||||
return 14;
|
||||
else if (frequency < 2484)
|
||||
return (uint16_t) (frequency - 2407) / 5;
|
||||
else
|
||||
return (frequency / 5) - 1000;
|
||||
}
|
||||
|
||||
@@ -62,6 +62,9 @@ const char* ffDetectWifi(FFlist* result)
|
||||
ffStrbufAppendS(&item->inf.description, yyjson_get_str(yyjson_obj_get(root, "ip")));
|
||||
ffStrbufAppendS(&item->conn.bssid, yyjson_get_str(yyjson_obj_get(root, "bssid")));
|
||||
ffStrbufAppendS(&item->conn.ssid, yyjson_get_str(yyjson_obj_get(root, "ssid")));
|
||||
item->conn.frequency = yyjson_get_int(yyjson_obj_get(root, "frequency_mhz"));
|
||||
item->conn.txRate = yyjson_get_num(yyjson_obj_get(root, "link_speed_mbps"));
|
||||
item->conn.channel = ffWifiFreqToChannel(item->conn.frequency);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -43,18 +43,6 @@ typedef enum {
|
||||
continue; \
|
||||
}
|
||||
|
||||
static uint16_t freq2channel(uint16_t frequency)
|
||||
{
|
||||
// https://github.com/opetryna/win32wifi/blob/master/win32wifi/Win32Wifi.py#L140
|
||||
// FIXME: Does it work for 6 GHz?
|
||||
if (frequency == 2484)
|
||||
return 14;
|
||||
else if (frequency < 2484)
|
||||
return (uint16_t) (frequency - 2407) / 5;
|
||||
else
|
||||
return (frequency / 5) - 1000;
|
||||
}
|
||||
|
||||
static const char* detectWifiWithNm(FFWifiResult* item, FFstrbuf* buffer)
|
||||
{
|
||||
FFDBusData dbus;
|
||||
@@ -151,7 +139,7 @@ static const char* detectWifiWithNm(FFWifiResult* item, FFstrbuf* buffer)
|
||||
{
|
||||
item->conn.frequency = (uint16_t) frequency;
|
||||
if (item->conn.channel == 0)
|
||||
item->conn.channel = freq2channel(item->conn.frequency);
|
||||
item->conn.channel = ffWifiFreqToChannel(item->conn.frequency);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -253,7 +241,7 @@ static const char* detectWifiWithIw(FFWifiResult* item, FFstrbuf* buffer)
|
||||
if(ffParsePropLines(output.chars, "freq: ", buffer))
|
||||
{
|
||||
item->conn.frequency = (uint16_t) ffStrbufToUInt(buffer, 0);
|
||||
item->conn.channel = freq2channel(item->conn.frequency);
|
||||
item->conn.channel = ffWifiFreqToChannel(item->conn.frequency);
|
||||
}
|
||||
|
||||
return NULL;
|
||||
@@ -321,7 +309,7 @@ static const char* detectWifiWithIoctls(FFWifiResult* item)
|
||||
iwr.u.freq.e--;
|
||||
}
|
||||
item->conn.frequency = (uint16_t) iwr.u.freq.m;
|
||||
item->conn.channel = freq2channel(item->conn.frequency);
|
||||
item->conn.channel = ffWifiFreqToChannel(item->conn.frequency);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user