#pragma once #include "../irda-app.hpp" #include #include "irda.h" #include #include #include class IrdaApp; class IrdaAppScene { public: virtual void on_enter(IrdaApp* app) = 0; virtual bool on_event(IrdaApp* app, IrdaAppEvent* event) = 0; virtual void on_exit(IrdaApp* app) = 0; virtual ~IrdaAppScene(){}; private: }; class IrdaAppSceneStart : public IrdaAppScene { public: void on_enter(IrdaApp* app) final; bool on_event(IrdaApp* app, IrdaAppEvent* event) final; void on_exit(IrdaApp* app) final; private: uint32_t submenu_item_selected = 0; }; class IrdaAppSceneUniversal : public IrdaAppScene { public: void on_enter(IrdaApp* app) final; bool on_event(IrdaApp* app, IrdaAppEvent* event) final; void on_exit(IrdaApp* app) final; private: uint32_t submenu_item_selected = 0; }; class IrdaAppSceneLearn : public IrdaAppScene { public: void on_enter(IrdaApp* app) final; bool on_event(IrdaApp* app, IrdaAppEvent* event) final; void on_exit(IrdaApp* app) final; }; class IrdaAppSceneLearnSuccess : public IrdaAppScene { public: void on_enter(IrdaApp* app) final; bool on_event(IrdaApp* app, IrdaAppEvent* event) final; void on_exit(IrdaApp* app) final; }; class IrdaAppSceneLearnEnterName : public IrdaAppScene { public: void on_enter(IrdaApp* app) final; bool on_event(IrdaApp* app, IrdaAppEvent* event) final; void on_exit(IrdaApp* app) final; }; class IrdaAppSceneLearnDone : public IrdaAppScene { public: void on_enter(IrdaApp* app) final; bool on_event(IrdaApp* app, IrdaAppEvent* event) final; void on_exit(IrdaApp* app) final; }; class IrdaAppSceneLearnDoneAfter : public IrdaAppScene { public: void on_enter(IrdaApp* app) final; bool on_event(IrdaApp* app, IrdaAppEvent* event) final; void on_exit(IrdaApp* app) final; }; class IrdaAppSceneRemote : public IrdaAppScene { public: void on_enter(IrdaApp* app) final; bool on_event(IrdaApp* app, IrdaAppEvent* event) final; void on_exit(IrdaApp* app) final; private: std::vector buttons_names; uint32_t buttonmenu_item_selected = 0; }; class IrdaAppSceneRemoteList : public IrdaAppScene { public: void on_enter(IrdaApp* app) final; bool on_event(IrdaApp* app, IrdaAppEvent* event) final; void on_exit(IrdaApp* app) final; private: uint32_t submenu_item_selected = 0; std::vector remote_names; }; class IrdaAppSceneEdit : public IrdaAppScene { public: void on_enter(IrdaApp* app) final; bool on_event(IrdaApp* app, IrdaAppEvent* event) final; void on_exit(IrdaApp* app) final; private: uint32_t submenu_item_selected = 0; }; class IrdaAppSceneEditKeySelect : public IrdaAppScene { public: void on_enter(IrdaApp* app) final; bool on_event(IrdaApp* app, IrdaAppEvent* event) final; void on_exit(IrdaApp* app) final; private: std::vector buttons_names; }; class IrdaAppSceneEditRename : public IrdaAppScene { public: void on_enter(IrdaApp* app) final; bool on_event(IrdaApp* app, IrdaAppEvent* event) final; void on_exit(IrdaApp* app) final; }; class IrdaAppSceneEditDelete : public IrdaAppScene { public: void on_enter(IrdaApp* app) final; bool on_event(IrdaApp* app, IrdaAppEvent* event) final; void on_exit(IrdaApp* app) final; }; class IrdaAppSceneEditRenameDone : public IrdaAppScene { public: void on_enter(IrdaApp* app) final; bool on_event(IrdaApp* app, IrdaAppEvent* event) final; void on_exit(IrdaApp* app) final; }; class IrdaAppSceneEditDeleteDone : public IrdaAppScene { public: void on_enter(IrdaApp* app) final; bool on_event(IrdaApp* app, IrdaAppEvent* event) final; void on_exit(IrdaApp* app) final; };