ERIS CORE

◆ AppManager()

FLASHMEM AppManager::AppManager ( )
private

Construct a new App Manager:: App Manager object using a private constructor (lazy singleton pattern)

Definition at line 48 of file AppManager.cpp.

48  {
49  ad = 0;
50  data = &_data;
51  root = 0;
52  active_app_id = 0;
53  p_active_app = 0;
54  next_id_assignment = 1; //id 0 is reserved
57  //attach the global imgCache buffer to a surface
58  memset(imgCache,0,sizeof(imgCache));
59  p_fast_img_cache_surface = new Surface(&imgCache[0],AM_IMG_CACHE_SIZE);
60  p_display_surface = new Surface(&FB1[0],SCREEN_WIDTH,SCREEN_HEIGHT);
61 
62  //init the app focus and app stacks
63  memset(&app_focus_stack,0,sizeof(app_focus_stack));
64  memset(&app_popup_stack,0,sizeof(app_popup_stack));
67  exclusive_app_render = false;
68  cycle_time_max = 0;
69  //init the sd card
70  if (!sd.begin(SdioConfig(FIFO_SDIO))){
71  Serial.println(F("M AppManager: FATAL! SD Card Not Found "));
72  sd.initErrorHalt(&Serial);
73  } else {Serial.println(F("AppManager: SD Card FOUND"));}
74  //init the display
75  Serial.println(F("M AppManager: Config display"));
76  draw.setPWMPin(TFT_LED_PWM); //library will control the backlight
77  draw.setSD(&sd); //provide a cd pointer to the sd class
78  draw.setFrameBuffer(FB1);
79  draw.useFrameBuffer(true);
80 
81  //render.setPWMPin(TFT_LED_PWM); //library will control the backlight
82  //render.setSD(&sd); //provide a cd pointer to the sd class
83  //render.setFrameBuffer(FB1);
84  //render.useFrameBuffer(true);
86  animated_wallpaper.setPath(UI_ANIMATED_WALLPAPER_PATH);
87  Serial.println(F("M AppManager: Init display"));
88  draw.begin();
89  //render.begin();
90  Serial.println(F("M AppManager: Init touch controller"));
91  //init the touch screen
92  touch.setCalibrationInputs(452,374,3830,3800); //inital cal values; app manager will monitor and update
93  touch.setRotation(3);
94  touch.begin();
95  touch_state = 0;
96  touched_elapsed =0;
97  //enable cpu temp monitoring
98  tempmon_init();
99  //set the default template colors for the gui
100  data->create(UI_BUTTON_FILL_COLOR,(int32_t)76);
101  data->create(UI_BUTTON_SHADE_COLOR,(int32_t)37);
102  data->create(UI_BUTTON_ACTIVE_BORDER_COLOR,(int32_t)23254);
103  data->create(UI_BUTTON_INACTIVE_BORDER_COLOR,(int32_t)23244);
104  data->create(UI_BUTTON_TEXT_COLOR,(int32_t)50713);
105  data->create(UI_SLIDER_BORDER_COLOR,(int32_t)44374);
106  data->create(UI_SLIDER_SHADE_COLOR,(int32_t)44344);
107  data->create(UI_SLIDER_FILL_COLOR,(int32_t)1530);
108  data->create(UI_SLIDER_TEXT_COLOR,(int32_t)39222);
109 
110  Serial.println(F("M AppManager: Contructor complete"));
111  #ifdef ENABLE_ASYNC_SCREEN_UPDATES
112  //render.updateScreenAsync(true);
114  #endif
115  //log any crash reports
116  Serial.println(F("M AppManager: Checking for crash report"));
117  if (CrashReport){
118  //Serial.print(CrashReport);
119  FsFile f = sd.open("/crashreport.txt",O_CREAT|O_WRITE);
120  f.print(CrashReport);
121  f.flush();
122  f.close();
123  }
124 };
SvcDataDictionary _data
Definition: AppManager.cpp:42
uint16_t EXTMEM imgCache[AM_IMG_CACHE_SIZE]
Definition: AppManager.cpp:37
ILI9341_t3_ERIS draw(TFT_CS, TFT_DC, TFT_RESET, TFT_MOSI, TFT_SCLK, TFT_MISO)
Touch touch(CS_TOUCH)
uint16_t DMAMEM FB1[SCREEN_WIDTH *SCREEN_HEIGHT]
Definition: AppManager.cpp:36
@ redraw_objects
Definition: AppManager.h:29
void setPath(const char *path)
void setSD(SdFs *ptr)
Surface * p_fast_img_cache_surface
Definition: AppManager.h:64
AppBaseClass * root
Definition: AppManager.h:38
uint16_t cycle_time_max
Definition: AppManager.h:42
Surface * p_display_surface
Definition: AppManager.h:65
AppBaseClass * p_active_app
Definition: AppManager.h:39
uint8_t app_focus_stack_index
Definition: AppManager.h:53
elapsedMillis touched_elapsed
Definition: AppManager.h:46
uint16_t next_id_assignment
Definition: AppManager.h:40
bool exclusive_app_render
Definition: AppManager.h:55
elapsedMillis display_refresh_time
Definition: AppManager.h:43
elapsedMillis monitor_dd_update_timer
Definition: AppManager.h:45
bool touch_state
Definition: AppManager.h:50
loopState state
Definition: AppManager.h:48
SvcDataDictionary * data
Definition: AppManager.h:63
uint16_t app_focus_stack[8]
Definition: AppManager.h:51
uint8_t app_popup_stack_index
Definition: AppManager.h:54
uint16_t app_popup_stack[8]
Definition: AppManager.h:52
Animation animated_wallpaper
Definition: AppManager.h:47
AudioDirector * ad
Definition: AppManager.h:62
uint16_t active_app_id
Definition: AppManager.h:41
void setSD(SdFs *ptr)
void setPWMPin(uint8_t pin)
a Surface object manages a memory block with defined width and height dimensions
bool create(const char *key, int32_t val, uint32_t *owner)
create a record with ownership
bool begin()
Definition: touch.cpp:10
void setCalibrationInputs(uint16_t raw_minx, uint16_t raw_miny, uint16_t raw_maxx, uint16_t raw_maxy)
Definition: Touch.h:31

References _data, active_app_id, ad, animated_wallpaper, app_focus_stack, app_focus_stack_index, app_popup_stack, app_popup_stack_index, ILI9341_t3_ERIS::begin(), Touch::begin(), SvcDataDictionary::create(), cycle_time_max, data, display_refresh_time, draw, exclusive_app_render, FB1, imgCache, monitor_dd_update_timer, next_id_assignment, p_active_app, p_display_surface, p_fast_img_cache_surface, redraw_objects, root, sd, Touch::setCalibrationInputs(), Animation::setPath(), ILI9341_t3_ERIS::setPWMPin(), Animation::setSD(), ILI9341_t3_ERIS::setSD(), state, touch, touch_state, and touched_elapsed.

Referenced by getInstance().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: