/// <summary> /// Load configuration from dictionary /// </summary> /// <param name="dictionary">Dictionary with dosbox configuration data.</param> /// <returns>DosBoxConfiguration data</returns> public DosBoxConfiguration LoadDictionary(IDictionary <string, object> dictionary) { foreach (var keyValue in dictionary) { switch (keyValue.Key) { case "sdl": if (keyValue.Value is IDictionary <string, object> ) { SDL.LoadDictionary(keyValue.Value as IDictionary <string, object>); } break; case "dosbox": if (keyValue.Value is IDictionary <string, object> ) { DosBox.LoadDictionary(keyValue.Value as IDictionary <string, object>); } break; case "render": if (keyValue.Value is IDictionary <string, object> ) { Render.LoadDictionary(keyValue.Value as IDictionary <string, object>); } break; case "cpu": if (keyValue.Value is IDictionary <string, object> ) { CPU.LoadDictionary(keyValue.Value as IDictionary <string, object>); } break; case "mixer": if (keyValue.Value is IDictionary <string, object> ) { Mixer.LoadDictionary(keyValue.Value as IDictionary <string, object>); } break; case "midi": if (keyValue.Value is IDictionary <string, object> ) { Midi.LoadDictionary(keyValue.Value as IDictionary <string, object>); } break; case "sblaster": if (keyValue.Value is IDictionary <string, object> ) { SoundBlaster.LoadDictionary(keyValue.Value as IDictionary <string, object>); } break; case "gus": if (keyValue.Value is IDictionary <string, object> ) { GUS.LoadDictionary(keyValue.Value as IDictionary <string, object>); } break; case "speaker": if (keyValue.Value is IDictionary <string, object> ) { Speaker.LoadDictionary(keyValue.Value as IDictionary <string, object>); } break; case "joystick": if (keyValue.Value is IDictionary <string, object> ) { Joystick.LoadDictionary(keyValue.Value as IDictionary <string, object>); } break; case "serial": if (keyValue.Value is IDictionary <string, object> ) { Serial.LoadDictionary(keyValue.Value as IDictionary <string, object>); } break; case "dos": if (keyValue.Value is IDictionary <string, object> ) { DOS.LoadDictionary(keyValue.Value as IDictionary <string, object>); } break; case "ipx": if (keyValue.Value is IDictionary <string, object> ) { IPX.LoadDictionary(keyValue.Value as IDictionary <string, object>); } break; case "autoexec": if (keyValue.Value is IDictionary <string, object> ) { Autoexec.LoadDictionary(keyValue.Value as IDictionary <string, object>); } break; default: break; } } return(this); }