/// <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"); } } } }