private void loadInputType(Type t) { if (t != null && t.GetInterface( "RideOnMotion.IDroneInputController", true ) != null ) { IDroneInputController controller = (IDroneInputController) Activator.CreateInstance(t); clearInputController(); _inputController = controller; bindWithInputController(); _inputControlUI = _inputController.InputUIControl; this.OnNotifyPropertyChange( "InputControl" ); _inputMenu = _inputController.InputMenu; if ( InputMenuChanged != null ) { InputMenuChanged( this, _inputController.InputMenu ); } _inputController.Start(); } else { // Can't load, type doesn't implement interface } }
private void clearInputController() { if ( this._inputController != null ) { _inputController.InputImageSourceChanged -= OnInputBitmapSourceChanged; _inputController.InputStatusChanged -= OnInputStatusChanged; _inputController.ControllerActivity -= OnControllerActivity; _inputStatusInfo = ""; this.OnNotifyPropertyChange( "InputStatusInfo" ); this._inputController = null; } }