feat: Various improvements
This commit is contained in:
@@ -15,8 +15,20 @@ namespace Kt
|
||||
{
|
||||
constexpr const char *clear = "\033[2J";
|
||||
constexpr const char *cursor_reset = "\033[H";
|
||||
};
|
||||
|
||||
namespace colors {
|
||||
constexpr const char* black = "\u001b[30m";
|
||||
constexpr const char* red = "\u001b[31m";
|
||||
constexpr const char* green = "\u001b[32m";
|
||||
constexpr const char* blue = "\u001b[34m";
|
||||
constexpr const char* cyan = "\u001b[36m";
|
||||
constexpr const char* yellow = "\u001b[33m";
|
||||
constexpr const char* magenta = "\u001b[35m";
|
||||
|
||||
constexpr const char* white = "\u001b[37m";
|
||||
};
|
||||
};
|
||||
|
||||
void Initialize(std::uint32_t *framebuffer, std::size_t width, std::size_t height, std::size_t pitch,
|
||||
std::uint8_t red_mask_size, std::uint8_t red_mask_shift,
|
||||
std::uint8_t green_mask_size, std::uint8_t green_mask_shift,
|
||||
@@ -77,7 +89,67 @@ namespace Kt
|
||||
}
|
||||
};
|
||||
|
||||
// This will be on the kernel entry point's stack. Which is totally fine since we don't ever exit from that function
|
||||
enum KernelLogLevel {
|
||||
INFO,
|
||||
WARNING,
|
||||
ERROR,
|
||||
DEBUG,
|
||||
OK
|
||||
};
|
||||
|
||||
class KernelLogStream {
|
||||
KernelOutStream localStream{};
|
||||
KernelLogLevel level;
|
||||
|
||||
const char* componentName = "";
|
||||
|
||||
public:
|
||||
KernelLogStream(KernelLogLevel desiredLevel, const char* desiredComponentName) {
|
||||
level = desiredLevel;
|
||||
componentName = desiredComponentName;
|
||||
|
||||
switch (level) {
|
||||
case INFO: {
|
||||
localStream << screen::colors::cyan << "INFO " << screen::colors::white;
|
||||
break;
|
||||
}
|
||||
|
||||
case WARNING: {
|
||||
localStream << screen::colors::yellow << "WARNING " << screen::colors::white;
|
||||
break;
|
||||
}
|
||||
|
||||
case ERROR: {
|
||||
localStream << screen::colors::red << "ERROR " << screen::colors::white;
|
||||
break;
|
||||
}
|
||||
|
||||
case DEBUG: {
|
||||
localStream << screen::colors::magenta << "DEBUG " << screen::colors::white;
|
||||
break;
|
||||
}
|
||||
|
||||
case OK: {
|
||||
localStream << screen::colors::green << "OK " << screen::colors::white;
|
||||
break ;
|
||||
}
|
||||
}
|
||||
|
||||
localStream << componentName << ": ";
|
||||
}
|
||||
|
||||
~KernelLogStream() {
|
||||
localStream << newline;
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
KernelLogStream &operator<<(T item) {
|
||||
localStream << item;
|
||||
|
||||
return *this;
|
||||
}
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
extern Kt::KernelOutStream kout;
|
||||
|
||||
Reference in New Issue
Block a user