[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:
Dr-Noob
2021-08-19 12:12:36 +02:00
parent c0935d1b4b
commit 39516e219a
4 changed files with 30 additions and 18 deletions

View File

@@ -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;
} }

View File

@@ -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} };

View File

@@ -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

View File

@@ -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);