OSCR
Open Source Cartridge Reader
Loading...
Searching...
No Matches
OSCR::UI Namespace Reference

User interface methods. More...

Namespaces

namespace  NeoPixel
 NeoPixel-specific methods and variables.
namespace  ProgressBar
 Progress bar methods.

Classes

class  Button
class  FlashTemplateMenu
class  IntegerTemplateMenu
class  Menu
 An interface for handling menus. More...
class  MenuBase
 A base interface for handling menus. More...
struct  MenuOptions
 Data struct for Menu instances. More...
class  MenuOptionsMenu
class  MenuRenderer
 Abstract menu renderer class. More...
class  RangeSelect
struct  rgb_t
 A structured RGB value. More...

Enumerations

enum  UserInput : uint8_t {
  kUserInputIgnore , kUserInputConfirm , kUserInputNext , kUserInputBack ,
  kUserInputConfirmShort , kUserInputConfirmLong , kUserInputUnknown
}
enum  InterfaceInput : uint8_t {
  kInterfaceInputIgnore , kInterfaceInputPress , kInterfaceInputPressDouble , kInterfaceInputPressShort ,
  kInterfaceInputPressLong
}
enum  NavDir : bool { kNavDirBackward , kNavDirForward }
enum  MenuMode : uint8_t {
  kMenuFlashString , kMenuRamFlashString , kMenuOptionStruct , kMenuNullChar ,
  kMenuFlashStringTemplate , kMenuIntegerTemplate
}

Functions

void drowse ()
void sleep ()
void wake ()
void wait ()
void waitButton ()
UserInput waitInput ()
void setup ()
void blinkLED ()
void update ()
void clear ()
void clearLine ()
UserInput checkButton ()
uint16_t rangeSelect (__FlashStringHelper const *menuTitle, uint16_t const rangeMax)
uint16_t rangeSelect (__FlashStringHelper const *menuTitle, uint16_t const rangeMin, uint16_t const rangeMax)
uint16_t rangeSelect (__FlashStringHelper const *menuTitle, uint16_t const rangeMin, uint16_t const rangeMax, uint16_t const startAt)
uint8_t menu (__FlashStringHelper const *menuTitle, char const *const menuEntries[], uint8_t entryCount)
uint8_t menu (char const *menuTitle, char const *const menuEntries[], uint8_t entryCount)
uint8_t menu (__FlashStringHelper const *menuTitle, __FlashStringHelper const *const *menuEntries, uint8_t entryCount)
uint8_t menu (char const *menuTitle, __FlashStringHelper const *const *menuEntries, uint8_t entryCount)
uint8_t menu (__FlashStringHelper const *menuTitle, char *menuEntries[], uint8_t entryCount, uint8_t entryLength=((uint8_t) 31))
uint8_t menu (char const *menuTitle, char *menuEntries[], uint8_t entryCount, uint8_t entryLength=((uint8_t) 31))
uint8_t menu (__FlashStringHelper const *menuTitle, __FlashStringHelper const *templateStr, char const *const menuEntries[], uint8_t entryCount)
uint8_t menu (char const *menuTitle, __FlashStringHelper const *templateStr, char const *const menuEntries[], uint8_t entryCount)
template<typename T, OSCR::Util::enable_if_t< OSCR::Util::is_integer< T >::value, bool > Enable = true>
uint8_t menu (__FlashStringHelper const *menuTitle, __FlashStringHelper const *templateStr, T const *menuEntries, uint8_t entryCount)
template<typename T, OSCR::Util::enable_if_t< OSCR::Util::is_integer< T >::value, bool > Enable = true>
uint8_t menu (char const *menuTitle, __FlashStringHelper const *templateStr, T const *menuEntries, uint8_t entryCount)
template<uint8_t optionCount, uint8_t optionLength>
uint8_t menu (__FlashStringHelper const *menuTitle, MenuOptions< optionCount, optionLength > &menuEntries)
template<uint8_t optionCount, uint8_t optionLength>
uint8_t menu (char const *menuTitle, MenuOptions< optionCount, optionLength > &menuEntries)
void printHeader (char const *title)
void printHeader (__FlashStringHelper const *title)
void printNotificationHeader (char const *title)
void printNotificationHeader (__FlashStringHelper const *title)
void printErrorHeader (char const *title)
void printErrorHeader (__FlashStringHelper const *title)
void printFatalErrorHeader (char const *title)
void printFatalErrorHeader (__FlashStringHelper const *title)
template<bool prfx = true, typename T, OSCR::Util::if_is_any_unsigned_t< T > Enable = true>
void printHex (T number)
template<bool prfx = true, typename T, OSCR::Util::if_is_any_unsigned_t< T > Enable = true>
void printHexLine (T number)
template<bool sync = false, typename T, OSCR::Util::enable_if_t<!(OSCR::Util::is_number< T >::value), bool > Enable = true, OSCR::Util::enable_if_t<!(OSCR::Util::is_printable< T >::value), bool > NonPrintable = true>
void print (T string)
template<bool sync = false, typename T, OSCR::Util::enable_if_t<!(OSCR::Util::is_number< T >::value), bool > Enable = true, OSCR::Util::enable_if_t<!(OSCR::Util::is_printable< T >::value), bool > NonPrintable = true>
void printLine (T string)
template<typename T, OSCR::Util::enable_if_t<!(OSCR::Util::is_number< T >::value), bool > Enable = true, OSCR::Util::enable_if_t<!(OSCR::Util::is_printable< T >::value), bool > NonPrintable = true>
void printSync (T string)
template<typename T, OSCR::Util::enable_if_t<!(OSCR::Util::is_number< T >::value), bool > Enable = true, OSCR::Util::enable_if_t<!(OSCR::Util::is_printable< T >::value), bool > NonPrintable = true>
void printLineSync (T string)
template<bool sync = false>
void printLine (void)
void printLineSync (void)
template<bool sync = false, typename Tint, OSCR::Util::enable_if_t< OSCR::Util::is_integer< Tint >::value, bool > Enable = true>
void print (Tint number, int base=10)
template<bool sync = false, typename Tint, OSCR::Util::enable_if_t< OSCR::Util::is_integer< Tint >::value, bool > Enable = true>
void printLine (Tint number, int base=10)
template<bool sync = false, typename Tint, OSCR::Util::enable_if_t< OSCR::Util::is_integer< Tint >::value, bool > Enable = true>
void printSync (Tint number, int base=10)
template<bool sync = false, typename Tint, OSCR::Util::enable_if_t< OSCR::Util::is_integer< Tint >::value, bool > Enable = true>
void printLineSync (Tint number, int base=10)
void setLineRel (int8_t numLines)
void gotoLast ()
void gotoLine (uint8_t lineNumber)
void gotoLineBottom (uint8_t lineNumber)
bool overlapsCurrentLine (uint8_t lineNumber)
bool overlapsCurrentLineBottom (uint8_t lineNumber)
void _notificationFormat ()
void _notification (void)
void _errorFormat ()
void _error ()
void _fatalErrorFormat ()
void _fatalError ()
void notification (void)
template<typename T, OSCR::Util::enable_if_t<!(OSCR::Util::is_number< T >::value), bool > Enable = true>
void notification (T message)
void error (void)
template<typename T, OSCR::Util::enable_if_t<!(OSCR::Util::is_number< T >::value), bool > Enable = true>
void error (T message)
void fatalError (void)
template<typename T, OSCR::Util::enable_if_t<!(OSCR::Util::is_number< T >::value), bool > Enable = true>
void fatalError (T message)
void ncFatalErrorStorage ()
void fatalErrorStorage ()
void fatalErrorBufferOverflow ()
void fatalErrorNameOverflow ()
void fatalErrorNoBuffer ()
void fatalErrorInvalidData ()
void print (OSCR::Storage::Path const *path)
void printLine (OSCR::Storage::Path const *path)
void print (OSCR::Storage::Path const &path)
void printLine (OSCR::Storage::Path const &path)
void printSync (OSCR::Storage::Path const *path)
void printLineSync (OSCR::Storage::Path const *path)
void printSync (OSCR::Storage::Path const &path)
void printLineSync (OSCR::Storage::Path const &path)
void print (OSCR::CRC32::crc32_t const *crc32)
void printLine (OSCR::CRC32::crc32_t const *crc32)
void print (OSCR::CRC32::crc32_t const &crc32)
void printLine (OSCR::CRC32::crc32_t const &crc32)
void printSync (OSCR::CRC32::crc32_t const *crc32)
void printLineSync (OSCR::CRC32::crc32_t const *crc32)
void printSync (OSCR::CRC32::crc32_t const &crc32)
void printLineSync (OSCR::CRC32::crc32_t const &crc32)
template<typename T, OSCR::Util::if_is_integer_t< T > Enable>
uint8_t menu (__FlashStringHelper const *menuTitle, __FlashStringHelper const *templateStr, T const *menuEntries, uint8_t entryCount)
template<typename T, OSCR::Util::if_is_integer_t< T > Enable>
uint8_t menu (char const *menuTitle, __FlashStringHelper const *templateStr, T const *menuEntries, uint8_t entryCount)
void printLine (void)
template<typename T, OSCR::Util::enable_if_t<!(OSCR::Util::is_number< T >::value), bool > Enable, OSCR::Util::enable_if_t<!(OSCR::Util::is_printable< T >::value), bool > NonPrintable>
void print (T string)
template<typename T, OSCR::Util::enable_if_t<!(OSCR::Util::is_number< T >::value), bool > Enable, OSCR::Util::enable_if_t<!(OSCR::Util::is_printable< T >::value), bool > NonPrintable>
void printLine (T string)
template<typename Tint, OSCR::Util::enable_if_t< OSCR::Util::is_integer< Tint >::value, bool > Enable>
void print (Tint number, int base)
template<typename Tint, OSCR::Util::enable_if_t< OSCR::Util::is_integer< Tint >::value, bool > Enable>
void printLine (Tint number, int base)
bool getCommand ()

Variables

constexpr uint32_t const kLongHold = 5000
constexpr uint32_t const kShortHold = 2000
constexpr uint32_t const kDoubleClick = 250
constexpr uint32_t const kDebounceDelay = 20
bool const kSupportsLineAdjments
uint8_t const kDisplayWidth
 Display width in pixels (0 = unsupported).
uint8_t const kDisplayHeight
 Display height in pixels (0 = unsupported).
uint8_t const kLineHeight
 Line height in pixels (0 = unsupported).
uint8_t const kDisplayLines
 Lines that can be seen at once (0 = unlimited).
uint8_t const kDisplayLineStart
 Y position of the first line.
bool menuActive = false
uint8_t menuSelection = 0
uint8_t selection = 0
char command [commandMax]

Detailed Description

User interface methods.

Enumeration Type Documentation

◆ InterfaceInput

enum OSCR::UI::InterfaceInput : uint8_t

Enumeration of interface input events.

◆ MenuMode

enum OSCR::UI::MenuMode : uint8_t

Menu modes for the type of array that was passed to the Menu constructor.

◆ NavDir

enum OSCR::UI::NavDir : bool

Enumeration of navigation events.

◆ UserInput

enum OSCR::UI::UserInput : uint8_t

Enumeration of user input events.

Function Documentation

◆ _error()

void OSCR::UI::_error ( void )
extern

Internal function implemented by the UI output implementation which is called when an error occurs.

See also
error()

◆ _errorFormat()

void OSCR::UI::_errorFormat ( )
extern

Internal function implemented by the UI output implementation which is called when an error occurs, before any output.

See also
error()

Messages

◆ _fatalError()

void OSCR::UI::_fatalError ( void )
extern

Internal function implemented by the UI output implementation which is called when a fatal error occurs.

See also
fatalError()

◆ _fatalErrorFormat()

void OSCR::UI::_fatalErrorFormat ( )
extern

Internal function implemented by the UI output implementation which is called when a fatal error occurs, before any output.

See also
fatalError()

◆ _notification()

void OSCR::UI::_notification ( void )
extern

Internal function implemented by the UI output implementation which is called when a notification occurs.

See also
notification()

◆ _notificationFormat()

void OSCR::UI::_notificationFormat ( )
extern

Internal function implemented by the UI output implementation which is called when a notification occurs, before any output.

See also
notification()

◆ blinkLED()

void OSCR::UI::blinkLED ( )
extern

Toggle the LED

Toggle the LED present on some hardware versions

◆ checkButton()

UserInput OSCR::UI::checkButton ( )
extern

Check for user input.

◆ clear()

void OSCR::UI::clear ( )
extern

Clear the output.

◆ clearLine()

void OSCR::UI::clearLine ( )
extern

Clear the current line. Creates a newline if unsupported.

◆ drowse()

void OSCR::UI::drowse ( )
extern

Enter drowse state (dim displays, LEDs, etc.)

◆ error() [1/2]

template<typename T, OSCR::Util::enable_if_t<!(OSCR::Util::is_number< T >::value), bool > Enable = true>
void OSCR::UI::error ( T message)
extern

Output an error message and wait for input to continue.

Parameters
messageThe message to output.
Template Parameters
TAny non-numeric type supported by printLine()

◆ error() [2/2]

void OSCR::UI::error ( void )
extern

Set the error format but don't output anything.

◆ fatalError() [1/2]

template<typename T, OSCR::Util::enable_if_t<!(OSCR::Util::is_number< T >::value), bool > Enable = true>
void OSCR::UI::fatalError ( T message)
extern

Output an error message and wait for input to reset.

Parameters
messageThe message to output.
Returns
never
Template Parameters
TAny non-numeric type supported by printLine()

◆ fatalError() [2/2]

void OSCR::UI::fatalError ( void )
extern

Set the fatal error format but don't output anything.

◆ fatalErrorBufferOverflow()

void OSCR::UI::fatalErrorBufferOverflow ( )
extern

Clear and output a fatal buffer overflow message.

Returns
never

◆ fatalErrorInvalidData()

void OSCR::UI::fatalErrorInvalidData ( )
extern

Clear and output a fatal invalid data message.

Returns
never

◆ fatalErrorNameOverflow()

void OSCR::UI::fatalErrorNameOverflow ( )
extern

Clear and output a fatal buffer overflow (name) message.

Returns
never

◆ fatalErrorNoBuffer()

void OSCR::UI::fatalErrorNoBuffer ( )
extern

Clear and output a fatal no buffer message.

Returns
never

◆ fatalErrorStorage()

void OSCR::UI::fatalErrorStorage ( )
extern

Clear and output a fatal SD error message.

Returns
never

◆ gotoLast()

void OSCR::UI::gotoLast ( )
extern

Go to the last line of the display. For outputs without a fixed number of lines, such as serial, this will output one new line instead.

◆ gotoLine()

void OSCR::UI::gotoLine ( uint8_t lineNumber)
extern

Go to the specified line of the display. For outputs without a way to change lines, such as ASCII serial, this does nothing.

Parameters
lineNumberThe line number.

◆ gotoLineBottom()

void OSCR::UI::gotoLineBottom ( uint8_t lineNumber)
extern

Go to the specified line of the display, counting from the bottom. For outputs without a way to change lines, such as ASCII serial, this prints a new line instead.

Parameters
lineNumberThe line number.

◆ menu() [1/4]

uint8_t OSCR::UI::menu ( __FlashStringHelper const * menuTitle,
__FlashStringHelper const *const * menuEntries,
uint8_t entryCount )
extern

Prompt a user to select from an array of choices and return the index of the selection.

Parameters
menuTitleA flash string to use for the menu title.
menuEntriesAn array of flash strings located in SRAM.
entryCountHow many entries are in menuEntries (usually sizeofarray(menuEntries)).

◆ menu() [2/4]

uint8_t OSCR::UI::menu ( __FlashStringHelper const * menuTitle,
char * menuEntries[],
uint8_t entryCount,
uint8_t entryLength = ((uint8_t)31) )
extern

Prompt a user to select from an array of choices and return the index of the selection.

Parameters
menuTitleA flash string to use for the menu title.
menuEntriesAn array of null-terminated strings.
entryCountTotal entries in menuEntries (usually sizeofarray(menuEntries)).
entryLengthMaxinum length of an entry in menuEntries.

◆ menu() [3/4]

uint8_t OSCR::UI::menu ( __FlashStringHelper const * menuTitle,
char const *const menuEntries[],
uint8_t entryCount )
extern

Prompt a user to select from an array of choices and return the index of the selection.

Parameters
menuTitleA flash string to use for the menu title.
menuEntriesAn array of flash strings located in PROGMEM.
entryCountHow many entries are in menuEntries (usually sizeofarray(menuEntries)).

◆ menu() [4/4]

template<uint8_t optionCount, uint8_t optionLength>
uint8_t OSCR::UI::menu ( __FlashStringHelper const * menuTitle,
MenuOptions< optionCount, optionLength > & menuEntries )
extern

Prompt a user to select from an array of choices and return the index of the selection.

Parameters
menuTitleA flash string to use for the menu title.
menuEntriesAn instance of MenuOptions ready for use.

◆ ncFatalErrorStorage()

void OSCR::UI::ncFatalErrorStorage ( )
extern

