openMSX
Public Member Functions | Static Public Attributes | Friends | 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...
 

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...
 

Friends

constexpr friend bool operator== (const KeyMatrixPosition &x, const KeyMatrixPosition &y)
 

Detailed Description

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

Definition at line 14 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 33 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 40 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 65 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 83 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 57 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 74 of file UnicodeKeymap.hh.

References isValid().

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

◆ isValid()

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

Friends And Related Function Documentation

◆ operator==

constexpr friend bool operator== ( const KeyMatrixPosition x,
const KeyMatrixPosition y 
)
friend

Definition at line 88 of file UnicodeKeymap.hh.

Member Data Documentation

◆ NUM_COLS

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

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

Definition at line 21 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 23 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 19 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: