void server::readConfig() { /*char start_IP[100]; char end_IP[100]; char subnet[100];*/ int lease; string filename="dhcp-server.config"; ifstream inConfig(filename.c_str()); int j=0,k=0; if(inConfig.is_open()) { string sLine; while(getline(inConfig, sLine)) { string::size_type i = sLine.find_first_not_of(" \t\n\v"); // Commented line: ignore if(i != string::npos && sLine[i] == '#') continue; // Process non-comment line if(i != string::npos) { sLine.c_str(); istringstream str(sLine.c_str()); str>>start_IP; str>>end_IP; str>>subnet; str>>lease; } }
ProMan::RegistryCodes FilePullProfile(wxFileConfig *cfg) { wxFileName inFileName; if ( cfg->Exists(INT_CONFIG_FILE_LOCATION) ) { wxString inFileNameString; if (cfg->Read(INT_CONFIG_FILE_LOCATION, &inFileNameString)) { inFileName.Assign(inFileNameString); } else { wxLogError(_T("Unable to retrieve Config File location even though config says key exists")); return ProMan::UnknownError; } } else { inFileName = GetPlatformDefaultConfigFilePathNew(); inFileName.SetFullName(FSO_CONFIG_FILENAME); if (!inFileName.FileExists()) { inFileName = GetPlatformDefaultConfigFilePathOld(); inFileName.SetFullName(FSO_CONFIG_FILENAME); } } wxASSERT( inFileName.Normalize() ); if ( !inFileName.FileExists() && inFileName.DirExists() ) { // was given a directory name inFileName.SetFullName(FSO_CONFIG_FILENAME); } if (!inFileName.FileExists()) { return ProMan::InputFileDoesNotExist; } wxFFileInputStream inConfigStream(inFileName.GetFullPath(), _T("rb")); wxFileConfig inConfig(inConfigStream, wxMBConvUTF8()); wxString readString; int readNumber; // Video if ( inConfig.Read(REG_KEY_VIDEO_RESOLUTION_DEPTH, &readString) ) { // parses VideocardFS2open into its parts wxString videoCard(readString); wxString rest, rest1, rest2, rest3; long width = 0, height = 0, bitdepth = 0; if ( videoCard.StartsWith(_T("OGL -("), &rest) ) { int xLocation = rest.Find(_T('x')); if ( xLocation != wxNOT_FOUND ) { wxString widthStr(rest.Mid(0, xLocation)); rest1 = rest.Mid(xLocation); if ( !widthStr.ToLong(&width, 10) ) { width = 0; } int bLocation = rest1.Find(_T(')')); if ( bLocation != wxNOT_FOUND ) { wxString heightStr(rest1.Mid(0, bLocation)); rest2 = rest1.Mid(bLocation+1); if ( !heightStr.ToLong(&height, 10) ) { height = 0; } int spaceLoc = rest2.Find(_T(' ')); if ( spaceLoc != wxNOT_FOUND ) { wxString bitStr(rest2.Mid(0, spaceLoc)); if ( !bitStr.ToLong(&bitdepth, 10) ) { bitdepth = 0; } } } } } if ( width > 0 ) { cfg->Write(PRO_CFG_VIDEO_RESOLUTION_WIDTH, width); } if ( height > 0 ) { cfg->Write(PRO_CFG_VIDEO_RESOLUTION_HEIGHT, height); } if ( bitdepth > 0 ) { cfg->Write(PRO_CFG_VIDEO_BIT_DEPTH, bitdepth); } } if ( inConfig.Read(REG_KEY_VIDEO_TEXTURE_FILTER, &readNumber) ) { cfg->Write(PRO_CFG_VIDEO_TEXTURE_FILTER, readNumber); } if ( inConfig.Read(REG_KEY_VIDEO_ANISOTROPIC, &readString) ) { long anisotropic; // necessary because FSO expects registry value to be a string if ( readString.ToLong(&anisotropic) ) { cfg->Write(PRO_CFG_VIDEO_ANISOTROPIC, anisotropic); } } if ( inConfig.Read(REG_KEY_VIDEO_ANTI_ALIAS, &readNumber) ) { cfg->Write(PRO_CFG_VIDEO_ANTI_ALIAS, readNumber); } // Audio if ( inConfig.Read(REG_KEY_AUDIO_OPENAL_DEVICE, &readString) ) { cfg->Write(PRO_CFG_OPENAL_DEVICE, readString); } if ( inConfig.Read(REG_KEY_AUDIO_OPENAL_PLAYBACK_DEVICE, &readString) && !inConfig.Exists(PRO_CFG_OPENAL_DEVICE)) { cfg->Write(PRO_CFG_OPENAL_DEVICE, readString); } if ( inConfig.Read(REG_KEY_AUDIO_OPENAL_CAPTURE_DEVICE, &readString) ) { cfg->Write(PRO_CFG_OPENAL_CAPTURE_DEVICE, readString); } if ( inConfig.Read(REG_KEY_AUDIO_OPENAL_EFX, &readNumber) ) { cfg->Write(PRO_CFG_OPENAL_EFX, readNumber); } if ( inConfig.Read(REG_KEY_AUDIO_OPENAL_SAMPLE_RATE, &readNumber) ) { cfg->Write(PRO_CFG_OPENAL_SAMPLE_RATE, readNumber); } // Speech #if IS_WIN32 // Linux/OS X don't yet support speech if ( inConfig.Read(REG_KEY_SPEECH_VOICE, &readNumber) ) { cfg->Write(PRO_CFG_SPEECH_VOICE, readNumber); } if ( inConfig.Read(REG_KEY_SPEECH_VOLUME, &readNumber) ) { cfg->Write(PRO_CFG_SPEECH_VOLUME, readNumber); } if ( inConfig.Read(REG_KEY_SPEECH_IN_TECHROOM, &readNumber) ) { cfg->Write(PRO_CFG_SPEECH_IN_TECHROOM, readNumber); } if ( inConfig.Read(REG_KEY_SPEECH_IN_BRIEFINGS, &readNumber) ) { cfg->Write(PRO_CFG_SPEECH_IN_BRIEFINGS, readNumber); } if ( inConfig.Read(REG_KEY_SPEECH_IN_GAME, &readNumber) ) { cfg->Write(PRO_CFG_SPEECH_IN_GAME, readNumber); } if ( inConfig.Read(REG_KEY_SPEECH_IN_MULTI, &readNumber) ) { cfg->Write(PRO_CFG_SPEECH_IN_MULTI, readNumber); } #endif // Joystick if ( inConfig.Read(REG_KEY_JOYSTICK_ID, &readNumber) ) { cfg->Write(PRO_CFG_JOYSTICK_ID, readNumber); } if ( inConfig.Read(REG_KEY_JOYSTICK_FORCE_FEEDBACK, &readNumber) ) { cfg->Write(PRO_CFG_JOYSTICK_FORCE_FEEDBACK, readNumber); } if ( inConfig.Read(REG_KEY_JOYSTICK_DIRECTIONAL, &readNumber) ) { cfg->Write(PRO_CFG_JOYSTICK_DIRECTIONAL, readNumber); } // Network if ( inConfig.Read(REG_KEY_NETWORK_TYPE, &readString) ) { cfg->Write(PRO_CFG_NETWORK_TYPE, readString); } if ( inConfig.Read(REG_KEY_NETWORK_SPEED, &readString) ) { cfg->Write(PRO_CFG_NETWORK_SPEED, readString); } if ( inConfig.Read(REG_KEY_NETWORK_PORT, &readNumber) ) { cfg->Write(PRO_CFG_NETWORK_PORT, readNumber); } if ( inConfig.Read(REG_KEY_NETWORK_IP, &readString) ) { cfg->Write(PRO_CFG_NETWORK_IP, readString); } return ProMan::NoError; }