33 lines
732 B
C++
33 lines
732 B
C++
#pragma once
|
|
#include <sstream>
|
|
#include <thread>
|
|
#include <memory>
|
|
#include <atomic>
|
|
#include <functional>
|
|
#include "Statedef.h"
|
|
#include "BlockingQueue.h"
|
|
#include "LCDDisplay.h"
|
|
|
|
class IState
|
|
{
|
|
public:
|
|
IState(/* args */){
|
|
display = std::make_unique<LCDDisplay>();
|
|
}
|
|
virtual ~IState(){}
|
|
virtual void InitState(int state=0) =0;
|
|
virtual IState* OnState(StateInfo state) = 0;
|
|
virtual void SetBtnCall(std::function<void()> call) = 0;
|
|
std::string typeName = "FsmState";
|
|
static void SetConfirmCall(std::function<void()> confirmcall)
|
|
{
|
|
m_confirmcall = confirmcall;
|
|
}
|
|
private:
|
|
static std::function<void()> m_confirmcall;
|
|
protected:
|
|
std::unique_ptr<LCDDisplay> display;
|
|
};
|
|
|
|
|