PocketPutr/Desktop_Test/program.cpp
2026-01-05 16:57:37 +01:00

31 lines
681 B
C++

#include "freertos/idf_additions.h"
#include "esp_heap_caps.h"
#include "program.h"
Program::Program(DISPLAY_STATE* display_state) {
_display_state = display_state;
}
int Program::init(int id, std::string name, Window* window) {
_id = id;
_task_name = name;
_window = window;
xTaskCreatePinnedToCore(loop, _task_name.c_str(), 4096, this, 1, &_task_handle, 0);
return _id;
}
void Program::close() {
vTaskDelete(_task_handle);
}
void Program::loop(void* pvParameters) {
Program* self = static_cast<Program*>(pvParameters);
(self->_installed_program.*(self->_program_func))();
while (true) {
vTaskDelay(pdMS_TO_TICKS(1000)); // Sleep for 1 second
}
}