Add functions anyPressed() setCursorX() setCursorY()

Suggested by @Pharap
This commit is contained in:
Scott Allen 2020-06-20 19:44:10 -04:00
parent 53096d87bf
commit 0adb83693a
3 changed files with 84 additions and 8 deletions

View File

@ -20,6 +20,7 @@ SpritesB KEYWORD1
####################################### #######################################
allPixelsOn KEYWORD2 allPixelsOn KEYWORD2
anyPressed KEYWORD2
begin KEYWORD2 begin KEYWORD2
blank KEYWORD2 blank KEYWORD2
boot KEYWORD2 boot KEYWORD2
@ -96,6 +97,8 @@ readUnitName KEYWORD2
safeMode KEYWORD2 safeMode KEYWORD2
saveOnOff KEYWORD2 saveOnOff KEYWORD2
setCursor KEYWORD2 setCursor KEYWORD2
setCursorX KEYWORD2
setCursorY KEYWORD2
setFrameDuration KEYWORD2 setFrameDuration KEYWORD2
setFrameRate KEYWORD2 setFrameRate KEYWORD2
setRGBled KEYWORD2 setRGBled KEYWORD2

View File

@ -1027,6 +1027,11 @@ bool Arduboy2Base::pressed(uint8_t buttons)
return (buttonsState() & buttons) == buttons; return (buttonsState() & buttons) == buttons;
} }
bool Arduboy2Base::anyPressed(uint8_t buttons)
{
return (buttonsState() & buttons) != 0;
}
bool Arduboy2Base::notPressed(uint8_t buttons) bool Arduboy2Base::notPressed(uint8_t buttons)
{ {
return (buttonsState() & buttons) == 0; return (buttonsState() & buttons) == 0;
@ -1317,6 +1322,16 @@ void Arduboy2::setCursor(int16_t x, int16_t y)
cursor_y = y; cursor_y = y;
} }
void Arduboy2::setCursorX(int16_t x)
{
cursor_x = x;
}
void Arduboy2::setCursorY(int16_t y)
{
cursor_y = y;
}
int16_t Arduboy2::getCursorX() int16_t Arduboy2::getCursorX()
{ {
return cursor_x; return cursor_x;

View File

@ -937,7 +937,7 @@ class Arduboy2Base : public Arduboy2Core
int cpuLoad(); int cpuLoad();
/** \brief /** \brief
* Test if the specified buttons are pressed. * Test if the all of the specified buttons are pressed.
* *
* \param buttons A bit mask indicating which buttons to test. * \param buttons A bit mask indicating which buttons to test.
* (Can be a single button) * (Can be a single button)
@ -945,16 +945,40 @@ class Arduboy2Base : public Arduboy2Core
* \return `true` if *all* buttons in the provided mask are currently pressed. * \return `true` if *all* buttons in the provided mask are currently pressed.
* *
* \details * \details
* Read the state of the buttons and return `true` if all the buttons in the * Read the state of the buttons and return `true` if all of the buttons in
* specified mask are being pressed. * the specified mask are being pressed.
* *
* Example: `if (pressed(LEFT_BUTTON | A_BUTTON))` * Example: `if (pressed(LEFT_BUTTON | A_BUTTON))`
* *
* \note * \note
* This function does not perform any button debouncing. * This function does not perform any button debouncing.
*
* \see anyPressed() notPressed()
*/ */
bool pressed(uint8_t buttons); bool pressed(uint8_t buttons);
/** \brief
* Test if any of the specified buttons are pressed.
*
* \param buttons A bit mask indicating which buttons to test.
* (Can be a single button)
*
* \return `true` if *one or more* of the buttons in the provided mask are
* currently pressed.
*
* \details
* Read the state of the buttons and return `true` if one or more of the
* buttons in the specified mask are being pressed.
*
* Example: `if (anyPressed(RIGHT_BUTTON | LEFT_BUTTON))`
*
* \note
* This function does not perform any button debouncing.
*
* \see pressed() notPressed()
*/
bool anyPressed(uint8_t buttons);
/** \brief /** \brief
* Test if the specified buttons are not pressed. * Test if the specified buttons are not pressed.
* *
@ -972,6 +996,8 @@ class Arduboy2Base : public Arduboy2Core
* *
* \note * \note
* This function does not perform any button debouncing. * This function does not perform any button debouncing.
*
* \see pressed() anyPressed()
*/ */
bool notPressed(uint8_t buttons); bool notPressed(uint8_t buttons);
@ -1590,8 +1616,10 @@ class Arduboy2 : public Print, public Arduboy2Base
/** \brief /** \brief
* Set the location of the text cursor. * Set the location of the text cursor.
* *
* \param x The X coordinate, in pixels, for the new location of the text cursor. * \param x The X (horizontal) coordinate, in pixels, for the new location of
* \param y The Y coordinate, in pixels, for the new location of the text cursor. * the text cursor.
* \param y The Y (vertical) coordinate, in pixels, for the new location of
* the text cursor.
* *
* \details * \details
* The location of the text cursor is set the the specified coordinates. * The location of the text cursor is set the the specified coordinates.
@ -1601,10 +1629,40 @@ class Arduboy2 : public Print, public Arduboy2Base
* the display. The cursor location represents the top left corner of the * the display. The cursor location represents the top left corner of the
* next character written. * next character written.
* *
* \see getCursorX() getCursorY() * \see setCursorX() setCursorY() getCursorX() getCursorY()
*/ */
void setCursor(int16_t x, int16_t y); void setCursor(int16_t x, int16_t y);
/** \brief
* Set the X coordinate of the text cursor location.
*
* \param x The X (horizontal) coordinate, in pixels, for the new location of
* the text cursor.
*
* \details
* The X coordinate for the location of the text cursor is set to the
* specified value, leaving the Y coordinate unchanged. For more details
* about the text cursor, see the `setCursor()` function.
*
* \see setCursor() setCursorY() getCursorX() getCursorY()
*/
void setCursorX(int16_t x);
/** \brief
* Set the Y coordinate of the text cursor location.
*
* \param y The Y (vertical) coordinate, in pixels, for the new location of
* the text cursor.
*
* \details
* The Y coordinate for the location of the text cursor is set to the
* specified value, leaving the X coordinate unchanged. For more details
* about the text cursor, see the `setCursor()` function.
*
* \see setCursor() setCursorX() getCursorX() getCursorY()
*/
void setCursorY(int16_t y);
/** \brief /** \brief
* Get the X coordinate of the current text cursor position. * Get the X coordinate of the current text cursor position.
* *
@ -1614,7 +1672,7 @@ class Arduboy2 : public Print, public Arduboy2Base
* The X coordinate returned is a pixel location with 0 indicating the * The X coordinate returned is a pixel location with 0 indicating the
* leftmost column. * leftmost column.
* *
* \see getCursorY() setCursor() * \see getCursorY() setCursor() setCursorX() setCursorY()
*/ */
int16_t getCursorX(); int16_t getCursorX();
@ -1627,7 +1685,7 @@ class Arduboy2 : public Print, public Arduboy2Base
* The Y coordinate returned is a pixel location with 0 indicating the * The Y coordinate returned is a pixel location with 0 indicating the
* topmost row. * topmost row.
* *
* \see getCursorX() setCursor() * \see getCursorX() setCursor() setCursorX() setCursorY()
*/ */
int16_t getCursorY(); int16_t getCursorY();