Output a fatal SD error message.

Returns
never

◆ notification() [1/2]

template<typename T, OSCR::Util::enable_if_t<!(OSCR::Util::is_number< T >::value), bool > Enable = true>
void OSCR::UI::notification ( T message)
extern

Output a notification message and wait for input to continue.

Parameters
messageThe message to output.
Template Parameters
TAny non-numeric type supported by printLine()

◆ notification() [2/2]

void OSCR::UI::notification ( void )
extern

Set the notification format but don't output anything.

◆ overlapsCurrentLine()

bool OSCR::UI::overlapsCurrentLine ( uint8_t lineNumber)
extern

Checks if the specified line number will overlap the current line. For outputs without a way to change lines, such as ASCII serial, this is always false.

Parameters
lineNumberThe line number.

◆ overlapsCurrentLineBottom()

bool OSCR::UI::overlapsCurrentLineBottom ( uint8_t lineNumber)
extern

Checks if the specified line number, counting from the bottom, will overlap the current line. For outputs without a way to change lines, such as ASCII serial, this is always false.

Parameters
lineNumberThe line number.

◆ print() [1/2]

template<bool sync = false, typename T, OSCR::Util::enable_if_t<!(OSCR::Util::is_number< T >::value), bool > Enable = true, OSCR::Util::enable_if_t<!(OSCR::Util::is_printable< T >::value), bool > NonPrintable = true>
void OSCR::UI::print ( T string)
extern

Output a string to the UI.

Parameters
stringThe string to output.
Template Parameters
TA type of string

◆ print() [2/2]

template<bool sync = false, typename Tint, OSCR::Util::enable_if_t< OSCR::Util::is_integer< Tint >::value, bool > Enable = true>
void OSCR::UI::print ( Tint number,
int base = 10 )
extern

Output a number to the UI.

Parameters
numberThe number to output.
baseThe base to display the number in.
Template Parameters
TintA type of interger

◆ printErrorHeader()

void OSCR::UI::printErrorHeader ( char const * title)
extern

Print a string using the error header format.

◆ printFatalErrorHeader()

void OSCR::UI::printFatalErrorHeader ( char const * title)
extern

Print a string using the fatal error header format.

◆ printHeader()

void OSCR::UI::printHeader ( char const * title)
extern

Print a string using the header format.

◆ printHex()

template<bool prfx = true, typename T, OSCR::Util::if_is_any_unsigned_t< T > Enable = true>
void OSCR::UI::printHex ( T number)
extern

Print a number as hex.

Parameters
numberThe number to print.

◆ printHexLine()

template<bool prfx = true, typename T, OSCR::Util::if_is_any_unsigned_t< T > Enable = true>
void OSCR::UI::printHexLine ( T number)
extern

Print a number as hex, followed by a new line.

Parameters
numberThe number to print.

◆ printLine() [1/3]

template<bool sync = false, typename T, OSCR::Util::enable_if_t<!(OSCR::Util::is_number< T >::value), bool > Enable = true, OSCR::Util::enable_if_t<!(OSCR::Util::is_printable< T >::value), bool > NonPrintable = true>
void OSCR::UI::printLine ( T string)
extern

Output a string and a newline character to the UI.

Parameters
stringThe string to output.
Template Parameters
TA type of string

◆ printLine() [2/3]

template<bool sync = false, typename Tint, OSCR::Util::enable_if_t< OSCR::Util::is_integer< Tint >::value, bool > Enable = true>
void OSCR::UI::printLine ( Tint number,
int base = 10 )
extern

Output a number and a newline character to the UI.

Parameters
numberThe number to output.
baseThe base to display the number in.
Template Parameters
TintA type of interger

◆ printLine() [3/3]

template<bool sync = false>
void OSCR::UI::printLine ( void )
extern

Output a newline character to the UI.

Parameters
stringThe string to output.

◆ printLineSync() [1/3]

template<typename T, OSCR::Util::enable_if_t<!(OSCR::Util::is_number< T >::value), bool > Enable = true, OSCR::Util::enable_if_t<!(OSCR::Util::is_printable< T >::value), bool > NonPrintable = true>
void OSCR::UI::printLineSync ( T string)
inline

Output a string and a newline character to the UI.

Parameters
stringThe string to output.
Template Parameters
TA type of string

◆ printLineSync() [2/3]

template<bool sync = false, typename Tint, OSCR::Util::enable_if_t< OSCR::Util::is_integer< Tint >::value, bool > Enable = true>
void OSCR::UI::printLineSync ( Tint number,
int base = 10 )
extern

Output a number and a newline character to the UI.

Parameters
numberThe number to output.
baseThe base to display the number in.
Template Parameters
TintA type of interger

◆ printLineSync() [3/3]

void OSCR::UI::printLineSync ( void )
inline

Output a newline character to the UI.

Parameters
stringThe string to output.

◆ printNotificationHeader()

void OSCR::UI::printNotificationHeader ( char const * title)
extern

Print a string using the notification header format.

◆ printSync() [1/2]

template<typename T, OSCR::Util::enable_if_t<!(OSCR::Util::is_number< T >::value), bool > Enable = true, OSCR::Util::enable_if_t<!(OSCR::Util::is_printable< T >::value), bool > NonPrintable = true>
void OSCR::UI::printSync ( T string)
inline

Output a string to the UI.

Parameters
stringThe string to output.
Template Parameters
TA type of string

◆ printSync() [2/2]

template<bool sync = false, typename Tint, OSCR::Util::enable_if_t< OSCR::Util::is_integer< Tint >::value, bool > Enable = true>
void OSCR::UI::printSync ( Tint number,
int base = 10 )
inline

Output a number to the UI.

Parameters
numberThe number to output.
baseThe base to display the number in.
Template Parameters
TintA type of interger

◆ setLineRel()

void OSCR::UI::setLineRel ( int8_t numLines)
extern

Printing doubles is expensive (~1KB), so we don't do it.

These functions are defined as deleted so the compiler error makes more sense. Without this, the compiler complains about the other templates not being a match.

Warning
DO NOT USE. THE COMPILER WILL ERROR.
Deprecated

Printing doubles is expensive (~1KB), so we don't do it.

These functions are defined as deleted so the compiler error makes more sense. Without this, the compiler complains about the other templates not being a match.

Warning
DO NOT USE. THE COMPILER WILL ERROR.
Deprecated

Move the cursor to the start of a line relative to the current line.

Parameters
numLinesThe number of lines.

◆ setup()

void OSCR::UI::setup ( )
extern

Run UI setup.

◆ sleep()

void OSCR::UI::sleep ( )
extern

Enter sleep state (disable displays, LEDs, etc.)

◆ update()

void OSCR::UI::update ( )
extern

Update the output target with any pending data.

◆ wait()

void OSCR::UI::wait ( )
extern

Wait for any user input (button press, etc).

◆ waitButton()

void OSCR::UI::waitButton ( )
extern

Prompt the user to push a button and wait for them to do so.

◆ waitInput()

UserInput OSCR::UI::waitInput ( )
extern

Wait for any user input and return that input event.

◆ wake()

void OSCR::UI::wake ( )
extern

Enter wake state (enable displays, LEDs, etc.)

Variable Documentation

◆ kDisplayHeight

uint8_t const OSCR::UI::kDisplayHeight
extern

Display height in pixels (0 = unsupported).

The height of the display in pixels, or 0 if the output does not support graphics.

◆ kDisplayLines

uint8_t const OSCR::UI::kDisplayLines
extern

Lines that can be seen at once (0 = unlimited).

The number of lines the output can shown at a time, or 0 for an unlimited (infinite) number of lines.

◆ kDisplayLineStart

uint8_t const OSCR::UI::kDisplayLineStart
extern

Y position of the first line.

The Y position of the first line. This variable can be 0, so check kDisplayLines or another variable for line support.

◆ kDisplayWidth

uint8_t const OSCR::UI::kDisplayWidth
extern

Display width in pixels (0 = unsupported).

The width of the display in pixels, or 0 if the output does not support graphics.

◆ kLineHeight

uint8_t const OSCR::UI::kLineHeight
extern

Line height in pixels (0 = unsupported).

The height of a line on the display in pixels, or 0 if the output does not support graphics.

◆ menuActive

bool OSCR::UI::menuActive = false

Define if a menu is active.

◆ menuSelection

uint8_t OSCR::UI::menuSelection = 0

The user's selection from a menu.

◆ selection

uint8_t OSCR::UI::selection = 0

The user's selection from a non-menu. This allows non-menu methods to ask for numerical input, such as the size of a cartridge, etc. It's split out so they don't need to store the result.