1
0
mirror of https://github.com/Llewellynvdm/conky.git synced 2024-11-17 10:35:10 +00:00

add build option

This commit is contained in:
isaac 2020-11-09 19:56:18 +07:00 committed by Brenden Matthews
parent d25e0a72f4
commit 56920fde12
5 changed files with 25 additions and 3 deletions

View File

@ -260,6 +260,8 @@ option(BUILD_JOURNAL "Enable support for reading from the systemd journal"
option(BUILD_PULSEAUDIO option(BUILD_PULSEAUDIO
"Enable support for Pulseaudio's default sink and source" false) "Enable support for Pulseaudio's default sink and source" false)
option(BUILD_HSV_GRADIENT "Enable gradient in HSV colour space" true)
message(STATUS "CMAKE_C_FLAGS: " ${CMAKE_C_FLAGS}) message(STATUS "CMAKE_C_FLAGS: " ${CMAKE_C_FLAGS})
message(STATUS "CMAKE_CXX_FLAGS: " ${CMAKE_CXX_FLAGS}) message(STATUS "CMAKE_CXX_FLAGS: " ${CMAKE_CXX_FLAGS})

View File

@ -127,6 +127,8 @@
#cmakedefine BUILD_JOURNAL 1 #cmakedefine BUILD_JOURNAL 1
#cmakedefine BUILD_HSV_GRADIENT 1
#cmakedefine HAVE_STATFS64 1 #cmakedefine HAVE_STATFS64 1
#ifndef HAVE_STATFS64 #ifndef HAVE_STATFS64
#define statfs64 statfs #define statfs64 statfs

View File

@ -248,8 +248,7 @@ void scaled_hsv_to_scaled_rgb(long *const hsv, long *rgb) {
} }
/* this function returns the next colour between two colours in hsv space for a gradient */ /* this function returns the next colour between two colours in hsv space for a gradient */
unsigned long *do_hsv_gradient( unsigned long *do_hsv_gradient(int width,
int width,
unsigned long first_colour, unsigned long first_colour,
unsigned long last_colour) { unsigned long last_colour) {
@ -276,6 +275,12 @@ unsigned long *do_hsv_gradient(
scaled_rgb_to_scaled_hsv(rgb2, hsv2); scaled_rgb_to_scaled_hsv(rgb2, hsv2);
hueDiff = hsv2[0] - hsv1[0]; hueDiff = hsv2[0] - hsv1[0];
// use shortest hue path
if (hueDiff > CONST_SCALE180) {
hueDiff = hueDiff - CONST_SCALE360;
} else if (hueDiff < -CONST_SCALE180) {
hueDiff = hueDiff + CONST_SCALE360;
}
satDiff = hsv2[1] - hsv1[1]; satDiff = hsv2[1] - hsv1[1];
valDiff = hsv2[2] - hsv1[2]; valDiff = hsv2[2] - hsv1[2];
@ -288,7 +293,12 @@ unsigned long *do_hsv_gradient(
long divisor = width - i; long divisor = width - i;
k = (hueDiff + divisor / 2) / divisor; k = (hueDiff + divisor / 2) / divisor;
hueDiff -= k; hueDiff -= k;
hsv1[0] += k; long h = hsv1[0] + k;
if (h < 0) {
hsv1[0] = CONST_SCALE360 + h;
} else {
hsv1[0] = h;
}
k = (satDiff + divisor / 2) / divisor; k = (satDiff + divisor / 2) / divisor;
satDiff -= k; satDiff -= k;

View File

@ -1451,8 +1451,13 @@ int draw_each_line_inner(char *s, int special_index, int last_special_applied) {
unsigned long *tmpcolour = nullptr; unsigned long *tmpcolour = nullptr;
if (current->last_colour != 0 || current->first_colour != 0) { if (current->last_colour != 0 || current->first_colour != 0) {
#ifdef BUILD_HSV_GRADIENT
tmpcolour = do_hsv_gradient(w - 1, current->last_colour,
current->first_colour);
#else
tmpcolour = do_gradient(w - 1, current->last_colour, tmpcolour = do_gradient(w - 1, current->last_colour,
current->first_colour); current->first_colour);
#endif
} }
colour_idx = 0; colour_idx = 0;
for (i = w - 2; i > -1; i--) { for (i = w - 2; i > -1; i--) {

View File

@ -181,6 +181,9 @@ static void print_version() {
<< _(" * Own window\n") << _(" * Own window\n")
#endif #endif
#endif /* BUILD_X11 */ #endif /* BUILD_X11 */
#ifdef BUILD_HSV_GRADIENT
<< _(" * HSV Gradient\n")
#endif /* BUILD_HSV_GRADIENT */
#if defined BUILD_AUDACIOUS || defined BUILD_CMUS || defined BUILD_MPD || \ #if defined BUILD_AUDACIOUS || defined BUILD_CMUS || defined BUILD_MPD || \
defined BUILD_MOC || defined BUILD_XMMS2 defined BUILD_MOC || defined BUILD_XMMS2
<< _("\n Music detection:\n") << _("\n Music detection:\n")