Files
TX/source/keys.h

91 lines
2.2 KiB
C
Raw Normal View History

/*
* keys.h
*
* Created on: Mar 7, 2022
* Author: Brian.Bailey
*/
#ifndef KEYS_H_
#define KEYS_H_
#include <stdint.h>
#include <stdbool.h>
#define KEY_NUM 6 //number of keys
/* Key event_bits structure
* bits 0 - 5 are KEY0 - 5 short presses
* bits 6 - 11 are KEY0 - 5 long presses
* KEY_SHORT_PRESS is 0 and KEY_LONG_PRESS is 6
* Accessing key data:
* KEY3 short press would be KEY3 or (KEY3 << SHORT_PRESS)
* KEY4 long press bit would be (KEY4 << KEY_LONG_PRESS)
*/
#define KEY0 (1 << 0)
#define KEY1 (1 << 1)
#define KEY2 (1 << 2)
#define KEY3 (1 << 3)
#define KEY4 (1 << 4)
#define KEY5 (1 << 5)
#define KEY_SHORT_PRESS 0
#define KEY_LONG_PRESS 6
#define KEY_ALL 0xfff //All short and long keypresses
#define KEY_TIMER_PERIOD_MS 10 //pdMS_TO_TICKS(25) //25mS
//Key Press Parameters
#define KEY_SHORT_PRESS_MIN_TICKS 50 //50mS
#define KEY_SHORT_PRESS_MAX_TICKS 490 //490mS
#define KEY_LONG_PRESS_TICKS 500 //500mS
//Key Aliases
//Short Press Functions
#define KEY_VOLUME KEY0 //Change Volume
#define KEY_MODE KEY1 //Change Mode //Cancel / Back in menu
#define KEY_UP KEY2 //Increase Gain //Up in menu
#define KEY_DOWN KEY3 //Decrease Gain //Down in menu
#define KEY_FREQ KEY4 //Change Frequency //Enter / Select in menu
#define KEY_MENU KEY5 //Menu
#if 1//Long Press Functions
#define KEY_POWER (KEY0 << KEY_LONG_PRESS) //Power ON/OFF
#endif
//Menu Press Functions
2025-05-29 13:12:29 -05:00
#define KEY_HOME KEY0
#define KEY_BACK KEY1 //Cancel / Back in menu
#define KEY_UP KEY2 //Up in menu
#define KEY_DOWN KEY3 //Down in menu
#define KEY_SEL KEY4 //Enter / Select in menu
#define KEY_ENTER KEY4 //Enter / Select in menu
2025-06-11 10:55:00 -05:00
#define KEY_REPEAT_TIME 100 // msec
//Keith Translations
#define ON_OFF_KEY KEY0
#define FRQ_KEY KEY4
#define PWR_UP_KEY KEY2
#define PWR_DN_KEY KEY3
#define MODE_KEY KEY1
#define MENU_KEY KEY5
void KEY_Init(void);
void KEY_ClearAll(void);
void KEY_ClearKeyPresses(void);
uint32_t KEY_WaitForKeyPress(uint32_t keyMask);
bool KEY_IsKeyPressed(uint32_t keyMask);
uint32_t KEY_GetPressed(void);
uint8_t KEY_GetModeKeyHeld(void);
uint8_t KEY_GetUpKeyHeld(void);
uint8_t KEY_GetDownKeyHeld(void);
uint8_t KEY_GetFrequencyKeyHeld(void);
uint8_t KEY_GetPowerKeyHeld(void);
void KEY_Locate(void);
void KEY_Update(void);
#endif /* KEYS_H_ */