Files
korenkonder_ReDIVA/src/CRE/mdata_manager.cpp
T

95 lines
1.6 KiB
C++

/*
by korenkonder
GitHub/GitLab: korenkonder
*/
#include "mdata_manager.hpp"
#include "pv_db.hpp"
MdataMgr mdata_manager;
MdataMgr::MdataMgr() : state() {
prefixes.push_back("");
prefixes.push_back("mdata_");
}
MdataMgr::~MdataMgr() {
}
bool MdataMgr::Init() {
state = 0;
return true;
}
bool MdataMgr::Ctrl() {
switch (state) {
case 0:
state = 1;
break;
case 1:
if (!task_pv_db_get()->field_99)
task_pv_db_add_paths();
state = 2;
break;
case 2:
if (task_pv_db_is_paths_empty())
state = 3;
break;
case 3:
task_pv_db_free_pv_data();
state = 4;
break;
case 4:
Log("--->LOAD ROM PVDB!\n");
if (!task_pv_db_get()->field_99)
task_pv_db_add_paths();
state = 5;
break;
case 5:
if (task_pv_db_is_paths_empty())
return true;
break;
case 6:
state = 15;
break;
case 15:
return true;
}
return false;
}
bool MdataMgr::Dest() {
return true;
}
void MdataMgr::Disp() {
}
void MdataMgr::Basic() {
}
void MdataMgr::Log(const char* fmt, ...) {
char buf[0x400];
va_list args;
va_start(args, fmt);
size_t len = vsprintf_s(buf, sizeof(buf), fmt, args);
va_end(args);
log.append(fmt, len);
log.append(1, '\n');
}
bool mdata_manager_append_task() {
return app::TaskWork::AppendTask(mdata_manager_get(), 0, "M_DATA_MANAGER");
}
bool mdata_manager_free_task() {
return mdata_manager_get()->SetDest();
}
MdataMgr* mdata_manager_get() {
return &mdata_manager;
}