public static T Create <T>(this ISetupModel <T> setup) where T : class, new() { var res = new T(); setup.Setup(res); return(res); }
/**************************************************************************************************** * construction, initialization, destruction, finalization ****************************************************************************************************/ public SetupPresenter(ISetupView view, ISetupModel model) { _view = view; _model = model; // initial view values _view.Fullscreen = _model.FullScreen; _view.VerticalSync = _model.UseVerticalSync; _view.SyncRecordMode = _model.SyncRecordMode; _view.DeviceDebugMode = _model.DeviceDebugMode; _view.UseAudio = _model.UseAudio; _view.UseOculus = _model.UseOculus; // view -> model _view.SelectedAdapterChanged += (i) => _model.SelectAdapter(i); _view.SelectedOutputChanged += (i) => _model.SelectOutput(i); _view.SelectedModeChanged += (i) => _model.SelectMode(i); _view.FullscreenChanged += (b) => _model.FullScreen = b; _view.VerticalSyncChanged += (b) => _model.UseVerticalSync = b; _view.SyncRecordModeChanged += (b) => _model.SyncRecordMode = b; _view.DeviceDebugModeChanged += (b) => _model.DeviceDebugMode = b; _view.UseAudioChanged += (b) => _model.UseAudio = b; _view.UseOculusChanged += (b) => _model.UseOculus = b; _view.BassRegistrationEmailChanged += (s) => _model.BassRegistrationEmail = s; _view.BassRegistrationKeyChanged += (s) => _model.BassRegistrationKey = s; // model -> view _model.FullScreenChanged += () => _view.Fullscreen = _model.FullScreen; _model.DeviceDebugModeChanged += () => _view.DeviceDebugMode = _model.DeviceDebugMode; _model.SyncRecordModeChanged += () => _view.SyncRecordMode = _model.SyncRecordMode; _model.UseVerticalSyncChanged += () => _view.VerticalSync = _model.UseVerticalSync; _model.UseAudioChanged += () => _view.UseAudio = _model.UseAudio; _model.UseOculusChanged += () => _view.UseOculus = _model.UseOculus; _model.BassRegistrationEmailChanged += () => _view.BassRegistrationEmail = _model.BassRegistrationEmail; _model.BassRegistrationKeyChanged += () => _view.BassRegistrationKey = _model.BassRegistrationKey; _model.AdapterChanged += () => { _view.SelectedAdapter = _model.AdapterIndex; _view.SetAvailableOutputs(_model.GetAvailableOutputs()); }; _model.OutputChanged += () => { _view.SelectedOutput = _model.OutputIndex; _view.SetAvailableModes(_model.GetAvailableModes()); }; _model.ModeChanged += () => { _view.SelectedMode = _model.ModeIndex; }; _model.SupportedFeatureLevelChanged += () => _view.SetFeatureLevel(_model.SupportedFeatureLevel.ToString()); _view.SetAvailableAdapters(_model.GetAvailableAdapters()); }