You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
1.7 KiB
63 lines
1.7 KiB
#ifndef BUTTON_H
|
|
#define BUTTON_H
|
|
|
|
#include <QObject>
|
|
#include <QElapsedTimer>
|
|
#include <QMutex>
|
|
|
|
#include "model/csm/core/consoleComponent/ControlAbstract.h"
|
|
|
|
/*****************************************************************************/
|
|
/**
|
|
* @brief Button Class, this class is a part of console button
|
|
* @author Mohammad Mohsen Talaie
|
|
* @details
|
|
* @date 12 Jan 2021
|
|
*/
|
|
/*****************************************************************************/
|
|
class Button : public ControlAbstract
|
|
{
|
|
private:
|
|
bool _down;
|
|
QMutex _downLoker;
|
|
QElapsedTimer _timer;
|
|
|
|
QList<CommandControl_t> _currentCommandList;
|
|
QList<CommandControl_t> _longPressCommands;
|
|
QList<CommandControl_t> _commonLongPressCommands;
|
|
QMap<EConsole::eConsoleState, QList<CommandControl_t> > _longPressCommandListBasedOnState;
|
|
|
|
bool _longPressEnable;
|
|
|
|
public:
|
|
Button()
|
|
{
|
|
}
|
|
|
|
QList<CommandControl_t> getCommandList(const EConsole::eConsoleState& consoleState) override;
|
|
QList<CommandControl_t> getLongPressCommandList(const EConsole::eConsoleState& consoleState);
|
|
EConsole::eControlType getType() const override;
|
|
|
|
void loadLongPressCommands(const EConsole::eConsoleState& consoleState);
|
|
void enable() override;
|
|
void disable() override;
|
|
|
|
void appendCommonLongPressCommandList(const CommandControl_t& commandControl);
|
|
|
|
void appendLongPressCommandListBasedOnConsoleState(const QString& consoleState,
|
|
const CommandControl_t& commandControl);
|
|
|
|
//start timer
|
|
void keyDown();
|
|
|
|
//calculate timer between down and up
|
|
long keyUp();
|
|
|
|
bool isDown() const;
|
|
|
|
bool hasLongPress() const;
|
|
|
|
bool hasTimeOutExpired(const long& timeOut);
|
|
};
|
|
|
|
#endif //BUTTON_H
|
|
|