mirror of
https://github.com/moparisthebest/hexchat
synced 2024-12-01 13:42:16 -05:00
Add Arch patches to SysInfo-Unix and rebrand it
This commit is contained in:
parent
187351fa61
commit
bc57507a4c
@ -415,6 +415,8 @@ int xs_parse_distro(char *name)
|
|||||||
fgets(buffer, bsize, fp);
|
fgets(buffer, bsize, fp);
|
||||||
else if((fp = fopen("/etc/turbolinux-release", "r")) != NULL)
|
else if((fp = fopen("/etc/turbolinux-release", "r")) != NULL)
|
||||||
fgets(buffer, bsize, fp);
|
fgets(buffer, bsize, fp);
|
||||||
|
else if((fp = fopen("/etc/arch-release", "r")) != NULL)
|
||||||
|
snprintf(buffer, bsize, "ArchLinux");
|
||||||
else
|
else
|
||||||
snprintf(buffer, bsize, "Unknown Distro");
|
snprintf(buffer, bsize, "Unknown Distro");
|
||||||
if(fp != NULL) fclose(fp);
|
if(fp != NULL) fclose(fp);
|
||||||
|
@ -33,7 +33,6 @@ int xs_parse_meminfo(unsigned long long *mem_tot, unsigned long long *mem_free,
|
|||||||
int xs_parse_video(char *vid_card);
|
int xs_parse_video(char *vid_card);
|
||||||
int xs_parse_agpbridge(char *agp_bridge);
|
int xs_parse_agpbridge(char *agp_bridge);
|
||||||
int xs_parse_ether(char *ethernet_card);
|
int xs_parse_ether(char *ethernet_card);
|
||||||
int xs_parse_xmms_info(char **title, unsigned int *songtime, unsigned int *playtime);
|
|
||||||
int xs_parse_distro(char *name);
|
int xs_parse_distro(char *name);
|
||||||
int xs_parse_hwmon_chip(char *chip);
|
int xs_parse_hwmon_chip(char *chip);
|
||||||
int xs_parse_hwmon_temp(char *temp, unsigned int *sensor);
|
int xs_parse_hwmon_temp(char *temp, unsigned int *sensor);
|
||||||
|
@ -10,7 +10,6 @@ VER_MINOR = 2
|
|||||||
VER_PATCH = 0
|
VER_PATCH = 0
|
||||||
CC = gcc
|
CC = gcc
|
||||||
CFLAGS += -O2 -Wall -fPIC
|
CFLAGS += -O2 -Wall -fPIC
|
||||||
CFLAGS += $(shell pkg-config dbus-1 --cflags) $(shell pkg-config glib-2.0 --cflags)
|
|
||||||
CFLAGS += -DVER_MINOR=$(VER_MINOR) -DVER_MAJOR=$(VER_MAJOR) -DVER_PATCH=$(VER_PATCH) \
|
CFLAGS += -DVER_MINOR=$(VER_MINOR) -DVER_MAJOR=$(VER_MAJOR) -DVER_PATCH=$(VER_PATCH) \
|
||||||
-DVER_STRING=\"$(VER_MAJOR).$(VER_MINOR).$(VER_PATCH)\" -DPCIIDS=\"$(PCIIDS)\" $(BUTTON)
|
-DVER_STRING=\"$(VER_MAJOR).$(VER_MINOR).$(VER_PATCH)\" -DPCIIDS=\"$(PCIIDS)\" $(BUTTON)
|
||||||
LDFLAGS = $(CFLAGS) -shared
|
LDFLAGS = $(CFLAGS) -shared
|
||||||
@ -20,7 +19,7 @@ OBJECTS = xsys.o parse.o pci.o match.o hwmon.o
|
|||||||
ALL : $(LIBRARY)
|
ALL : $(LIBRARY)
|
||||||
|
|
||||||
$(LIBRARY) : $(OBJECTS)
|
$(LIBRARY) : $(OBJECTS)
|
||||||
$(CC) $(LDFLAGS) -o $(LIBRARY) $(OBJECTS) -lpci $(shell pkg-config dbus-1 --libs) $(shell pkg-config glib-2.0 --libs) -laudclient
|
$(CC) $(LDFLAGS) -o $(LIBRARY) $(OBJECTS) -lpci
|
||||||
|
|
||||||
xsys.o : xsys.c
|
xsys.o : xsys.c
|
||||||
parse.o : parse.c
|
parse.o : parse.c
|
||||||
|
@ -28,24 +28,19 @@
|
|||||||
#include "parse.h"
|
#include "parse.h"
|
||||||
#include "match.h"
|
#include "match.h"
|
||||||
#include "xsys.h"
|
#include "xsys.h"
|
||||||
#include <audacious/dbus.h>
|
|
||||||
#include <audacious/audctrl.h>
|
|
||||||
|
|
||||||
static xchat_plugin *ph;
|
static xchat_plugin *ph;
|
||||||
|
|
||||||
|
static char name[] = "SysInfo";
|
||||||
|
static char desc[] = "Display info about your hardware and OS";
|
||||||
static char format[bsize] = "%B%1%B[%2]";
|
static char format[bsize] = "%B%1%B[%2]";
|
||||||
static char playing[42] = "now_playing";
|
|
||||||
unsigned int percentages = 1;
|
unsigned int percentages = 1;
|
||||||
static unsigned int action = 0;
|
|
||||||
|
|
||||||
static void load_config();
|
static void load_config();
|
||||||
static void save_config();
|
static void save_config();
|
||||||
static gboolean dbus_init(void);
|
|
||||||
|
|
||||||
static int format_cb (char *word[], char *word_eol[], void *userdata);
|
static int format_cb (char *word[], char *word_eol[], void *userdata);
|
||||||
static int playing_cb (char *word[], char *word_eol[], void *userdata);
|
|
||||||
static int percentages_cb (char *word[], char *word_eol[], void *userdata);
|
static int percentages_cb (char *word[], char *word_eol[], void *userdata);
|
||||||
static int action_cb (char *word[], char *word_eol[], void *userdata);
|
|
||||||
static int sysinfo_cb (char *word[], char *word_eol[], void *userdata);
|
static int sysinfo_cb (char *word[], char *word_eol[], void *userdata);
|
||||||
static int xsys_cb (char *word[], char *word_eol[], void *userdata);
|
static int xsys_cb (char *word[], char *word_eol[], void *userdata);
|
||||||
static int cpuinfo_cb (char *word[], char *word_eol[], void *userdata);
|
static int cpuinfo_cb (char *word[], char *word_eol[], void *userdata);
|
||||||
@ -62,22 +57,17 @@ static int distro_cb (char *word[], char *word_eol[], void *userdata);
|
|||||||
#if 0
|
#if 0
|
||||||
static int hwmon_cb (char *word[], char *word_eol[], void *userdata);
|
static int hwmon_cb (char *word[], char *word_eol[], void *userdata);
|
||||||
#endif
|
#endif
|
||||||
static int np_cb (char *word[], char *word_eol[], void *userdata);
|
|
||||||
static DBusGProxy *dbus_proxy = NULL;
|
|
||||||
static DBusGConnection *connection = NULL;
|
|
||||||
|
|
||||||
int xchat_plugin_init(xchat_plugin *plugin_handle, char **plugin_name,
|
int xchat_plugin_init(xchat_plugin *plugin_handle, char **plugin_name,
|
||||||
char **plugin_desc, char **plugin_version, char *arg)
|
char **plugin_desc, char **plugin_version, char *arg)
|
||||||
{
|
{
|
||||||
ph = plugin_handle;
|
ph = plugin_handle;
|
||||||
*plugin_name = "X-Sys_2";
|
*plugin_name = name;
|
||||||
*plugin_desc = "A sysinfo/audacious plugin";
|
*plugin_desc = desc;
|
||||||
*plugin_version = VER_STRING;
|
*plugin_version = VER_STRING;
|
||||||
|
|
||||||
xchat_hook_command(ph, "XSYS2FORMAT",XCHAT_PRI_NORM, format_cb, NULL, NULL);
|
xchat_hook_command(ph, "XSYS2FORMAT",XCHAT_PRI_NORM, format_cb, NULL, NULL);
|
||||||
xchat_hook_command(ph, "PLAYING", XCHAT_PRI_NORM, playing_cb, NULL, NULL);
|
|
||||||
xchat_hook_command(ph, "PERCENTAGES",XCHAT_PRI_NORM, percentages_cb, NULL, NULL);
|
xchat_hook_command(ph, "PERCENTAGES",XCHAT_PRI_NORM, percentages_cb, NULL, NULL);
|
||||||
xchat_hook_command(ph, "NPACTION", XCHAT_PRI_NORM, action_cb, NULL, NULL);
|
|
||||||
xchat_hook_command(ph, "SYSINFO", XCHAT_PRI_NORM, sysinfo_cb, NULL, (void *) 0);
|
xchat_hook_command(ph, "SYSINFO", XCHAT_PRI_NORM, sysinfo_cb, NULL, (void *) 0);
|
||||||
xchat_hook_command(ph, "ESYSINFO", XCHAT_PRI_NORM, sysinfo_cb, NULL, (void *) 1);
|
xchat_hook_command(ph, "ESYSINFO", XCHAT_PRI_NORM, sysinfo_cb, NULL, (void *) 1);
|
||||||
xchat_hook_command(ph, "XSYS", XCHAT_PRI_NORM, xsys_cb, NULL, (void *) 0);
|
xchat_hook_command(ph, "XSYS", XCHAT_PRI_NORM, xsys_cb, NULL, (void *) 0);
|
||||||
@ -108,25 +98,13 @@ int xchat_plugin_init(xchat_plugin *plugin_handle, char **plugin_name,
|
|||||||
xchat_hook_command(ph, "HWMON", XCHAT_PRI_NORM, hwmon_cb, NULL, (void *) 0);
|
xchat_hook_command(ph, "HWMON", XCHAT_PRI_NORM, hwmon_cb, NULL, (void *) 0);
|
||||||
xchat_hook_command(ph, "EHWMON", XCHAT_PRI_NORM, hwmon_cb, NULL, (void *) 1);
|
xchat_hook_command(ph, "EHWMON", XCHAT_PRI_NORM, hwmon_cb, NULL, (void *) 1);
|
||||||
#endif
|
#endif
|
||||||
if (dbus_init())
|
|
||||||
{
|
|
||||||
xchat_hook_command(ph, "NP", XCHAT_PRI_NORM, np_cb, NULL, (void *) 0);
|
|
||||||
xchat_hook_command(ph, "ENP", XCHAT_PRI_NORM, np_cb, NULL, (void *) 1);
|
|
||||||
xchat_printf(ph, "D-Bus MPRIS support initialized", VER_STRING);
|
|
||||||
}
|
|
||||||
|
|
||||||
load_config();
|
load_config();
|
||||||
|
|
||||||
xchat_printf(ph, "X-Sys %s Loaded Succesfully", VER_STRING);
|
xchat_printf (ph, "%s plugin loaded\n", name);
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void xchat_plugin_deinit()
|
|
||||||
{
|
|
||||||
/* blahblahblah */
|
|
||||||
}
|
|
||||||
|
|
||||||
static void save_config()
|
static void save_config()
|
||||||
{
|
{
|
||||||
FILE *fp;
|
FILE *fp;
|
||||||
@ -139,9 +117,7 @@ static void save_config()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
fprintf(fp, "format: %s\n", format);
|
fprintf(fp, "format: %s\n", format);
|
||||||
fprintf(fp, "playing: %s\n", playing);
|
|
||||||
fprintf(fp, "percentages: %i\n", percentages);
|
fprintf(fp, "percentages: %i\n", percentages);
|
||||||
fprintf(fp, "action: %i\n", action);
|
|
||||||
fclose(fp);
|
fclose(fp);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -158,30 +134,11 @@ static void load_config()
|
|||||||
while(fgets(buffer, bsize, fp) != NULL)
|
while(fgets(buffer, bsize, fp) != NULL)
|
||||||
{
|
{
|
||||||
find_match_char(buffer, "format", format);
|
find_match_char(buffer, "format", format);
|
||||||
find_match_char(buffer, "playing", playing);
|
|
||||||
find_match_int(buffer, "percentages", &percentages);
|
find_match_int(buffer, "percentages", &percentages);
|
||||||
find_match_int(buffer, "action", &action);
|
|
||||||
}
|
}
|
||||||
fclose(fp);
|
fclose(fp);
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean dbus_init(void)
|
|
||||||
{
|
|
||||||
GError *error = NULL;
|
|
||||||
|
|
||||||
connection = dbus_g_bus_get(DBUS_BUS_SESSION, &error);
|
|
||||||
if (connection == NULL)
|
|
||||||
return FALSE;
|
|
||||||
|
|
||||||
dbus_proxy = dbus_g_proxy_new_for_name(connection, AUDACIOUS_DBUS_SERVICE,
|
|
||||||
AUDACIOUS_DBUS_PATH,
|
|
||||||
AUDACIOUS_DBUS_INTERFACE);
|
|
||||||
if (dbus_proxy == NULL)
|
|
||||||
return FALSE;
|
|
||||||
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int format_cb(char *word[], char *word_eol[], void *userdata)
|
static int format_cb(char *word[], char *word_eol[], void *userdata)
|
||||||
{
|
{
|
||||||
if(*(word[2]) == '\0')
|
if(*(word[2]) == '\0')
|
||||||
@ -194,18 +151,6 @@ static int format_cb(char *word[], char *word_eol[], void *userdata)
|
|||||||
return XCHAT_EAT_ALL;
|
return XCHAT_EAT_ALL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int playing_cb(char *word[], char *word_eol[], void *userdata)
|
|
||||||
{
|
|
||||||
if(*(word[2]) == '\0')
|
|
||||||
xchat_printf(ph, "Current playing string:\n%s", playing);
|
|
||||||
else
|
|
||||||
{
|
|
||||||
strncpy(playing, word_eol[2], 42);
|
|
||||||
save_config();
|
|
||||||
}
|
|
||||||
return XCHAT_EAT_ALL;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int percentages_cb(char *word[], char *word_eol[], void *userdata)
|
static int percentages_cb(char *word[], char *word_eol[], void *userdata)
|
||||||
{
|
{
|
||||||
if(*(word[2]) == '\0')
|
if(*(word[2]) == '\0')
|
||||||
@ -221,21 +166,6 @@ static int percentages_cb(char *word[], char *word_eol[], void *userdata)
|
|||||||
return XCHAT_EAT_ALL;
|
return XCHAT_EAT_ALL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int action_cb(char *word[], char *word_eol[], void *userdata)
|
|
||||||
{
|
|
||||||
if(*(word[2]) == '\0')
|
|
||||||
if (action != 0)
|
|
||||||
xchat_printf(ph, "Now playing action currently enabled");
|
|
||||||
else
|
|
||||||
xchat_printf(ph, "Now playing action currently disabled");
|
|
||||||
else
|
|
||||||
{
|
|
||||||
action = atoi(word[2]);
|
|
||||||
save_config();
|
|
||||||
}
|
|
||||||
return XCHAT_EAT_ALL;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int sysinfo_cb(char *word[], char *word_eol[], void *userdata)
|
static int sysinfo_cb(char *word[], char *word_eol[], void *userdata)
|
||||||
{
|
{
|
||||||
char sysinfo[bsize], buffer[bsize], cpu_model[bsize], cpu_cache[bsize], cpu_vendor[bsize];
|
char sysinfo[bsize], buffer[bsize], cpu_model[bsize], cpu_cache[bsize], cpu_vendor[bsize];
|
||||||
@ -331,9 +261,9 @@ static int sysinfo_cb(char *word[], char *word_eol[], void *userdata)
|
|||||||
static int xsys_cb(char *word[], char *word_eol[], void *userdata)
|
static int xsys_cb(char *word[], char *word_eol[], void *userdata)
|
||||||
{
|
{
|
||||||
if((long)userdata)
|
if((long)userdata)
|
||||||
xchat_printf(ph, "You are using X-Sys v%s (http://dev.gentoo.org/~chainsaw/xsys)", VER_STRING);
|
xchat_printf(ph, "You are using %s v%s (http://dev.gentoo.org/~chainsaw/xsys)", name, VER_STRING);
|
||||||
else
|
else
|
||||||
xchat_commandf(ph, "me is using X-Sys v%s (http://dev.gentoo.org/~chainsaw/xsys)", VER_STRING);
|
xchat_commandf(ph, "me is using %s v%s (http://dev.gentoo.org/~chainsaw/xsys)", name, VER_STRING);
|
||||||
|
|
||||||
return XCHAT_EAT_ALL;
|
return XCHAT_EAT_ALL;
|
||||||
}
|
}
|
||||||
@ -683,52 +613,3 @@ static int hwmon_cb(char *word[], char *word_eol[], void *userdata)
|
|||||||
return XCHAT_EAT_ALL;
|
return XCHAT_EAT_ALL;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static int np_cb(char *word[], char *word_eol[], void *userdata)
|
|
||||||
{
|
|
||||||
char *buffer = NULL, title[bsize], length[42];
|
|
||||||
int pos, len, p = audacious_remote_get_playlist_pos(dbus_proxy);
|
|
||||||
|
|
||||||
if (!audacious_remote_is_running(dbus_proxy))
|
|
||||||
{
|
|
||||||
xchat_printf(ph, "Audacious is not currently running");
|
|
||||||
return XCHAT_EAT_ALL;
|
|
||||||
}
|
|
||||||
|
|
||||||
pos = audacious_remote_get_output_time(dbus_proxy);
|
|
||||||
len = audacious_remote_get_playlist_time(dbus_proxy, p);
|
|
||||||
buffer = decruft_filename(audacious_remote_get_playlist_title(dbus_proxy, p));
|
|
||||||
|
|
||||||
strncpy(title, buffer, bsize);
|
|
||||||
|
|
||||||
if (action != 0)
|
|
||||||
flat_format_output(playing, title, format);
|
|
||||||
else
|
|
||||||
format_output(playing, title, format);
|
|
||||||
strcat(title, "\017 ");
|
|
||||||
|
|
||||||
if(len == -1)
|
|
||||||
snprintf(length, 42, "%d:%02d/stream",
|
|
||||||
((pos/1000)-((pos/1000)%60))/60, (pos/1000)%60);
|
|
||||||
else
|
|
||||||
snprintf(length, 42, "%d:%02d/%d:%02d",
|
|
||||||
((pos/1000)-((pos/1000)%60))/60, (pos/1000)%60,
|
|
||||||
((len/1000)-((len/1000)%60))/60, (len/1000)%60);
|
|
||||||
|
|
||||||
if (action != 0)
|
|
||||||
flat_format_output("length", length, format);
|
|
||||||
else
|
|
||||||
format_output("length", length, format);
|
|
||||||
strncat(title, length, bsize);
|
|
||||||
|
|
||||||
if ((action != 0) && (long)userdata)
|
|
||||||
xchat_printf(ph, "You are %s", title);
|
|
||||||
else if (action != 0)
|
|
||||||
xchat_commandf(ph, "me is %s", title);
|
|
||||||
else if ((long)userdata)
|
|
||||||
xchat_printf(ph, "%s", title);
|
|
||||||
else
|
|
||||||
xchat_commandf(ph, "say %s", title);
|
|
||||||
|
|
||||||
return XCHAT_EAT_ALL;
|
|
||||||
}
|
|
||||||
|
Loading…
Reference in New Issue
Block a user