blob: a0f1c5d60d93f40df3d3c244dbde42fdd4750e93 [file] [log] [blame]
// Copyright 2018 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef SRC_BRINGUP_BIN_VIRTCON_VC_COLORS_H_
#define SRC_BRINGUP_BIN_VIRTCON_VC_COLORS_H_
#include <string.h>
constexpr uint32_t default_palette[] = {
// 0-7 Normal/dark versions of colors
0xff000000, // black
0xffaa0000, // red
0xff00aa00, // green
0xffaa5500, // brown
0xff0000aa, // blue
0xffaa00aa, // zircon
0xff00aaaa, // cyan
0xffaaaaaa, // grey
// 8-15 Bright/light versions of colors
0xff555555, // dark grey
0xffff5555, // bright red
0xff55ff55, // bright green
0xffffff55, // yellow
0xff5555ff, // bright blue
0xffff55ff, // bright zircon
0xff55ffff, // bright cyan
0xffffffff, // white
};
typedef struct color_scheme {
uint8_t front;
uint8_t back;
} color_scheme_t;
constexpr color_scheme_t color_schemes[] = {
{
// Dark (white/black) [Default].
.front = 0x0F,
.back = 0x00,
},
{
// Light (black/white).
.front = 0x00,
.back = 0x0F,
},
{
// Special (White, Blue).
.front = 0x0F,
.back = 0x04,
},
};
constexpr int kDarkColorScheme = 0;
constexpr int kLightColorScheme = 1;
constexpr int kSpecialColorScheme = 2;
constexpr int kDefaultColorScheme = kDarkColorScheme;
constexpr const color_scheme_t* string_to_color_scheme(const char* string) {
if (string != NULL) {
if (strcmp(string, "dark") == 0) {
return &color_schemes[kDarkColorScheme];
} else if (strcmp(string, "light") == 0) {
return &color_schemes[kLightColorScheme];
} else if (strcmp(string, "special") == 0) {
return &color_schemes[kSpecialColorScheme];
}
}
return &color_schemes[kDefaultColorScheme];
}
#endif // SRC_BRINGUP_BIN_VIRTCON_VC_COLORS_H_