You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
#if 0 typedef struct { uint8_t pid; uint16_t bid;
int32_t oldPosX; int32_t oldPosY;
bool isVis; bool isPosInited; bool isUsed; } component_info_t;
component_info_t component_info[100] = {0};
static component_info_t* findComponent(uint8_t pid, uint16_t bid) { for (size_t i = 0; i < 100; i++) { if (component_info[i].isUsed && component_info[i].pid == pid && component_info[i].bid == bid) { return &component_info[i]; } } return NULL; }
static component_info_t* allocComponent(uint8_t pid, uint16_t bid) { for (size_t i = 0; i < 100; i++) { if (!component_info[i].isUsed) { component_info[i].isUsed = true; component_info[i].pid = pid; component_info[i].bid = bid; return &component_info[i]; } } return NULL; }
static component_info_t* forceFindComponent(uint8_t pid, uint16_t bid) { component_info_t* info = findComponent(pid, bid); if (info == NULL) { info = allocComponent(pid, bid); } return info; }
bool UIControler::visEx(uint16_t pid, uint16_t bid, bool val) { component_info_t* component = forceFindComponent(pid, bid); if (component == NULL) { ZLOGW(TAG, "visEx failed,component alloc failed"); return false; }
bool suc = false;
do { if (val) { // ��ʾ } else { // ����
if (!component->isPosInited) { suc = readInt(pid, bid, &component->oldPosX); if (!suc) break;
suc = readInt(pid, bid + 1, &component->oldPosY); } } } while (false); } #endif
|