| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163 |
- #pragma once
- #include "../irda-app-event.hpp"
- #include <api-hal-irda.h>
- #include "irda.h"
- #include <vector>
- #include <string>
- #include "../irda-app-brute-force.hpp"
- 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 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<std::string> 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<std::string> 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<std::string> 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;
- };
- class IrdaAppSceneUniversalCommon : public IrdaAppScene {
- bool brute_force_started = false;
- protected:
- bool on_event(IrdaApp* app, IrdaAppEvent* event) final;
- void on_exit(IrdaApp* app) final;
- IrdaAppBruteForce brute_force;
- void remove_popup(IrdaApp* app);
- void show_popup(IrdaApp* app, int record_amount);
- void progress_popup(IrdaApp* app);
- static void irda_app_item_callback(void* context, uint32_t index);
- IrdaAppSceneUniversalCommon(const char* filename) : brute_force(filename) {}
- ~IrdaAppSceneUniversalCommon() {}
- };
- class IrdaAppSceneUniversalTV : public IrdaAppSceneUniversalCommon {
- public:
- void on_enter(IrdaApp* app) final;
- IrdaAppSceneUniversalTV()
- : IrdaAppSceneUniversalCommon("/ext/irda/universal/tv.ir") {
- }
- ~IrdaAppSceneUniversalTV() {}
- };
- class IrdaAppSceneUniversalAudio : public IrdaAppSceneUniversalCommon {
- public:
- void on_enter(IrdaApp* app) final;
- IrdaAppSceneUniversalAudio() : IrdaAppSceneUniversalCommon("/ext/irda/universal/audio.ir") {}
- ~IrdaAppSceneUniversalAudio() {}
- };
|