|
|
#include "var_icon.hpp"
using namespace iflytop; using namespace dwin; #define DO(x) \
if (!x) { \ printf("do %s fail\n", #x); \ return false; \ } static uint32_t s_VarIconNum = 0;
bool VarIcon::flushcfg() { return m_dwin_screen->write_varspace16_muti(m_descript_add, (uint16_t *)&m_descript, sizeof(m_descript) / 2, 100); } bool VarIcon::readcfg() { return m_dwin_screen->read_varspace16_muti(m_descript_add, (uint16_t *)&m_descript, sizeof(m_descript) / 2, 100); }
bool VarIcon::init(DwinScreen *dwin_screen) { m_dwin_screen = dwin_screen; return init(dwin_screen, dwin_screen->alloc_one_var_icon()); }
bool VarIcon::init(DwinScreen *dwin_screen, uint16_t descript_add) { //
m_dwin_screen = dwin_screen; m_descript_add = descript_add; s_VarIconNum++; // printf("VarIcon(%d) init %04x\n", s_VarIconNum, m_descript_add);
readcfg(); return true; }
// void VarIcon::initcfg(const char *pos, const char *iconpath, uint16_t initval) {
// int posx = 0;
// int posy = 0;
// sscanf(pos, "(%d,%d)", &posx, &posy);
// initcfg(m_dwin_screen->alloc_one_var_icon(), posx, posy, iconpath, initval);
// }
void VarIcon::initcfg(int x, int y, const char *iconpath, uint16_t initval) { if (m_varAdd == -1) m_varAdd = m_dwin_screen->alloc_free_ram(1); initcfg(m_varAdd, x, y, iconpath, initval); }
void VarIcon::initcfg(uint16_t valpointerAdd, uint16_t posx, uint16_t posy, const char *iconpath, uint16_t initval) { // printf("initcfg %04x %d %d %s %d\n", valpointerAdd, posx, posy, iconpath, initval);
int iconlib = 0; int iconmin = 0; int iconmax = 0;
sscanf(iconpath, "%d/%d:%d", &iconlib, &iconmin, &iconmax); initcfg(valpointerAdd, initval, posx, posy, iconlib, iconmin, iconmax); }
void VarIcon::initcfg(uint16_t valpointerAdd, uint16_t initval, uint16_t posx, uint16_t posy, uint16_t iconlib, uint16_t iconmin, uint16_t iconmax) { m_descript.m_VP = valpointerAdd; m_descript.m_PosX = posx; m_descript.m_PosY = posy; m_descript.m_VMin = 0; m_descript.m_VMax = iconmax - iconmin; m_descript.m_IconMin = iconmin; m_descript.m_IconMax = iconmax; m_descript.m_IconLib = iconlib; m_descript.m_Mode = 1; m_descript.m_LayerMode = 0; m_descript.m_ICONGamma = 0; m_descript.m_PICGamma = 0; m_descript.m_FilterSet = 0x3F; m_hide = false; m_varAdd = valpointerAdd;
// printf("initcfg %04x %d %d %d %d %d %d\n", valpointerAdd, posx, posy, iconlib, iconmin, iconmax, initval);
flushcfg(); setVal(initval); }
void VarIcon::setpos(uint16_t posx, uint16_t posy) { m_descript.m_PosX = posx; m_descript.m_PosY = posy; flushcfg(); }
void VarIcon::dumpinfo() { readcfg(); printf("m_VP = %04x\n", m_descript.m_VP); printf("m_PosX = %d\n", m_descript.m_PosX); printf("m_PosY = %d\n", m_descript.m_PosY); printf("m_VMin = %d\n", m_descript.m_VMin); printf("m_VMax = %d\n", m_descript.m_VMax); printf("m_IconMin = %d\n", m_descript.m_IconMin); printf("m_IconMax = %d\n", m_descript.m_IconMax); printf("m_IconLib = %d\n", m_descript.m_IconLib); printf("m_Mode = %d\n", m_descript.m_Mode); printf("m_LayerMode = %d\n", m_descript.m_LayerMode); printf("m_ICONGamma = %d\n", m_descript.m_ICONGamma); printf("m_PICGamma = %d\n", m_descript.m_PICGamma); printf("m_FilterSet = %04x\n", m_descript.m_FilterSet); }
bool VarIcon::setVal(uint16_t val) { m_val = val; if (m_hide) return true; return _setVal(val); } uint16_t VarIcon::getVal() { uint16_t val = 0xffff; if (m_hide) return m_val; m_dwin_screen->read_varspace16(m_descript.m_VP, val, 100); return val; }
void VarIcon::hide() { //
_setVal(VARICON_VAL_HIDE); /**
* @brief */ m_hide = true; }; void VarIcon::show(bool showval) { if (showval) { m_hide = false; _setVal(m_val); } else { hide(); } }
VarIconDescript_t &VarIcon::getDescript() { return m_descript; }
bool VarIcon::_setVal(uint16_t val) { if (m_varAdd == -1) return false; return m_dwin_screen->write_varspace16(m_descript.m_VP, val, 100); }
|