1

add overloads for bse::string

This commit is contained in:
2022-07-24 00:08:22 +02:00
parent 4aa6d089ca
commit 520445b66e
10 changed files with 84 additions and 48 deletions

View File

@ -95,7 +95,7 @@ void CGA::show(unsigned int x, unsigned int y, char character, unsigned char att
* n Laenger der Zeichenkette *
* attrib Attributbyte fuer alle Zeichen der Zeichenkette *
*****************************************************************************/
void CGA::print(char* string, unsigned int n, unsigned char attrib) {
void CGA::print(const char* string, unsigned int n, unsigned char attrib) {
/* Hier muess Code eingefuegt werden */
@ -142,6 +142,10 @@ void CGA::print(char* string, unsigned int n, unsigned char attrib) {
setpos(cursor_x, cursor_y);
}
void CGA::print(const bse::string& string, unsigned int n, unsigned char attrib) {
print((const char*)string, n, attrib);
}
/*****************************************************************************
* Methode: CGA::scrollup *
*---------------------------------------------------------------------------*

View File

@ -16,6 +16,7 @@
#include "kernel/IOport.h"
#include "user/lib/Array.h"
#include "user/lib/String.h"
class CGA {
private:
@ -61,19 +62,19 @@ public:
COLUMNS = 80 };
// Easier access to memory (also easier copying of lines/pages etc)
typedef struct {
struct cga_char_t {
char cga_char;
unsigned char cga_attribute;
} cga_char_t;
};
typedef struct {
struct cga_line_t {
// Can use these arrays since they don't have memory overhead (except for the methods that are elsewhere)
bse::array<cga_char_t, COLUMNS> cga_line;
} cga_line_t;
};
typedef struct {
struct cga_page_t {
bse::array<cga_line_t, ROWS> cga_page;
} cga_page_t;
};
// Setzen des Cursors in Spalte x und Zeile y.
void setpos(unsigned int x, unsigned int y);
@ -85,7 +86,8 @@ public:
static void show(unsigned int x, unsigned int y, char character, unsigned char attrib = STD_ATTR);
// Anzeige mehrerer Zeichen ab der aktuellen Cursorposition
virtual void print(char* string, unsigned int n, unsigned char attrib = STD_ATTR);
void print(const char* string, unsigned int n, unsigned char attrib = STD_ATTR);
void print(const bse::string& string, unsigned int n, unsigned char attrib = STD_ATTR);
// Verschiebt den Bildschirminhalt um eine Zeile nach oben.
// Neue Zeile am unteren Bildrand mit Leerzeichen fuellen

View File

@ -24,7 +24,7 @@
* verwendet werden, um eine Ausgabe zu erzwingen. *
*****************************************************************************/
void CGA_Stream::flush() {
print(buffer, pos, attribute(color_bg, color_fg, blink));
print(&buffer, pos, attribute(color_bg, color_fg, blink));
// Flushing resets attributes
blink = false;