123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155 |
- #include "QtBootSender.h"
- #include "memutil.h"
- #include "charset.h"
- #include "sp_env.h"
- int qt_gui_create_format(sp_gui_format_t** p_gui)
- {
- int result = 0;
- sp_gui_format_t* gui = ZALLOC_T(sp_gui_format_t);
- if (gui != nullptr) {
- gui->gui_inst = (void*)(new QtBootSender());
- gui->display = &qt_gui_display;
- gui->hide = &qt_gui_undisplay;
- gui->show_entity_info = &qt_gui_show_entity_info;
- gui->show_running_info = &qt_gui_show_running_info;
- gui->post_message = &qt_gui_post_message;
- *p_gui = gui;
- }
- return result;
- }
- void qt_gui_destroy_format(sp_gui_format_t* p_gui)
- {
- if (p_gui->gui_inst) {
- delete ((QtBootSender*)p_gui->gui_inst);
- }
- FREE(p_gui);
- }
- namespace
- {
- MessageType MappingTypeFromGUI2Msg(int type)
- {
- switch (type) {
- case GUI_DISPLAY_ELEM_LOG_DEBUG:
- case GUI_DISPLAY_ELEM_LOG_EVENT:
- return TextEvent;
- break;
- case GUI_DISPLAY_ELEM_LOG_WARN:
- return TextWarn;
- break;
- case GUI_DISPLAY_ELEM_LOG_ERROR:
- return TextError;
- break;
- case GUI_DISPLAY_ELEM_LOG_FATAL:
- return TextFatal;
- break;
- case GUI_DISPLAY_ELEM_BLUESCREEN:
- return DisplayBlueScreen;
- break;
- case GUI_DISPLAY_ELEM_FATAL_ERROR:
- return TextFatal;
- break;
- case GUI_DISPLAY_ELEM_FATAL_BLOCK:
- return TextBlock;
- break;
- case GUI_DISPLAY_ELEM_NOTIFY_INFO:
- return TextNotifyInfo;
- break;
- case GUI_DISPLAY_ELEM_NOTIFY_WARN:
- return TextNotifyWarn;
- break;
- case GUI_DISPLAY_ELEM_NOTIFY_ERROR:
- return TextNotifyError;
- break;
- case GUI_DISPLAY_ELEM_STARTUP_INFO:
- return ModStartupInfo;
- break;
- case GUI_DISPLAY_ELEM_LOG_OTHER:
- return StageChangeInfo;
- default:
- return MsgTypeMax;
- break;
- }
- }
- }
- int qt_gui_show_running_info(void* gui, const char* msg, int type)
- {
- QtBootSender* senderInst = (QtBootSender*)gui;
- #if defined(_MSC_VER)
- senderInst->SendShowMessage(msg, MappingTypeFromGUI2Msg(type));
- #else
- bool done = false;
- if (!toolkit_detect_utf8_str(msg)) {
- const int len = toolkit_gbk2utf8((char*)msg, strlen(msg) + 1, NULL, 0);
- if (len > 0) {
- char* temp = CALLOC_T(len, char);
- memset(temp, 0, len);
- if (toolkit_gbk2utf8((char*)msg, strlen(msg) + 1, temp, len) > 0) {
- senderInst->SendShowMessage(temp, MappingTypeFromGUI2Msg(type));
- done = true;
- }
- FREE(temp);
- }
- }
- if (!done) {
- senderInst->SendShowMessage(msg, MappingTypeFromGUI2Msg(type));
- }
- #endif //_MSC_VER
- return 0;
- }
- int qt_gui_show_entity_info(void* gui, const char* entity, int state)
- {
- QtBootSender* senderInst = (QtBootSender*)gui;
- sp_env_t *env = sp_get_env();
- QEntityActiveInfo entityInfo;
- entityInfo.entityName = entity;
- entityInfo.entityState = static_cast<EntityState>(state);
- sp_mod_mgr_t *mod_mgr = env->mod_mgr;
- sp_entity_t *ent = sp_mod_mgr_find_entity_by_name(mod_mgr, entity);
- if (ent) {
- entityInfo.entityDevId = ent->instance_id;
- entityInfo.entityState = static_cast<EntityState>(ent->state);
- entityInfo.entityPID = ent->mod->process.pid;
- sp_cfg_shell_entity_t *cfg_ent = sp_cfg_get_entity_by_idx(env->cfg, ent->cfg->idx);
- if(cfg_ent) {
- char szv[64] = {0};
- sprintf(szv, "V%d.%d.%d", cfg_ent->version.major, cfg_ent->version.minor, cfg_ent->version.revision);
- entityInfo.entityVerStr = szv;
- } else {
- entityInfo.entityVerStr = "V0.0.0";
- }
- } else {
- entityInfo.entityDevId = 0;
- entityInfo.entityPID = 0;
- entityInfo.entityVerStr = "V0.0.0";
- }
- senderInst->SendEntityInfo(entityInfo);
- return 0;
- }
- int qt_gui_display(void* gui)
- {
- QtBootSender* senderInst = (QtBootSender*)gui;
- senderInst->SendShowMessage("", DisplayShow);
- return 0;
- }
- int qt_gui_undisplay(void* gui)
- {
- QtBootSender* senderInst = (QtBootSender*)gui;
- senderInst->SendShowMessage("", DisplayHide);
- return 0;
- }
- void qt_gui_post_message(void* gui, unsigned long param1, unsigned long param2)
- {
- QtBootSender* senderInst = (QtBootSender*)gui;
- senderInst->SendShowMessage("", MappingTypeFromGUI2Msg(param1), (int)param2);
- return;
- }
|