MCPcopy Create free account
hub / github.com/JHRobotics/softgpu / readSettings

Function readSettings

settings.c:694–752  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

692}
693
694BOOL readSettings()
695{
696 char keyname[MAX_PATH];
697 char value[MAX_PATH];
698 DWORD confdw[MAX_CONF_DW];
699
700 DWORD settings_level = getSettingsLevel();
701
702 int j;
703 for(j = 0; j < MAX_CONF_DW; j++)
704 {
705 sprintf(keyname, KEYNAME_FMT "%02d", settings_level, "cfg", j);
706 if(!registryReadDWORD(keyname, &confdw[j]))
707 {
708 return FALSE;
709 }
710 }
711
712 settings_item_t *item;
713 for(item = &settings_cur[0]; item->menu != 0; item++)
714 {
715 switch(item->type)
716 {
717 case T_CHECKBOX:
718 case T_RADIO:
719 DWORD p = item->pos / 32;
720 DWORD i = item->pos % 32;
721 item->dvalue = (confdw[p] >> i) & 0x1;
722 break;
723 case T_INPUT_NUM:
724 case T_DROPDOWN:
725 sprintf(keyname, KEYNAME_FMT, settings_level, item->name);
726 registryReadDWORD(keyname, &item->dvalue);
727 break;
728 case T_INPUT_STR:
729 sprintf(keyname, KEYNAME_FMT, (item->menu == INP_PATH) ? SOFTGPU_BUILD : settings_level, item->name);
730 if(registryRead(keyname, value, MAX_PATH))
731 {
732 if(item->svalue_freeptr != NULL)
733 {
734 free(item->svalue_freeptr);
735 item->svalue_freeptr = NULL;
736 item->svalue = NULL;
737 }
738
739 size_t s = strlen(value)+1;
740 item->svalue_freeptr = malloc(s);
741 if(item->svalue_freeptr)
742 {
743 memcpy(item->svalue_freeptr, value, s);
744 item->svalue = item->svalue_freeptr;
745 }
746 }
747 break;
748 }
749 }
750
751 return TRUE;

Callers 1

settingsResetFunction · 0.85

Calls 3

getSettingsLevelFunction · 0.85
registryReadDWORDFunction · 0.85
registryReadFunction · 0.85

Tested by

no test coverage detected