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;
     }
 }