blob: 06f608aa6429846170f14b61d479d46cede16cd6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
#pragma once
#include "api.hpp"
// Base app
class BaseApp {
public:
struct AppAttributes {
uint id = 0;
bool destroy_on_exit = true;
};
enum AppReturnValues {
OK = 0,
CLOSE, // Close app from foreground, not respecting AppAttribues::destroy_on_exit.
QUIT // Completely quit app; stop running in background
};
// CHECK: Following have to be overwritten by derived classes
virtual const AppAttributes& app_get_attributes() = 0;
// Could be implemented as:
// {return app_attributes;}
// where app_attribues is an instance of AppAttributes
virtual AppReturnValues render(Api *app_api) = 0; // Has to be implemented
virtual AppReturnValues btnpressed(Api *app_api, uint gpio, unsigned long delta) {return AppReturnValues::OK;};
virtual AppReturnValues bgrefresh(Api *app_api, bool in_foreground) {return AppReturnValues::OK;};
};
|