mirror of
https://github.com/Llewellynvdm/conky.git
synced 2024-12-26 12:27:52 +00:00
* Updated to libmpdclient 0.13.0
* Added post_21_kernel config param to specify kernels 2.6.22 and newer so i2c works properly git-svn-id: https://conky.svn.sourceforge.net/svnroot/conky/trunk/conky1@890 7f574dfc-610e-0410-a909-a81674777703
This commit is contained in:
parent
f95d63bf56
commit
7793867d6b
@ -1,5 +1,10 @@
|
|||||||
# $Id$
|
# $Id$
|
||||||
|
|
||||||
|
2007-08-05
|
||||||
|
* Updated to libmpdclient 0.13.0
|
||||||
|
* Added 'post_21_kernel' config param to specify kernels 2.6.22 and newer
|
||||||
|
so i2c works properly
|
||||||
|
|
||||||
2007-08-04
|
2007-08-04
|
||||||
* Fixed potential issue on FreeBSD when nprocs < 10 (thanks zotrix)
|
* Fixed potential issue on FreeBSD when nprocs < 10 (thanks zotrix)
|
||||||
* Added support for multiple batteries when using acpi (thanks Phil)
|
* Added support for multiple batteries when using acpi (thanks Phil)
|
||||||
|
@ -356,6 +356,14 @@
|
|||||||
Print text to stdout.
|
Print text to stdout.
|
||||||
<para></para></listitem>
|
<para></para></listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term><command><option>post_21_kernel</option></command>
|
||||||
|
</term>
|
||||||
|
<listitem>
|
||||||
|
Set to yes if you have Linux kernel 2.6.22 or newer
|
||||||
|
<para></para></listitem>
|
||||||
|
</varlistentry>
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term><command><option>pad_percents</option></command></term>
|
<term><command><option>pad_percents</option></command></term>
|
||||||
<listitem>
|
<listitem>
|
||||||
|
12
src/conky.c
12
src/conky.c
@ -101,6 +101,10 @@ static void print_version()
|
|||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(__linux__)
|
||||||
|
int post_21_kernel;
|
||||||
|
#endif /* __linux__ */
|
||||||
|
|
||||||
#ifdef X11
|
#ifdef X11
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -6583,6 +6587,9 @@ static void set_default_configurations(void)
|
|||||||
info.xmms2.status = NULL;
|
info.xmms2.status = NULL;
|
||||||
#endif
|
#endif
|
||||||
use_spacer = 0;
|
use_spacer = 0;
|
||||||
|
#if defined(__linux__)
|
||||||
|
post_21_kernel = 0;
|
||||||
|
#endif /* __linux__ */
|
||||||
#ifdef X11
|
#ifdef X11
|
||||||
out_to_console = 0;
|
out_to_console = 0;
|
||||||
#else
|
#else
|
||||||
@ -6915,6 +6922,11 @@ else if (strcasecmp(name, a) == 0 || strcasecmp(name, b) == 0)
|
|||||||
CONF("draw_outline") {
|
CONF("draw_outline") {
|
||||||
draw_outline = string_to_bool(value);
|
draw_outline = string_to_bool(value);
|
||||||
}
|
}
|
||||||
|
#if defined(__linux__)
|
||||||
|
CONF("post_21_kernel") {
|
||||||
|
post_21_kernel = string_to_bool(value);
|
||||||
|
}
|
||||||
|
#endif /* __linux__ */
|
||||||
#endif /* X11 */
|
#endif /* X11 */
|
||||||
CONF("out_to_console") {
|
CONF("out_to_console") {
|
||||||
out_to_console = string_to_bool(value);
|
out_to_console = string_to_bool(value);
|
||||||
|
@ -605,6 +605,10 @@ void init_rss_info();
|
|||||||
void free_rss_info();
|
void free_rss_info();
|
||||||
#endif /* RSS */
|
#endif /* RSS */
|
||||||
|
|
||||||
|
#if defined(__linux__)
|
||||||
|
extern int post_21_kernel;
|
||||||
|
#endif /* __linux__ */
|
||||||
|
|
||||||
/* in linux.c */
|
/* in linux.c */
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -40,6 +40,7 @@
|
|||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#define MPD_BUFFER_MAX_LENGTH 50000
|
#define MPD_BUFFER_MAX_LENGTH 50000
|
||||||
|
#define MPD_ERRORSTR_MAX_LENGTH 1000
|
||||||
#define MPD_WELCOME_MESSAGE "OK MPD "
|
#define MPD_WELCOME_MESSAGE "OK MPD "
|
||||||
|
|
||||||
#define MPD_ERROR_TIMEOUT 10 /* timeout trying to talk to mpd */
|
#define MPD_ERROR_TIMEOUT 10 /* timeout trying to talk to mpd */
|
||||||
@ -88,8 +89,9 @@ typedef enum mpd_TagItems
|
|||||||
MPD_TAG_ITEM_COMMENT,
|
MPD_TAG_ITEM_COMMENT,
|
||||||
MPD_TAG_ITEM_DISC,
|
MPD_TAG_ITEM_DISC,
|
||||||
MPD_TAG_ITEM_FILENAME,
|
MPD_TAG_ITEM_FILENAME,
|
||||||
|
MPD_TAG_ITEM_ANY,
|
||||||
MPD_TAG_NUM_OF_ITEM_TYPES
|
MPD_TAG_NUM_OF_ITEM_TYPES
|
||||||
}mpd_TagItems;
|
} mpd_TagItems;
|
||||||
|
|
||||||
extern char * mpdTagItemKeys[MPD_TAG_NUM_OF_ITEM_TYPES];
|
extern char * mpdTagItemKeys[MPD_TAG_NUM_OF_ITEM_TYPES];
|
||||||
|
|
||||||
@ -107,7 +109,7 @@ typedef struct _mpd_Connection {
|
|||||||
/* use this to check the version of mpd */
|
/* use this to check the version of mpd */
|
||||||
int version[3];
|
int version[3];
|
||||||
/* IMPORTANT, you want to get the error messages from here */
|
/* IMPORTANT, you want to get the error messages from here */
|
||||||
char errorStr[MPD_BUFFER_MAX_LENGTH+1];
|
char errorStr[MPD_ERRORSTR_MAX_LENGTH+1];
|
||||||
int errorCode;
|
int errorCode;
|
||||||
int errorAt;
|
int errorAt;
|
||||||
/* this will be set to MPD_ERROR_* if there is an error, 0 if not */
|
/* this will be set to MPD_ERROR_* if there is an error, 0 if not */
|
||||||
@ -225,12 +227,21 @@ typedef struct _mpd_Stats {
|
|||||||
unsigned long dbPlayTime;
|
unsigned long dbPlayTime;
|
||||||
} mpd_Stats;
|
} mpd_Stats;
|
||||||
|
|
||||||
|
typedef struct _mpd_SearchStats {
|
||||||
|
int numberOfSongs;
|
||||||
|
unsigned long playTime;
|
||||||
|
} mpd_SearchStats;
|
||||||
|
|
||||||
void mpd_sendStatsCommand(mpd_Connection * connection);
|
void mpd_sendStatsCommand(mpd_Connection * connection);
|
||||||
|
|
||||||
mpd_Stats * mpd_getStats(mpd_Connection * connection);
|
mpd_Stats * mpd_getStats(mpd_Connection * connection);
|
||||||
|
|
||||||
void mpd_freeStats(mpd_Stats * stats);
|
void mpd_freeStats(mpd_Stats * stats);
|
||||||
|
|
||||||
|
mpd_SearchStats * mpd_getSearchStats(mpd_Connection * connection);
|
||||||
|
|
||||||
|
void mpd_freeSearchStats(mpd_SearchStats * stats);
|
||||||
|
|
||||||
/* SONG STUFF */
|
/* SONG STUFF */
|
||||||
|
|
||||||
#define MPD_SONG_NO_TIME -1
|
#define MPD_SONG_NO_TIME -1
|
||||||
@ -262,6 +273,8 @@ typedef struct _mpd_Song {
|
|||||||
char *genre;
|
char *genre;
|
||||||
/* Composer */
|
/* Composer */
|
||||||
char *composer;
|
char *composer;
|
||||||
|
/* Performer */
|
||||||
|
char *performer;
|
||||||
/* Disc */
|
/* Disc */
|
||||||
char *disc;
|
char *disc;
|
||||||
/* Comment */
|
/* Comment */
|
||||||
@ -414,10 +427,10 @@ void mpd_sendListallInfoCommand(mpd_Connection * connection, const char * dir);
|
|||||||
/* non-recursive version of ListallInfo */
|
/* non-recursive version of ListallInfo */
|
||||||
void mpd_sendLsInfoCommand(mpd_Connection * connection, const char * dir);
|
void mpd_sendLsInfoCommand(mpd_Connection * connection, const char * dir);
|
||||||
|
|
||||||
#define MPD_TABLE_ARTIST 0
|
#define MPD_TABLE_ARTIST MPD_TAG_ITEM_ARTIST
|
||||||
#define MPD_TABLE_ALBUM 1
|
#define MPD_TABLE_ALBUM MPD_TAG_ITEM_ALBUM
|
||||||
#define MPD_TABLE_TITLE 2
|
#define MPD_TABLE_TITLE MPD_TAG_ITEM_TITLE
|
||||||
#define MPD_TABLE_FILENAME 3
|
#define MPD_TABLE_FILENAME MPD_TAG_ITEM_FILENAME
|
||||||
|
|
||||||
void mpd_sendSearchCommand(mpd_Connection * connection, int table,
|
void mpd_sendSearchCommand(mpd_Connection * connection, int table,
|
||||||
const char * str);
|
const char * str);
|
||||||
@ -434,7 +447,7 @@ char * mpd_getNextArtist(mpd_Connection * connection);
|
|||||||
|
|
||||||
char * mpd_getNextAlbum(mpd_Connection * connection);
|
char * mpd_getNextAlbum(mpd_Connection * connection);
|
||||||
|
|
||||||
char * mpd_getNextTag(mpd_Connection *connection, int table);
|
char * mpd_getNextTag(mpd_Connection *connection, int type);
|
||||||
|
|
||||||
/* list artist or albums by artist, arg1 should be set to the artist if
|
/* list artist or albums by artist, arg1 should be set to the artist if
|
||||||
* listing albums by a artist, otherwise NULL for listing all artists or albums
|
* listing albums by a artist, otherwise NULL for listing all artists or albums
|
||||||
@ -446,6 +459,8 @@ void mpd_sendListCommand(mpd_Connection * connection, int table,
|
|||||||
|
|
||||||
void mpd_sendAddCommand(mpd_Connection * connection, const char * file);
|
void mpd_sendAddCommand(mpd_Connection * connection, const char * file);
|
||||||
|
|
||||||
|
int mpd_sendAddIdCommand(mpd_Connection *connection, const char *file);
|
||||||
|
|
||||||
void mpd_sendDeleteCommand(mpd_Connection * connection, int songNum);
|
void mpd_sendDeleteCommand(mpd_Connection * connection, int songNum);
|
||||||
|
|
||||||
void mpd_sendDeleteIdCommand(mpd_Connection * connection, int songNum);
|
void mpd_sendDeleteIdCommand(mpd_Connection * connection, int songNum);
|
||||||
@ -456,6 +471,9 @@ void mpd_sendLoadCommand(mpd_Connection * connection, const char * name);
|
|||||||
|
|
||||||
void mpd_sendRmCommand(mpd_Connection * connection, const char * name);
|
void mpd_sendRmCommand(mpd_Connection * connection, const char * name);
|
||||||
|
|
||||||
|
void mpd_sendRenameCommand(mpd_Connection *connection, const char *from,
|
||||||
|
const char *to);
|
||||||
|
|
||||||
void mpd_sendShuffleCommand(mpd_Connection * connection);
|
void mpd_sendShuffleCommand(mpd_Connection * connection);
|
||||||
|
|
||||||
void mpd_sendClearCommand(mpd_Connection * connection);
|
void mpd_sendClearCommand(mpd_Connection * connection);
|
||||||
@ -544,6 +562,7 @@ void mpd_freeOutputElement(mpd_OutputEntity * output);
|
|||||||
* Queries mpd for the allowed commands
|
* Queries mpd for the allowed commands
|
||||||
*/
|
*/
|
||||||
void mpd_sendCommandsCommand(mpd_Connection * connection);
|
void mpd_sendCommandsCommand(mpd_Connection * connection);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param connection a #mpd_Connection
|
* @param connection a #mpd_Connection
|
||||||
*
|
*
|
||||||
@ -560,6 +579,14 @@ void mpd_sendNotCommandsCommand(mpd_Connection * connection);
|
|||||||
*/
|
*/
|
||||||
char *mpd_getNextCommand(mpd_Connection *connection);
|
char *mpd_getNextCommand(mpd_Connection *connection);
|
||||||
|
|
||||||
|
void mpd_sendUrlHandlersCommand(mpd_Connection * connection);
|
||||||
|
|
||||||
|
char *mpd_getNextHandler(mpd_Connection * connection);
|
||||||
|
|
||||||
|
void mpd_sendTagTypesCommand(mpd_Connection * connection);
|
||||||
|
|
||||||
|
char *mpd_getNextTagType(mpd_Connection * connection);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param connection a MpdConnection
|
* @param connection a MpdConnection
|
||||||
* @param path the path to the playlist.
|
* @param path the path to the playlist.
|
||||||
@ -568,6 +595,7 @@ char *mpd_getNextCommand(mpd_Connection *connection);
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
void mpd_sendListPlaylistInfoCommand(mpd_Connection *connection, char *path);
|
void mpd_sendListPlaylistInfoCommand(mpd_Connection *connection, char *path);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param connection a MpdConnection
|
* @param connection a MpdConnection
|
||||||
* @param path the path to the playlist.
|
* @param path the path to the playlist.
|
||||||
@ -584,27 +612,29 @@ void mpd_sendListPlaylistCommand(mpd_Connection *connection, char *path);
|
|||||||
* starts a search, use mpd_addConstraintSearch to add
|
* starts a search, use mpd_addConstraintSearch to add
|
||||||
* a constraint to the search, and mpd_commitSearch to do the actual search
|
* a constraint to the search, and mpd_commitSearch to do the actual search
|
||||||
*/
|
*/
|
||||||
void mpd_startSearch(mpd_Connection * connection,int exact);
|
void mpd_startSearch(mpd_Connection *connection, int exact);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param connection a #mpd_Connection
|
* @param connection a #mpd_Connection
|
||||||
* @param field
|
* @param type
|
||||||
* @param name
|
* @param name
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
void mpd_addConstraintSearch(mpd_Connection *connection, int field, char *name);
|
void mpd_addConstraintSearch(mpd_Connection *connection, int type, const char *name);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param connection a #mpd_Connection
|
* @param connection a #mpd_Connection
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
void mpd_commitSearch(mpd_Connection *connection);
|
void mpd_commitSearch(mpd_Connection *connection);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param connection a #mpd_Connection
|
* @param connection a #mpd_Connection
|
||||||
* @param field The field to search
|
* @param type The type to search for
|
||||||
*
|
*
|
||||||
* starts a search for fields... f.e. get a list of artists would be:
|
* starts a search for fields... f.e. get a list of artists would be:
|
||||||
|
* @code
|
||||||
* mpd_startFieldSearch(connection, MPD_TAG_ITEM_ARTIST);
|
* mpd_startFieldSearch(connection, MPD_TAG_ITEM_ARTIST);
|
||||||
* mpd_commitSearch(connection);
|
* mpd_commitSearch(connection);
|
||||||
|
* @endcode
|
||||||
*
|
*
|
||||||
* or get a list of artist in genre "jazz" would be:
|
* or get a list of artist in genre "jazz" would be:
|
||||||
* @code
|
* @code
|
||||||
@ -614,10 +644,25 @@ void mpd_commitSearch(mpd_Connection *connection);
|
|||||||
* @endcode
|
* @endcode
|
||||||
*
|
*
|
||||||
* mpd_startSearch will return a list of songs (and you need mpd_getNextInfoEntity)
|
* mpd_startSearch will return a list of songs (and you need mpd_getNextInfoEntity)
|
||||||
* this one will return a list of only one field (the field specified with field) and you need
|
* this one will return a list of only one field (the one specified with type) and you need
|
||||||
* mpd_getNextTag to get the results
|
* mpd_getNextTag to get the results
|
||||||
*/
|
*/
|
||||||
void mpd_startFieldSearch(mpd_Connection * connection,int field);
|
void mpd_startFieldSearch(mpd_Connection *connection, int type);
|
||||||
|
|
||||||
|
void mpd_startPlaylistSearch(mpd_Connection *connection, int exact);
|
||||||
|
|
||||||
|
void mpd_startStatsSearch(mpd_Connection *connection);
|
||||||
|
|
||||||
|
void mpd_sendPlaylistClearCommand(mpd_Connection *connection, char *path);
|
||||||
|
|
||||||
|
void mpd_sendPlaylistAddCommand(mpd_Connection *connection,
|
||||||
|
char *playlist, char *path);
|
||||||
|
|
||||||
|
void mpd_sendPlaylistMoveCommand(mpd_Connection *connection,
|
||||||
|
char *playlist, int from, int to);
|
||||||
|
|
||||||
|
void mpd_sendPlaylistDeleteCommand(mpd_Connection *connection,
|
||||||
|
char *playlist, int pos);
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
24
src/linux.c
24
src/linux.c
@ -252,6 +252,8 @@ inline void update_net_stats()
|
|||||||
curtmp1 += ns->net_rec[i];
|
curtmp1 += ns->net_rec[i];
|
||||||
curtmp2 += ns->net_trans[i];
|
curtmp2 += ns->net_trans[i];
|
||||||
}
|
}
|
||||||
|
if (curtmp1 == 0) curtmp1 = 1;
|
||||||
|
if (curtmp2 == 0) curtmp2 = 1;
|
||||||
ns->recv_speed = curtmp1 / (double) info.net_avg_samples;
|
ns->recv_speed = curtmp1 / (double) info.net_avg_samples;
|
||||||
ns->trans_speed = curtmp2 / (double) info.net_avg_samples;
|
ns->trans_speed = curtmp2 / (double) info.net_avg_samples;
|
||||||
if (info.net_avg_samples > 1) {
|
if (info.net_avg_samples > 1) {
|
||||||
@ -624,12 +626,14 @@ get_first_file_in_a_directory(const char *dir, char *s, int *rep)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#define I2C_DIR "/sys/bus/i2c/devices/"
|
int open_i2c_sensor(const char *dev, const char *type, int n, int *div, char *devtype)
|
||||||
|
|
||||||
int
|
|
||||||
open_i2c_sensor(const char *dev, const char *type, int n, int *div,
|
|
||||||
char *devtype)
|
|
||||||
{
|
{
|
||||||
|
char i2c_dir[64];
|
||||||
|
if (post_21_kernel) {
|
||||||
|
strncpy(i2c_dir, "/sys/bus/platform/devices/", 64);
|
||||||
|
} else {
|
||||||
|
strncpy(i2c_dir, "/sys/bus/i2c/devices/", 64);
|
||||||
|
}
|
||||||
char path[256];
|
char path[256];
|
||||||
char buf[256];
|
char buf[256];
|
||||||
int fd;
|
int fd;
|
||||||
@ -638,7 +642,7 @@ open_i2c_sensor(const char *dev, const char *type, int n, int *div,
|
|||||||
/* if i2c device is NULL or *, get first */
|
/* if i2c device is NULL or *, get first */
|
||||||
if (dev == NULL || strcmp(dev, "*") == 0) {
|
if (dev == NULL || strcmp(dev, "*") == 0) {
|
||||||
static int rep = 0;
|
static int rep = 0;
|
||||||
if (!get_first_file_in_a_directory(I2C_DIR, buf, &rep))
|
if (!get_first_file_in_a_directory(i2c_dir, buf, &rep))
|
||||||
return -1;
|
return -1;
|
||||||
dev = buf;
|
dev = buf;
|
||||||
}
|
}
|
||||||
@ -648,9 +652,9 @@ open_i2c_sensor(const char *dev, const char *type, int n, int *div,
|
|||||||
type = "in";
|
type = "in";
|
||||||
|
|
||||||
if (strcmp(type, "tempf") == 0) {
|
if (strcmp(type, "tempf") == 0) {
|
||||||
snprintf(path, 255, I2C_DIR "%s/%s%d_input", dev, "temp", n);
|
snprintf(path, 255, "%s%s/%s%d_input", i2c_dir, dev, "temp", n);
|
||||||
} else {
|
} else {
|
||||||
snprintf(path, 255, I2C_DIR "%s/%s%d_input", dev, type, n);
|
snprintf(path, 255, "%s%s/%s%d_input", i2c_dir, dev, type, n);
|
||||||
}
|
}
|
||||||
strncpy(devtype, path, 255);
|
strncpy(devtype, path, 255);
|
||||||
|
|
||||||
@ -671,10 +675,10 @@ open_i2c_sensor(const char *dev, const char *type, int n, int *div,
|
|||||||
|
|
||||||
/* test if *_div file exist, open it and use it as divisor */
|
/* test if *_div file exist, open it and use it as divisor */
|
||||||
if (strcmp(type, "tempf") == 0) {
|
if (strcmp(type, "tempf") == 0) {
|
||||||
snprintf(path, 255, I2C_DIR "%s/%s%d_div", "one", "two",
|
snprintf(path, 255, "%s%s/%s%d_div", i2c_dir, "one", "two",
|
||||||
n);
|
n);
|
||||||
} else {
|
} else {
|
||||||
snprintf(path, 255, I2C_DIR "%s/%s%d_div", dev, type, n);
|
snprintf(path, 255, "%s%s/%s%d_div", i2c_dir, dev, type, n);
|
||||||
}
|
}
|
||||||
|
|
||||||
divfd = open(path, O_RDONLY);
|
divfd = open(path, O_RDONLY);
|
||||||
|
Loading…
Reference in New Issue
Block a user