mirror of
https://github.com/Dr-Noob/cpufetch.git
synced 2026-03-25 07:50:40 +01:00
[v0.99] Add support to use 3 colors in logo instead of 2. Add colors for new intel logo (which uses 3 colors)
This commit is contained in:
@@ -5,12 +5,13 @@
|
|||||||
#include "args.h"
|
#include "args.h"
|
||||||
#include "global.h"
|
#include "global.h"
|
||||||
|
|
||||||
#define NUM_COLORS 4
|
#define NUM_COLORS 5
|
||||||
|
|
||||||
#define COLOR_STR_INTEL "intel"
|
#define COLOR_STR_INTEL "intel"
|
||||||
#define COLOR_STR_AMD "amd"
|
#define COLOR_STR_INTEL_NEW "intel-new"
|
||||||
#define COLOR_STR_IBM "ibm"
|
#define COLOR_STR_AMD "amd"
|
||||||
#define COLOR_STR_ARM "arm"
|
#define COLOR_STR_IBM "ibm"
|
||||||
|
#define COLOR_STR_ARM "arm"
|
||||||
|
|
||||||
static const char *SYTLES_STR_LIST[] = {
|
static const char *SYTLES_STR_LIST[] = {
|
||||||
[STYLE_EMPTY] = NULL,
|
[STYLE_EMPTY] = NULL,
|
||||||
@@ -156,6 +157,7 @@ bool parse_color(char* optarg_str, struct color*** cs) {
|
|||||||
bool free_ptr = true;
|
bool free_ptr = true;
|
||||||
|
|
||||||
if(strcmp(optarg_str, COLOR_STR_INTEL) == 0) color_to_copy = COLOR_DEFAULT_INTEL;
|
if(strcmp(optarg_str, COLOR_STR_INTEL) == 0) color_to_copy = COLOR_DEFAULT_INTEL;
|
||||||
|
else if(strcmp(optarg_str, COLOR_STR_INTEL_NEW) == 0) color_to_copy = COLOR_DEFAULT_INTEL_NEW;
|
||||||
else if(strcmp(optarg_str, COLOR_STR_AMD) == 0) color_to_copy = COLOR_DEFAULT_AMD;
|
else if(strcmp(optarg_str, COLOR_STR_AMD) == 0) color_to_copy = COLOR_DEFAULT_AMD;
|
||||||
else if(strcmp(optarg_str, COLOR_STR_IBM) == 0) color_to_copy = COLOR_DEFAULT_IBM;
|
else if(strcmp(optarg_str, COLOR_STR_IBM) == 0) color_to_copy = COLOR_DEFAULT_IBM;
|
||||||
else if(strcmp(optarg_str, COLOR_STR_ARM) == 0) color_to_copy = COLOR_DEFAULT_ARM;
|
else if(strcmp(optarg_str, COLOR_STR_ARM) == 0) color_to_copy = COLOR_DEFAULT_ARM;
|
||||||
@@ -169,14 +171,16 @@ bool parse_color(char* optarg_str, struct color*** cs) {
|
|||||||
strcpy(str_to_parse, color_to_copy);
|
strcpy(str_to_parse, color_to_copy);
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = sscanf(str_to_parse, "%d,%d,%d:%d,%d,%d:%d,%d,%d:%d,%d,%d",
|
ret = sscanf(str_to_parse, "%d,%d,%d:%d,%d,%d:%d,%d,%d:%d,%d,%d:%d,%d,%d",
|
||||||
&c[0]->R, &c[0]->G, &c[0]->B,
|
&c[0]->R, &c[0]->G, &c[0]->B,
|
||||||
&c[1]->R, &c[1]->G, &c[1]->B,
|
&c[1]->R, &c[1]->G, &c[1]->B,
|
||||||
&c[2]->R, &c[2]->G, &c[2]->B,
|
&c[2]->R, &c[2]->G, &c[2]->B,
|
||||||
&c[3]->R, &c[3]->G, &c[3]->B);
|
&c[3]->R, &c[3]->G, &c[3]->B,
|
||||||
|
&c[4]->R, &c[4]->G, &c[4]->B);
|
||||||
|
|
||||||
if(ret != 12) {
|
int expected_colors = 3 * NUM_COLORS;
|
||||||
printErr("Expected to read 12 values for color but read %d", ret);
|
if(ret != expected_colors) {
|
||||||
|
printErr("Expected to read %d values for color but read %d", expected_colors, ret);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ struct ascii_logo {
|
|||||||
uint32_t width;
|
uint32_t width;
|
||||||
uint32_t height;
|
uint32_t height;
|
||||||
bool replace_blocks;
|
bool replace_blocks;
|
||||||
char color_ascii[8][100];
|
char color_ascii[3][100];
|
||||||
char color_text[2][100];
|
char color_text[2][100];
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -321,7 +321,7 @@ asciiL logo_apple = { ASCII_APPLE, 32, 17, false, {COLOR_FG_WHITE},
|
|||||||
// Long variants | ----------------------------------------------------------------------------------------------------------|
|
// Long variants | ----------------------------------------------------------------------------------------------------------|
|
||||||
asciiL logo_amd_l = { ASCII_AMD_L, 62, 19, true, {COLOR_BG_WHITE, COLOR_BG_GREEN}, {COLOR_FG_WHITE, COLOR_FG_GREEN} };
|
asciiL logo_amd_l = { ASCII_AMD_L, 62, 19, true, {COLOR_BG_WHITE, COLOR_BG_GREEN}, {COLOR_FG_WHITE, COLOR_FG_GREEN} };
|
||||||
asciiL logo_intel_l = { ASCII_INTEL_L, 62, 19, true, {COLOR_BG_CYAN, COLOR_BG_WHITE}, {COLOR_FG_CYAN, COLOR_FG_WHITE} };
|
asciiL logo_intel_l = { ASCII_INTEL_L, 62, 19, true, {COLOR_BG_CYAN, COLOR_BG_WHITE}, {COLOR_FG_CYAN, COLOR_FG_WHITE} };
|
||||||
asciiL logo_intel_l_new = { ASCII_INTEL_L_NEW, 57, 14, true, {COLOR_BG_CYAN, COLOR_BG_WHITE}, {COLOR_FG_CYAN, COLOR_FG_WHITE} };
|
asciiL logo_intel_l_new = { ASCII_INTEL_L_NEW, 57, 14, true, {COLOR_BG_CYAN, COLOR_BG_WHITE, COLOR_BG_BLUE}, {COLOR_FG_CYAN, COLOR_FG_WHITE} };
|
||||||
asciiL logo_arm_l = { ASCII_ARM_L, 60, 8, true, {COLOR_BG_CYAN}, {COLOR_FG_WHITE, COLOR_FG_CYAN} };
|
asciiL logo_arm_l = { ASCII_ARM_L, 60, 8, true, {COLOR_BG_CYAN}, {COLOR_FG_WHITE, COLOR_FG_CYAN} };
|
||||||
asciiL logo_ibm_l = { ASCII_IBM_L, 62, 13, true, {COLOR_BG_CYAN, COLOR_FG_WHITE}, {COLOR_FG_CYAN, COLOR_FG_WHITE} };
|
asciiL logo_ibm_l = { ASCII_IBM_L, 62, 13, true, {COLOR_BG_CYAN, COLOR_FG_WHITE}, {COLOR_FG_CYAN, COLOR_FG_WHITE} };
|
||||||
asciiL logo_unknown = { NULL, 0, 0, false, {COLOR_NONE}, {COLOR_NONE, COLOR_NONE} };
|
asciiL logo_unknown = { NULL, 0, 0, false, {COLOR_NONE}, {COLOR_NONE, COLOR_NONE} };
|
||||||
|
|||||||
@@ -243,7 +243,7 @@ bool ascii_fits_screen(int termw, struct ascii_logo logo, int lf) {
|
|||||||
// on logo->replace_blocks
|
// on logo->replace_blocks
|
||||||
void replace_bgbyfg_color(struct ascii_logo* logo) {
|
void replace_bgbyfg_color(struct ascii_logo* logo) {
|
||||||
// Replace background by foreground color
|
// Replace background by foreground color
|
||||||
for(int i=0; i < 2; i++) {
|
for(int i=0; i < 3; i++) {
|
||||||
if(logo->color_ascii[i] == NULL) break;
|
if(logo->color_ascii[i] == NULL) break;
|
||||||
|
|
||||||
if(strcmp(logo->color_ascii[i], COLOR_BG_BLACK) == 0) strcpy(logo->color_ascii[i], COLOR_FG_BLACK);
|
if(strcmp(logo->color_ascii[i], COLOR_BG_BLACK) == 0) strcpy(logo->color_ascii[i], COLOR_FG_BLACK);
|
||||||
@@ -323,6 +323,7 @@ void choose_ascii_art(struct ascii* art, struct color** cs, struct terminal* ter
|
|||||||
strcpy(logo->color_text[1], COLOR_NONE);
|
strcpy(logo->color_text[1], COLOR_NONE);
|
||||||
strcpy(logo->color_ascii[0], COLOR_NONE);
|
strcpy(logo->color_ascii[0], COLOR_NONE);
|
||||||
strcpy(logo->color_ascii[1], COLOR_NONE);
|
strcpy(logo->color_ascii[1], COLOR_NONE);
|
||||||
|
strcpy(logo->color_ascii[2], COLOR_NONE);
|
||||||
art->reset[0] = '\0';
|
art->reset[0] = '\0';
|
||||||
break;
|
break;
|
||||||
case STYLE_RETRO:
|
case STYLE_RETRO:
|
||||||
@@ -331,10 +332,11 @@ void choose_ascii_art(struct ascii* art, struct color** cs, struct terminal* ter
|
|||||||
// fall through
|
// fall through
|
||||||
case STYLE_FANCY:
|
case STYLE_FANCY:
|
||||||
if(cs != NULL) {
|
if(cs != NULL) {
|
||||||
strcpy(logo->color_text[0], rgb_to_ansi(cs[2], false, true));
|
strcpy(logo->color_text[0], rgb_to_ansi(cs[3], false, true));
|
||||||
strcpy(logo->color_text[1], rgb_to_ansi(cs[3], false, true));
|
strcpy(logo->color_text[1], rgb_to_ansi(cs[4], false, true));
|
||||||
strcpy(logo->color_ascii[0], rgb_to_ansi(cs[0], logo->replace_blocks, true));
|
strcpy(logo->color_ascii[0], rgb_to_ansi(cs[0], logo->replace_blocks, true));
|
||||||
strcpy(logo->color_ascii[1], rgb_to_ansi(cs[1], logo->replace_blocks, true));
|
strcpy(logo->color_ascii[1], rgb_to_ansi(cs[1], logo->replace_blocks, true));
|
||||||
|
strcpy(logo->color_ascii[2], rgb_to_ansi(cs[2], logo->replace_blocks, true));
|
||||||
}
|
}
|
||||||
strcpy(art->reset, COLOR_RESET);
|
strcpy(art->reset, COLOR_RESET);
|
||||||
break;
|
break;
|
||||||
@@ -399,6 +401,7 @@ void print_ascii_generic(struct ascii* art, uint32_t la, int32_t text_space, con
|
|||||||
if(logo->replace_blocks && logo->art[logo_pos] != ' ') {
|
if(logo->replace_blocks && logo->art[logo_pos] != ' ') {
|
||||||
if(logo->art[logo_pos] == '#') printf("%s%c%s", logo->color_ascii[0], ' ', art->reset);
|
if(logo->art[logo_pos] == '#') printf("%s%c%s", logo->color_ascii[0], ' ', art->reset);
|
||||||
else if(logo->art[logo_pos] == '@') printf("%s%c%s", logo->color_ascii[1], ' ', art->reset);
|
else if(logo->art[logo_pos] == '@') printf("%s%c%s", logo->color_ascii[1], ' ', art->reset);
|
||||||
|
else if(logo->art[logo_pos] == '%') printf("%s%c%s", logo->color_ascii[2], ' ', art->reset);
|
||||||
else printf("%c", logo->art[logo_pos]);
|
else printf("%c", logo->art[logo_pos]);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -652,6 +655,7 @@ void print_ascii_arm(struct ascii* art, uint32_t la, int32_t text_space, const c
|
|||||||
if(logo->replace_blocks && logo->art[logo_pos] != ' ') {
|
if(logo->replace_blocks && logo->art[logo_pos] != ' ') {
|
||||||
if(logo->art[logo_pos] == '#') printf("%s%c%s", logo->color_ascii[0], ' ', art->reset);
|
if(logo->art[logo_pos] == '#') printf("%s%c%s", logo->color_ascii[0], ' ', art->reset);
|
||||||
else if(logo->art[logo_pos] == '@') printf("%s%c%s", logo->color_ascii[1], ' ', art->reset);
|
else if(logo->art[logo_pos] == '@') printf("%s%c%s", logo->color_ascii[1], ' ', art->reset);
|
||||||
|
else if(logo->art[logo_pos] == '%') printf("%s%c%s", logo->color_ascii[2], ' ', art->reset);
|
||||||
else printf("%c", logo->art[logo_pos]);
|
else printf("%c", logo->art[logo_pos]);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -13,10 +13,14 @@ typedef int STYLE;
|
|||||||
#include "../arm/midr.h"
|
#include "../arm/midr.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define COLOR_DEFAULT_INTEL "15,125,194:230,230,230:40,150,220:230,230,230"
|
// +-----------------------------------+-----------------------+
|
||||||
#define COLOR_DEFAULT_AMD "250,250,250:0,154,102:250,250,250:0,154,102"
|
// | Color logo | Color text |
|
||||||
#define COLOR_DEFAULT_IBM "92,119,172:92,119,172:240,240,240:92,119,172"
|
// | Color 1 | Color 2 | Color 3 | Color 1 | Color 2 |
|
||||||
#define COLOR_DEFAULT_ARM "0,145,189:0,145,189:240,240,240:0,145,189"
|
#define COLOR_DEFAULT_INTEL "015,125,194:230,230,230:000,000,000:040,150,220:230,230,230"
|
||||||
|
#define COLOR_DEFAULT_INTEL_NEW "030,204,251:250,250,250:000,104,181:230,230,230:030,204,251"
|
||||||
|
#define COLOR_DEFAULT_AMD "250,250,250:000,154,102:000,000,000:250,250,250:000,154,102"
|
||||||
|
#define COLOR_DEFAULT_IBM "092,119,172:092,119,172:000,000,000:240,240,240:092,119,172"
|
||||||
|
#define COLOR_DEFAULT_ARM "000,145,189:000,145,189:000,000,000:240,240,240:000,145,189"
|
||||||
|
|
||||||
#ifdef ARCH_X86
|
#ifdef ARCH_X86
|
||||||
void print_levels(struct cpuInfo* cpu);
|
void print_levels(struct cpuInfo* cpu);
|
||||||
|
|||||||
Reference in New Issue
Block a user