📄 headset_buttons.h
字号:
/****************************************************************************
Copyright (C) Cambridge Silicon Radio Ltd. 2004-2006
Part of BlueLab 3.5.2-release
FILE NAME
headset_buttons.h
DESCRIPTION
*/
#ifndef HEADSET_BUTTONS_H
#define HEADSET_BUTTONS_H
#include <message.h>
#include "headset_buttons.h"
#include "headset_events.h"
typedef enum ButtonsTimeTag
{
B_INVALID ,
B_SHORT ,
B_LONG ,
B_VERY_LONG ,
B_DOUBLE ,
B_REPEAT ,
B_LOW_TO_HIGH ,
B_HIGH_TO_LOW ,
B_SHORT_SINGLE,
B_LONG_RELEASE,
B_VERY_LONG_RELEASE
}ButtonsTime_t ;
/*usd byt the button manager*/
typedef struct ButtonEventsTag
{
uint16 ButtonMask ;
uint16 StateMask ;
ButtonsTime_t Duration ;
uint16 Event ;
}ButtonEvents_t ;
#define BM_NUM_BUTTON_MATCH_PATTERNS 2
#define BM_NUM_BUTTONS_PER_MATCH_PATTERN 6
typedef struct ButtonPatternTag
{
headsetEvents_t EventToSend ;
uint16 NumberOfMatches ;
uint16 ButtonToMatch[BM_NUM_BUTTONS_PER_MATCH_PATTERN] ;
}ButtonMatchPattern_t ;
typedef struct
{
TaskData task;
Task client;
uint16 gBOldState ; /*the last state we received*/
ButtonsTime_t gBTime ;
uint16 gBDoubleState ;
uint16 gButtonLevelMask ; /*mask used when detecting the PIOs changed*/
uint16 gButtonEdgeMask ;
uint16 gBOldEdgeState ;
uint16 gBLongDuration_ms ;
uint16 gBVeryLongDuration_ms ;
uint16 gBDoubleDuration_ms ;
uint16 gBRepeatDuration_ms ;
unsigned gBDoubleTap:1 ;
/*used by the button manager*/
unsigned gNumEventsConfigured:15; /*max 40*/
ButtonEvents_t * gButtonEvents [2] ;/*pointer to the array of button event maps*/
ButtonMatchPattern_t * gButtonPatterns [BM_NUM_BUTTON_MATCH_PATTERNS]; /*the button match patterns*/
uint16 gButtonMatchProgress[BM_NUM_BUTTON_MATCH_PATTERNS] ; /*the progress achieved*/
} BTaskData;
/*enum to register abutton as an edge or level triggering button*/
typedef enum ButtonTriggerTypeTag
{
ButtonLevelTrigger ,
ButtonEdgeTrigger
}ButtonTriggerType_t ;
/****************************************************************************
NAME
buttonManagerInit
DESCRIPTION
Initialises the button event
RETURNS
void
*/
void ButtonsInit ( BTaskData *pBTask ) ;
/*************************************************************
NAME
ButtonsRegisterButtons
DESCRIPTION
Registers buttons contained in the mask so that they will be detected by
the button task
RETURNS
void
*/
void ButtonsRegisterButtons (BTaskData *pBTask, uint16 pButtonMask , ButtonTriggerType_t pTrigger) ;
/*************************************************************
NAME
ButtonsUnRegisterButtons
DESCRIPTION
Removes Registered buttons contained in the mask so that they will be detected by
the button task
RETURNS
void
*/
void ButtonsUnRegisterButtons (BTaskData *pBTask, uint16 pButtonMask ) ;
/*************************************************************
NAME
ButtonsConfigDurations
DESCRIPTION
Sets up the configurable button durations
RETURNS
void
*/
void ButtonsConfigDurations (BTaskData *pBTask, uint16 pLong , uint16 pVeryLong , uint16 pDouble , uint16 pRepeat ) ;
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -