/*! * \brief Apply value to configuration which is presented by key. * \param key Key of configuration. * \param value New value. * \exception Throws const char * or int which presents error. */ void TConfiguration::applyConfig(char *key, char *value) { for (std::list<TConfigElementSuper *>::iterator itr = configs.begin(); itr != configs.end(); itr++) { if (strcmp((*itr)->getConfigName(), key) == 0) { switch ((*itr)->getConfigDataType()) { case BOOLEAN: ((TBooleanConfig *)*itr)->set(ReadBooleanValue(value)); break; case INTEGER: ((TIntConfig *)*itr)->set(ReadLongValue(value, INT_MAX)); break; case LONG: ((TLongConfig *)*itr)->set(ReadLongValue(value, JLONG_MAX)); break; case STRING: ((TStringConfig *)*itr)->set(value); break; case LOGLEVEL: ((TLogLevelConfig *)*itr)->set(ReadLogLevelValue(value)); break; case RANKORDER: ((TRankOrderConfig *)*itr)->set(ReadRankOrderValue(value)); break; } } } }
void AppSettings::Load() { // open root key CRegKey regRoot; if (ERROR_SUCCESS != regRoot.Open(HKEY_CURRENT_USER, m_pszSettingsRegkey, KEY_READ)) return; ReadStringValue(regRoot, g_pszProjectsFolder, MAX_PATH, m_cszProjectsFolder); ReadBooleanValue(regRoot, g_pszCurrentDateSubfolder, m_bCurrentDateSubfolder); ReadBooleanValue(regRoot, g_pszImageTypeSubfolder, m_bImageTypeSubfolder); ReadStringValue(regRoot, g_pszPhotomatixPath, MAX_PATH, m_cszPhotomatixPath); ReadStringValue(regRoot, g_pszHuginPath, MAX_PATH, m_cszHuginPath); ReadBooleanValue(regRoot, g_pszLogging, m_bLogging); ReadStringValue(regRoot, g_pszLogfilePath, MAX_PATH, m_cszLogfilePath); m_windowPlacementMainFrame.Load(regRoot, g_pszWindowPlacementMainFrame); }
bool XML_ModelDataParser::HandleAttribute(const char *Tag, const char *Value) { if (StringsEqual(Tag,"coll")) { if (ReadBoundedInt16Value(Value,Collection,0,NUMBER_OF_COLLECTIONS-1)) { CollIsPresent = true; return true; } else{ return false; } } else if (StringsEqual(Tag,"seq")) { return (ReadBoundedInt16Value(Value,Sequence,0, MAXIMUM_SHAPES_PER_COLLECTION-1)); } else if (StringsEqual(Tag,"scale")) { return ReadFloatValue(Value,Data.Scale); } else if (StringsEqual(Tag,"x_rot")) { return ReadFloatValue(Value,Data.XRot); } else if (StringsEqual(Tag,"y_rot")) { return ReadFloatValue(Value,Data.YRot); } else if (StringsEqual(Tag,"z_rot")) { return ReadFloatValue(Value,Data.ZRot); } else if (StringsEqual(Tag,"x_shift")) { return ReadFloatValue(Value,Data.XShift); } else if (StringsEqual(Tag,"y_shift")) { return ReadFloatValue(Value,Data.YShift); } else if (StringsEqual(Tag,"z_shift")) { return ReadFloatValue(Value,Data.ZShift); } else if (StringsEqual(Tag,"side")) { return ReadInt16Value(Value,Data.Sidedness); } else if (StringsEqual(Tag,"norm_type")) { return ReadBoundedInt16Value(Value,Data.NormalType,0, Model3D::NUMBER_OF_NORMAL_TYPES-1); } else if (StringsEqual(Tag,"norm_split")) { return ReadFloatValue(Value,Data.NormalSplit); } else if (StringsEqual(Tag,"light_type")) { return ReadBoundedInt16Value(Value,Data.LightType,0, NUMBER_OF_MODEL_LIGHT_TYPES-1); } else if (StringsEqual(Tag,"depth_type")) { return ReadInt16Value(Value,Data.DepthType); } else if (StringsEqual(Tag,"force_sprite_depth")) { return ReadBooleanValue(Value,Data.ForceSpriteDepth); } else if (StringsEqual(Tag,"file")) { Data.ModelFile.SetNameWithPath(Value); return true; } else if (StringsEqual(Tag,"file1")) { Data.ModelFile1.SetNameWithPath(Value); return true; } else if (StringsEqual(Tag,"file2")) { Data.ModelFile2.SetNameWithPath(Value); return true; } else if (StringsEqual(Tag,"type")) { size_t nchars = strlen(Value)+1; Data.ModelType.resize(nchars); memcpy(&Data.ModelType[0],Value,nchars); return true; } UnrecognizedTag(); return false; }
bool XML_ElementParser::ReadBooleanValueAsInt32(const char *String, int32& Value) { return ReadBooleanValue(String,Value); }
bool XML_ElementParser::ReadBooleanValueAsUInt16(const char *String, uint16& Value) { return ReadBooleanValue(String,Value); }
bool XML_ElementParser::ReadBooleanValueAsBool(const char *String, bool& Value) { return ReadBooleanValue(String,Value); }