#include #include #include #include "tdc_store.h" #include "tdc_variable.h" #include "gui_variable_tab.h" static char *boardname[8]; static struct tdc_var *varmap[256]; void tdcstore_set_name(int address, char *name) { if (boardname[address & 0x7] != NULL) free(boardname[address & 0x7]); boardname[address & 0x7] = strdup(name); printf("ADDR%d:%s\n", address, boardname[address & 0x7]); } char * tdcstore_get_name(int address) { return boardname[address & 0x7]; } int tdcstore_set_var(int address, struct tdc_var *var) { if (varmap[var->id] != NULL) { gui_vartab_remove_var(var); tdcvar_destroy(varmap[var->id]); } varmap[var->id] = var; gui_vartab_add_var(var); return 0; } struct tdc_var * tdcstore_get_var(int address, int id) { return varmap[id & 0xFF]; } void tdcstore_trigger_update(int address, int id) { gui_vartab_update_var(varmap[id & 0xFF]); } void tdcstore_flush(void) { int i; for (i = 0; i < 8; i++) { free(boardname[i]); boardname[i] = NULL; } for (i = 0; i < 256; i++) { gui_vartab_remove_var(varmap[i]); tdcvar_destroy(varmap[i]); varmap[i] = NULL; } }