public static IKeyPress GetControlButton(EDControlButton control, KeyboardInterface.KeyCombo?defaultKeycombo = null)
        {
            var bindings = EDStateManager.instance.controlBindings;

            if (bindings == null)
            {
                Debug.LogWarning("Control bindings not loaded");
                return(null);
            }
            else
            {
                var      keyBinding = bindings.GetKeyboardKeybinding(control);
                string   key        = "";
                string[] modifiers  = null;
                if (keyBinding == null)
                {
                    if (defaultKeycombo == null)
                    {
                        // XXX: Make this an error and add a warning that emits even when there is a default keycombo
                        Debug.LogWarningFormat("The \"{0}\" Elite Dangerous control has no keyboard binding and there is no default keycombo to fallback to", Enum.GetName(typeof(EDControlButton), control));
                        return(null);
                    }
                }
                else
                {
                    key       = keyBinding.Value.Key;
                    modifiers = keyBinding.Value.Modifiers.Select(mod => mod.Key).ToArray();
                }

                // @todo Implement this as a press and release
                var keyPress = KeyboardInterface.Key(key, modifiers);
                if (keyPress == null)
                {
                    Debug.LogWarningFormat(
                        "Could not send keypress {0}, did not understand one or more of the keys",
                        KeyboardInterface.KeyComboDebugString(key, modifiers));
                }

                return(keyPress);
            }
        }
        public static IKeyPress GetControlButton(EDControlButton control, KeyboardInterface.KeyCombo?defaultKeycombo = null)
        {
            var bindings = EDStateManager.instance.controlBindings;

            if (bindings == null)
            {
                Debug.LogWarning("Control bindings not loaded");
                return(null);
            }
            else
            {
                var      keyBinding = bindings.GetKeyboardKeybinding(control);
                string   key        = "";
                string[] modifiers  = null;
                if (keyBinding == null)
                {
                    if (defaultKeycombo == null)
                    {
                        Debug.LogWarningFormat("Control was not bound and there is no default keycombo to fallback to");
                        return(null);
                    }
                }
                else
                {
                    key       = keyBinding.Value.Key;
                    modifiers = keyBinding.Value.Modifiers.Select(mod => mod.Key).ToArray();
                }

                // @todo Implement this as a press and release
                var keyPress = KeyboardInterface.Key(key, modifiers);
                if (keyPress == null)
                {
                    Debug.LogWarningFormat(
                        "Could not send keypress {0}, did not understand one or more of the keys",
                        KeyboardInterface.KeyComboDebugString(key, modifiers));
                }

                return(keyPress);
            }
        }