The Pedigree Project
0.1
|
#include <LocalIO.h>
Public Member Functions | |
LocalIO (Vga *pVga, Keyboard *pKeyboard) | |
void | initialise () |
void | destroy () |
void | setCliUpperLimit (size_t nlines) |
void | setCliLowerLimit (size_t nlines) |
void | enableCli () |
void | disableCli () |
void | cls () |
virtual char | getCharNonBlock () |
void | drawHorizontalLine (char c, size_t row, size_t colStart, size_t colEnd, DebuggerIO::Colour foreColour, DebuggerIO::Colour backColour) |
void | drawVerticalLine (char c, size_t col, size_t rowStart, size_t rowEnd, DebuggerIO::Colour foreColour, DebuggerIO::Colour backColour) |
void | drawString (const char *str, size_t row, size_t col, DebuggerIO::Colour foreColour, DebuggerIO::Colour backColour) |
size_t | getWidth () |
size_t | getHeight () |
void | enableRefreshes () |
void | disableRefreshes () |
void | forceRefresh () |
char | getChar () |
void | readDimensions () |
Public Member Functions inherited from DebuggerIO | |
DebuggerIO () | |
virtual void | writeCli (const char *str, Colour foreColour, Colour backColour) |
virtual void | writeCli (char ch, DebuggerIO::Colour foreColour, DebuggerIO::Colour backColour) |
virtual bool | readCli (HugeStaticString &str, DebuggerCommand *pAutoComplete) |
Protected Member Functions | |
void | scroll () |
void | moveCursor () |
void | putChar (char c, DebuggerIO::Colour foreColour, DebuggerIO::Colour backColour) |
void | setMode (int nMode) |
int | getMode () |
Protected Attributes | |
uint16_t | m_pFramebuffer [MAX_CONSOLE_WIDTH *MAX_CONSOLE_HEIGHT] |
uint16_t | m_pOldFramebuffer [MAX_CONSOLE_WIDTH *MAX_CONSOLE_HEIGHT] |
size_t | m_nWidth |
size_t | m_nHeight |
size_t | m_UpperCliLimit |
size_t | m_LowerCliLimit |
size_t | m_CursorX |
size_t | m_CursorY |
Vga * | m_pVga |
Keyboard * | m_pKeyboard |
Protected Attributes inherited from DebuggerIO | |
bool | m_bReady |
char | m_pCommand [COMMAND_MAX] |
bool | m_bRefreshesEnabled |
Private Member Functions | |
LocalIO (const LocalIO &) | |
LocalIO & | operator= (const LocalIO &) |
Additional Inherited Members | |
Public Types inherited from DebuggerIO | |
enum | Colour { Black = 0, Blue = 1, Green = 2, Cyan = 3, Red = 4, Magenta = 5, Orange = 6, LightGrey = 7, DarkGrey = 8, LightBlue = 9, LightGreen = 10, LightCyan = 11, LightRed = 12, LightMagenta = 13, Yellow = 14, White = 15 } |
Provides an implementation of DebuggerIO, using the monitor and keyboard.
Default constructor and destructor.
Definition at line 24 of file LocalIO.cc.
References Vga::getNumCols(), Vga::getNumRows(), m_CursorX, m_LowerCliLimit, DebuggerIO::m_pCommand, m_pFramebuffer, m_pOldFramebuffer, m_pVga, m_UpperCliLimit, Vga::peekBuffer(), Vga::pokeBuffer(), Vga::rememberMode(), Vga::restoreMode(), and Vga::setLargestTextMode().
|
virtual |
Draw a line of characters in the given fore and back colours, in the horizontal or vertical direction. Note that if the CLI is enabled, anything drawn across the CLI area can be wiped without warning.
Implements DebuggerIO.
Definition at line 146 of file LocalIO.cc.
References DebuggerIO::m_bRefreshesEnabled, and m_pFramebuffer.
|
virtual |
Draws a string of text at the given location in the given colour. note that wrapping is not performed, the string will be clipped.
Implements DebuggerIO.
Definition at line 208 of file LocalIO.cc.
References DebuggerIO::m_bRefreshesEnabled, m_CursorX, and moveCursor().
|
virtual |
Enables or disables the command line interface, allowing full access to the display. disableCli blanks the screen, enableCli blanks it and puts a prompt up.
Implements DebuggerIO.
Definition at line 98 of file LocalIO.cc.
References Keyboard::getCharNonBlock(), m_CursorX, DebuggerIO::m_pCommand, m_pFramebuffer, m_pKeyboard, and m_UpperCliLimit.
|
virtual |
Allows disabling of refreshes, for example when deleting something then writing it back.
Implements DebuggerIO.
Definition at line 246 of file LocalIO.cc.
References DebuggerIO::m_bRefreshesEnabled, m_pFramebuffer, m_pVga, moveCursor(), and Vga::pokeBuffer().
Referenced by getWidth().
|
virtual |
Gets a character from the keyboard. Blocking. Returns 0 for a nonprintable character.
Implements DebuggerIO.
Definition at line 141 of file LocalIO.cc.
References Keyboard::getChar(), and m_pKeyboard.
Referenced by getWidth().
|
inlinevirtual |
Returns the width and height respectively of the console.
Implements DebuggerIO.
Definition at line 100 of file LocalIO.h.
References enableRefreshes(), getChar(), moveCursor(), and scroll().
|
protectedvirtual |
Updates the hardware cursor position.
Implements DebuggerIO.
Definition at line 284 of file LocalIO.cc.
References m_CursorX, m_pFramebuffer, m_pVga, and Vga::moveCursor().
Referenced by drawString(), enableRefreshes(), and getWidth().
|
protectedvirtual |
Scrolls the CLI screen down a line, if needed.
Implements DebuggerIO.
Definition at line 264 of file LocalIO.cc.
References m_LowerCliLimit, m_pFramebuffer, and m_UpperCliLimit.
Referenced by getWidth().
|
virtual |
Forces the command line interface not to use the specified number of lines from either the top or bottom of the screen, respectively. Can be used to create status lines that aren't destroyed by screen scrolling.
Implements DebuggerIO.
Definition at line 76 of file LocalIO.cc.
References m_LowerCliLimit, and m_UpperCliLimit.
|
protected |
How many lines from the bottom of the screen the bottom of our CLI area is. Current cursor position.
Definition at line 168 of file LocalIO.h.
Referenced by drawString(), enableCli(), LocalIO(), and moveCursor().
|
protected |
How many lines from the top of the screen the top of our CLI area is.
Definition at line 162 of file LocalIO.h.
Referenced by LocalIO(), scroll(), and setCliUpperLimit().
|
protected |
Definition at line 147 of file LocalIO.h.
Referenced by drawHorizontalLine(), enableCli(), enableRefreshes(), LocalIO(), moveCursor(), and scroll().
|
protected |
Keyboard driver.
Definition at line 178 of file LocalIO.h.
Referenced by enableCli(), and getChar().
|
protected |
Framebuffer for the screen before we took control.
Definition at line 152 of file LocalIO.h.
Referenced by LocalIO().
|
protected |
Vga driver.
Definition at line 173 of file LocalIO.h.
Referenced by enableRefreshes(), LocalIO(), and moveCursor().
|
protected |
Current upper and lower CLI limits.
Definition at line 160 of file LocalIO.h.
Referenced by enableCli(), LocalIO(), scroll(), and setCliUpperLimit().