88 lines
2.2 KiB
C
88 lines
2.2 KiB
C
/*
|
|
* 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 long 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 5 //50mS
|
|
#define KEY_SHORT_PRESS_MAX_TICKS 49 //490mS
|
|
#define KEY_LONG_PRESS_TICKS 50 //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
|
|
#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
|
|
|
|
//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_ */
|