Пример #1
0
        /// <summary>
        /// Derive values from a command (e.g. v_pitch - js1_x)
        /// </summary>
        private void DecomposeCommand( )
        {
            // populate from input
            // something like "v_pitch - js1_x" OR "v_pitch - xi_thumbl" OR "v_pitch - ximod+xi_thumbl+xi_mod"
            String cmd    = ActionTree.CommandFromNodeText(Action);
            String action = ActionTreeNode.ActionFromNodeText(Action);

            m_cmdCtrl = "";
            if (!String.IsNullOrWhiteSpace(cmd))
            {
                // decomp gamepad entries - could have modifiers so check for contains...
                if (cmd.Contains("xi_thumblx"))
                {
                    // gamepad
                    m_cmdCtrl    = "xi_thumblx";
                    m_deviceName = m_device.DevName;
                    if (action.Contains("pitch"))
                    {
                        m_option = String.Format("flight_move_pitch");
                    }
                    else
                    {
                        m_option = String.Format("flight_move_yaw");
                    }
                }
                else if (cmd.Contains("xi_thumbly"))
                {
                    // gamepad
                    m_cmdCtrl    = "xi_thumbly";
                    m_deviceName = m_device.DevName;
                    if (action.Contains("pitch"))
                    {
                        m_option = String.Format("flight_move_pitch");
                    }
                    else
                    {
                        m_option = String.Format("flight_move_yaw");
                    }
                }
                else if (cmd.Contains("xi_thumbrx"))
                {
                    // gamepad
                    m_cmdCtrl    = "xi_thumbrx";
                    m_deviceName = m_device.DevName;
                    if (action.Contains("pitch"))
                    {
                        m_option = String.Format("flight_move_pitch");
                    }
                    else
                    {
                        m_option = String.Format("flight_move_yaw");
                    }
                }
                else if (cmd.Contains("xi_thumbry"))
                {
                    // gamepad
                    m_cmdCtrl    = "xi_thumbry";
                    m_deviceName = m_device.DevName;
                    if (action.Contains("pitch"))
                    {
                        m_option = String.Format("flight_move_pitch");
                    }
                    else
                    {
                        m_option = String.Format("flight_move_yaw");
                    }
                }
                // assume joystick
                else
                {
                    // get parts
                    m_cmdCtrl    = JoystickCls.ActionFromJsCommand(cmd); //js1_x -> x; js2_rotz -> rotz
                    m_deviceName = m_device.DevName;
                    if (action.Contains("pitch"))
                    {
                        m_option = String.Format("flight_move_pitch");
                    }
                    else if (action.Contains("yaw"))
                    {
                        m_option = String.Format("flight_move_yaw");
                    }
                    else
                    {
                        m_option = String.Format("flight_move_roll");
                    }
                }
            }
        }