#pragma once #include #include #include #include #include #include "Statedef.h" #include "BlockingQueue.h" #include "LCDDisplay.h" #include class IState { public: IState(/* args */){ display = std::make_unique(LCDDisplay::Language::Chinese); } virtual ~IState(){} virtual void InitState(int state=0) =0; virtual IState* OnState(StateInfo state) = 0; virtual void SetBtnCall(std::function call) = 0; std::string typeName = "FsmState"; static void SetConfirmCall(std::function confirmcall) { m_confirmcall = confirmcall; } private: static std::function m_confirmcall; protected: std::unique_ptr display; };