openMSX
Public Member Functions | Static Public Attributes | List of all members
openmsx::KeyMatrixPosition Class Referencefinal

A position (row, column) in a keyboard matrix. More...

#include <UnicodeKeymap.hh>

Public Member Functions

constexpr KeyMatrixPosition ()=default
 Creates an invalid key matrix position, which can be used when a key does not exist on a particular keyboard. More...
 
constexpr KeyMatrixPosition (byte rowCol_)
 Creates a key matrix position from a byte: the row is stored in the high nibble, the column is stored in the low nibble. More...
 
constexpr KeyMatrixPosition (unsigned row, unsigned col)
 Creates a key matrix position with a given row and column. More...
 
constexpr bool isValid () const
 Returns true iff this position is valid. More...
 
constexpr unsigned getRow () const
 Returns the matrix row. More...
 
constexpr unsigned getColumn () const
 Returns the matrix column. More...
 
constexpr byte getRowCol () const
 Returns the matrix row and column combined in a single byte: the column is stored in the lower 3 bits, the row is stored in the higher bits. More...
 
constexpr unsigned getMask () const
 Returns a mask with the bit corresponding to this position's column set, all other bits clear. More...
 
constexpr bool operator== (const KeyMatrixPosition &) const =default
 

Static Public Attributes

static constexpr unsigned NUM_ROWS = 16
 Rows are in the range [0..NUM_ROWS). More...
 
static constexpr unsigned NUM_COLS = 8
 Columns are in the range [0..NUM_COLS). More...
 
static constexpr unsigned NUM_ROWCOL = 1 << 7
 Combined row and column values are in the range [0..NUM_ROWCOL). More...
 

Detailed Description

A position (row, column) in a keyboard matrix.

Definition at line 16 of file UnicodeKeymap.hh.

Constructor & Destructor Documentation

◆ KeyMatrixPosition() [1/3]

constexpr openmsx::KeyMatrixPosition::KeyMatrixPosition ( )
constexprdefault

Creates an invalid key matrix position, which can be used when a key does not exist on a particular keyboard.

◆ KeyMatrixPosition() [2/3]

constexpr openmsx::KeyMatrixPosition::KeyMatrixPosition ( byte  rowCol_)
inlineconstexpr

Creates a key matrix position from a byte: the row is stored in the high nibble, the column is stored in the low nibble.

Definition at line 35 of file UnicodeKeymap.hh.

◆ KeyMatrixPosition() [3/3]

constexpr openmsx::KeyMatrixPosition::KeyMatrixPosition ( unsigned  row,
unsigned  col 
)
inlineconstexpr

Creates a key matrix position with a given row and column.

Definition at line 42 of file UnicodeKeymap.hh.

References isValid(), NUM_COLS, and NUM_ROWS.

Member Function Documentation

◆ getColumn()

constexpr unsigned openmsx::KeyMatrixPosition::getColumn ( ) const
inlineconstexpr

Returns the matrix column.

Must only be called on valid positions.

Definition at line 67 of file UnicodeKeymap.hh.

References isValid().

Referenced by getMask().

◆ getMask()

constexpr unsigned openmsx::KeyMatrixPosition::getMask ( ) const
inlineconstexpr

Returns a mask with the bit corresponding to this position's column set, all other bits clear.

Must only be called on valid positions.

Definition at line 85 of file UnicodeKeymap.hh.

References getColumn(), and isValid().

◆ getRow()

constexpr unsigned openmsx::KeyMatrixPosition::getRow ( ) const
inlineconstexpr

Returns the matrix row.

Must only be called on valid positions.

Definition at line 59 of file UnicodeKeymap.hh.

References isValid().

◆ getRowCol()

constexpr byte openmsx::KeyMatrixPosition::getRowCol ( ) const
inlineconstexpr

Returns the matrix row and column combined in a single byte: the column is stored in the lower 3 bits, the row is stored in the higher bits.

Must only be called on valid positions.

Definition at line 76 of file UnicodeKeymap.hh.

References isValid().

Referenced by openmsx::UnicodeKeymap::getRelevantMods().

◆ isValid()

constexpr bool openmsx::KeyMatrixPosition::isValid ( ) const
inlineconstexpr

◆ operator==()

constexpr bool openmsx::KeyMatrixPosition::operator== ( const KeyMatrixPosition ) const
constexprdefault

Member Data Documentation

◆ NUM_COLS

constexpr unsigned openmsx::KeyMatrixPosition::NUM_COLS = 8
staticconstexpr

Columns are in the range [0..NUM_COLS).

Definition at line 23 of file UnicodeKeymap.hh.

Referenced by KeyMatrixPosition().

◆ NUM_ROWCOL

constexpr unsigned openmsx::KeyMatrixPosition::NUM_ROWCOL = 1 << 7
staticconstexpr

Combined row and column values are in the range [0..NUM_ROWCOL).

Definition at line 25 of file UnicodeKeymap.hh.

◆ NUM_ROWS

constexpr unsigned openmsx::KeyMatrixPosition::NUM_ROWS = 16
staticconstexpr

Rows are in the range [0..NUM_ROWS).

Definition at line 21 of file UnicodeKeymap.hh.

Referenced by openmsx::Keyboard::getKeys(), KeyMatrixPosition(), and openmsx::Keyboard::transferHostKeyMatrix().


The documentation for this class was generated from the following file: