Compare commits

..

2 Commits

Author SHA1 Message Date
TingPing
0c2501032e sysinfo: Strip trailing space on video card 2015-03-02 19:03:09 -05:00
TingPing
4f891e21b3 sysinfo: Add display resolution 2015-03-02 18:34:03 -05:00
7 changed files with 78 additions and 33 deletions

View File

@@ -26,6 +26,7 @@ char *sysinfo_backend_get_disk(void);
char *sysinfo_backend_get_memory(void); char *sysinfo_backend_get_memory(void);
char *sysinfo_backend_get_cpu(void); char *sysinfo_backend_get_cpu(void);
char *sysinfo_backend_get_gpu(void); char *sysinfo_backend_get_gpu(void);
char *sysinfo_backend_get_resolution (void);
char *sysinfo_backend_get_sound(void); char *sysinfo_backend_get_sound(void);
char *sysinfo_backend_get_uptime(void); char *sysinfo_backend_get_uptime(void);
char *sysinfo_backend_get_network(void); char *sysinfo_backend_get_network(void);

View File

@@ -64,6 +64,7 @@ static hwinfo hwinfos[] = {
{"memory", "Memory", sysinfo_backend_get_memory}, {"memory", "Memory", sysinfo_backend_get_memory},
{"storage", "Storage", sysinfo_backend_get_disk}, {"storage", "Storage", sysinfo_backend_get_disk},
{"vga", "VGA", sysinfo_backend_get_gpu}, {"vga", "VGA", sysinfo_backend_get_gpu},
{"display", "Display", sysinfo_backend_get_resolution, TRUE},
{"sound", "Sound", sysinfo_backend_get_sound, TRUE}, {"sound", "Sound", sysinfo_backend_get_sound, TRUE},
{"ethernet", "Ethernet", sysinfo_backend_get_network, TRUE}, {"ethernet", "Ethernet", sysinfo_backend_get_network, TRUE},
{"uptime", "Uptime", sysinfo_backend_get_uptime}, {"uptime", "Uptime", sysinfo_backend_get_uptime},

View File

@@ -42,6 +42,7 @@ typedef enum
QUERY_WMI_CPU, QUERY_WMI_CPU,
QUERY_WMI_VGA, QUERY_WMI_VGA,
QUERY_WMI_HDD, QUERY_WMI_HDD,
QUERY_WMI_RES,
} QueryWmiType; } QueryWmiType;
void print_info (void); void print_info (void);
@@ -49,6 +50,7 @@ int get_cpu_arch (void);
char *query_wmi (QueryWmiType mode); char *query_wmi (QueryWmiType mode);
char *read_os_name (IWbemClassObject *object); char *read_os_name (IWbemClassObject *object);
char *read_cpu_info (IWbemClassObject *object); char *read_cpu_info (IWbemClassObject *object);
char *read_res_info (IWbemClassObject *object);
char *read_vga_name (IWbemClassObject *object); char *read_vga_name (IWbemClassObject *object);
guint64 hdd_capacity; guint64 hdd_capacity;
@@ -117,6 +119,12 @@ sysinfo_backend_get_gpu (void)
return g_strdup (vga_name); return g_strdup (vga_name);
} }
char *
sysinfo_backend_get_resolution (void)
{
return query_wmi (QUERY_WMI_RES);
}
char * char *
sysinfo_backend_get_os (void) sysinfo_backend_get_os (void)
{ {
@@ -203,6 +211,9 @@ static char *query_wmi (QueryWmiType type)
case QUERY_WMI_HDD: case QUERY_WMI_HDD:
query = SysAllocString (L"SELECT Name, Capacity, FreeSpace FROM Win32_Volume"); query = SysAllocString (L"SELECT Name, Capacity, FreeSpace FROM Win32_Volume");
break; break;
case QUERY_WMI_RES:
query = SysAllocString (L"SELECT CurrentHorizontalResolution, CurrentVerticalResolution, CurrentRefreshRate FROM Win32_VideoController");
break;
default: default:
goto release_queryLanguageName; goto release_queryLanguageName;
} }
@@ -245,6 +256,10 @@ static char *query_wmi (QueryWmiType type)
line = read_hdd_info (object); line = read_hdd_info (object);
break; break;
case QUERY_WMI_RES:
line = read_res_info (object);
break;
default: default:
break; break;
} }
@@ -390,7 +405,43 @@ static char *read_vga_name (IWbemClassObject *object)
return NULL; return NULL;
} }
return name_utf8; return g_strchomp (name_utf8);
}
static char *read_res_info (IWbemClassObject *object)
{
HRESULT hr;
VARIANT variant;
guint64 xres, yres, rate;
hr = object->lpVtbl->Get (object, L"CurrentHorizontalResolution", 0, &variant, NULL, NULL);
if (FAILED (hr))
{
return NULL;
}
xres = variant_to_uint64 (&variant);
VariantClear (&variant);
hr = object->lpVtbl->Get (object, L"CurrentVerticalResolution", 0, &variant, NULL, NULL);
if (FAILED (hr))
{
return NULL;
}
yres = variant_to_uint64 (&variant);
VariantClear (&variant);
hr = object->lpVtbl->Get (object, L"CurrentRefreshRate", 0, &variant, NULL, NULL);
if (FAILED (hr))
{
return NULL;
}
rate = variant_to_uint64 (&variant);
VariantClear (&variant);
return g_strdup_printf ("%"G_GUINT64_FORMAT"x%"G_GUINT64_FORMAT" (%"G_GUINT64_FORMAT"Hz)", xres, yres, rate);
} }
static char *read_hdd_info (IWbemClassObject *object) static char *read_hdd_info (IWbemClassObject *object)
@@ -481,6 +532,9 @@ static guint64 variant_to_uint64 (VARIANT *variant)
{ {
switch (V_VT (variant)) switch (V_VT (variant))
{ {
case VT_I4:
return (guint64)MAX(variant->intVal, 0);
case VT_UI8: case VT_UI8:
return variant->ullVal; return variant->ullVal;

View File

@@ -257,39 +257,35 @@ lag_check (void)
GSList *list = serv_list; GSList *list = serv_list;
unsigned long tim; unsigned long tim;
char tbuf[128]; char tbuf[128];
time_t now = time(NULL); time_t now = time (0);
time_t lag;
tim = make_ping_time (); tim = make_ping_time ();
time_t ping_interval = 15;
time_t ping_timeout = 30;
if (prefs.hex_net_ping_timeout != 0)
{
ping_timeout = prefs.hex_net_ping_timeout;
ping_interval = ping_timeout/2;
}
while (list) while (list)
{ {
serv = list->data; serv = list->data;
if (serv->connected && serv->end_of_motd) if (serv->connected && serv->end_of_motd)
{ {
if(!serv->lag_sent && (now - serv->ping_recv) > ping_interval) lag = now - serv->ping_recv;
if (prefs.hex_net_ping_timeout != 0 && lag > prefs.hex_net_ping_timeout && lag > 0)
{
sprintf (tbuf, "%" G_GINT64_FORMAT, (gint64) lag);
EMIT_SIGNAL (XP_TE_PINGTIMEOUT, serv->server_session, tbuf, NULL,
NULL, NULL, 0);
if (prefs.hex_net_auto_reconnect)
serv->auto_reconnect (serv, FALSE, -1);
}
else
{ {
g_snprintf (tbuf, sizeof (tbuf), "LAG%lu", tim); g_snprintf (tbuf, sizeof (tbuf), "LAG%lu", tim);
serv->p_ping (serv, "", tbuf); serv->p_ping (serv, "", tbuf);
serv->lag_sent = tim;
fe_set_lag (serv, -1);
}
if (prefs.hex_net_ping_timeout != 0 && (now - serv->socket_recv) > ping_timeout) if (!serv->lag_sent)
{ {
sprintf (tbuf, "%" G_GINT64_FORMAT, (gint64) now - serv->socket_recv); serv->lag_sent = tim;
EMIT_SIGNAL (XP_TE_PINGTIMEOUT, serv->server_session, tbuf, NULL, fe_set_lag (serv, -1);
NULL, NULL, 0); }
if (prefs.hex_net_auto_reconnect)
serv->auto_reconnect (serv, FALSE, -1);
} }
} }
list = list->next; list = list->next;
@@ -370,11 +366,10 @@ hexchat_misc_checks (void) /* this gets called every 1/2 second */
if (count % 2) if (count % 2)
dcc_check_timeouts (); /* every 1 second */ dcc_check_timeouts (); /* every 1 second */
if (count % 2) /* every 1 second*/ if (count >= 60) /* every 30 seconds */
lag_check ();
if (count > 3600)
{ {
if (prefs.hex_gui_lagometer)
lag_check ();
count = 0; count = 0;
} }

View File

@@ -530,7 +530,6 @@ typedef struct server
/*time_t connect_time;*/ /* when did it connect? */ /*time_t connect_time;*/ /* when did it connect? */
unsigned long lag_sent; /* we are still waiting for this ping response*/ unsigned long lag_sent; /* we are still waiting for this ping response*/
time_t ping_recv; /* when we last got a ping reply */ time_t ping_recv; /* when we last got a ping reply */
time_t socket_recv; /* when we last received something from the socket */
time_t away_time; /* when we were marked away */ time_t away_time; /* when we were marked away */
char *encoding; char *encoding;

View File

@@ -314,8 +314,6 @@ server_read (GIOChannel *source, GIOCondition condition, server *serv)
return TRUE; return TRUE;
} }
serv->socket_recv = time (NULL);
i = 0; i = 0;
lbuf[len] = 0; lbuf[len] = 0;

View File

@@ -127,9 +127,6 @@ EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "external", "external", "{021EC1D0-FF67-4700-9AB2-EAABF1159C09}" Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "external", "external", "{021EC1D0-FF67-4700-9AB2-EAABF1159C09}"
EndProject EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libenchant_win8", "..\src\libenchant_win8\libenchant_win8.vcxproj", "{BF0EBC16-68AD-4CD1-864C-5B56836EBE2A}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libenchant_win8", "..\src\libenchant_win8\libenchant_win8.vcxproj", "{BF0EBC16-68AD-4CD1-864C-5B56836EBE2A}"
ProjectSection(ProjectDependencies) = postProject
{87554B59-006C-4D94-9714-897B27067BA3} = {87554B59-006C-4D94-9714-897B27067BA3}
EndProjectSection
EndProject EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution