Exemple #1
0
        /// <summary>
        /// Initializes the input system by instantiating the driver with the given
        /// InputTypeID.  The input driver must be registered with the Registrar
        /// class.
        /// </summary>
        /// <param name="inputType"></param>
        public static void Initialize(InputTypeID inputType)
        {
            Core.Initialize();

            impl = Registrar.CreateInputDriver(inputType);
            impl.Initialize();

            InitializeJoysticks();
        }
Exemple #2
0
        /// <summary>
        /// Initializes the Input subsystem, to the specified driver.
        /// </summary>
        /// <param name="inputTypeID"></param>
        public void InitializeInput(InputTypeID inputTypeID)
        {
            if (WasCanceled)
            {
                return;
            }

            InputLib.JoystickInput.Initialize(inputTypeID);
        }
Exemple #3
0
        /// <summary>
        /// Constructs an AgateDriverInfo for an input driver.
        /// </summary>
        /// <param name="typeID">The InputTypeID member indicating what the driver uses.</param>
        /// <param name="driverType">The System.Type object for the type inheriting from InputImpl.</param>
        /// <param name="friendlyName">A friendly name to show the user when choosing a driver.</param>
        /// <param name="priority">A integer indicating the priority of this driver over others which is used when autoselecting a driver.</param>
        public AgateDriverInfo(InputTypeID typeID, Type driverType, string friendlyName, int priority)
        {
            if (typeof(InputImpl).IsAssignableFrom(driverType) == false ||
                driverType.IsAbstract == true)
            {
                throw new ArgumentException(string.Format(
                                                "The type {0} is not a concrete implementation of InputImpl."));
            }

            SetValues(DriverType.Input, driverType.FullName, friendlyName, (int)typeID, priority);
        }
Exemple #4
0
        internal static InputImpl CreateInputDriver(InputTypeID inputType)
        {
            if (inputDrivers.Count == 0)
            {
                throw new AgateException("No audio drivers registered.");
            }

            AgateDriverInfo info = FindDriverInfo(inputDrivers, (int)inputType);

            if (info == null)
            {
                throw new AgateException(string.Format("Could not find the driver {0}.", inputType));
            }

            return((InputImpl)CreateDriverInstance(info));
        }
Exemple #5
0
        private void btnOK_Click(object sender, EventArgs e)
        {
            if (mChooseDisplay)
            {
                AgateDriverInfo display = (AgateDriverInfo)displayList.SelectedItem;
                mDisplayType = (DisplayTypeID)display.DriverTypeID;
            }

            if (mChooseAudio)
            {
                AgateDriverInfo audio = (AgateDriverInfo)audioList.SelectedItem;
                mAudioType = (AudioTypeID)audio.DriverTypeID;
            }

            if (mChooseInput)
            {
                AgateDriverInfo input = (AgateDriverInfo)inputList.SelectedItem;
                mInputType = (InputTypeID)input.DriverTypeID;
            }
        }
Exemple #6
0
        private static void SelectBestDrivers(bool chooseDisplay, bool chooseAudio, bool chooseInput,
                                              out DisplayTypeID selectedDisplay, out AudioTypeID selectedAudio, out InputTypeID selectedInput)
        {
            selectedDisplay = DisplayTypeID.AutoSelect;
            selectedAudio   = AudioTypeID.AutoSelect;
            selectedInput   = InputTypeID.AutoSelect;

            if (displayDrivers.Count > 0)
            {
                selectedDisplay = (DisplayTypeID)displayDrivers[0].DriverTypeID;
            }
            if (audioDrivers.Count > 0)
            {
                selectedAudio = (AudioTypeID)audioDrivers[0].DriverTypeID;
            }
            if (inputDrivers.Count > 0)
            {
                selectedInput = (InputTypeID)inputDrivers[0].DriverTypeID;
            }
        }
Exemple #7
0
        /// <summary>
        /// Asks the user to select which drivers to use.
        /// </summary>
        /// <param name="chooseDisplay"></param>
        /// <param name="chooseAudio"></param>
        /// <param name="chooseInput"></param>
        /// <param name="selectedDisplay"></param>
        /// <param name="selectedAudio"></param>
        /// <param name="selectedInput"></param>
        /// <returns></returns>
        internal static bool UserSelectDrivers(bool chooseDisplay, bool chooseAudio, bool chooseInput,
                                               out DisplayTypeID selectedDisplay, out AudioTypeID selectedAudio, out InputTypeID selectedInput)
        {
            if (mDesktop == null)
            {
                CreateDesktopDriver();
                if (mDesktop == null)
                {
                    SelectBestDrivers(chooseDisplay, chooseAudio, chooseInput,
                                      out selectedDisplay, out selectedAudio, out selectedInput);
                }
            }

            IUserSetSystems frm = mDesktop.CreateUserSetSystems();

            frm.SetChoices(chooseDisplay, chooseAudio, chooseInput);

            // set default values.
            selectedDisplay = DisplayTypeID.AutoSelect;
            selectedAudio   = AudioTypeID.AutoSelect;
            selectedInput   = InputTypeID.AutoSelect;

            foreach (AgateDriverInfo info in displayDrivers)
            {
                frm.AddDisplayType(info);
            }
            foreach (AgateDriverInfo info in audioDrivers)
            {
                frm.AddAudioType(info);
            }
            foreach (AgateDriverInfo info in inputDrivers)
            {
                frm.AddInputType(info);
            }

            if (frm.RunDialog() == SetSystemsDialogResult.Cancel)
            {
                return(false);
            }

            selectedDisplay = frm.DisplayType;
            selectedAudio   = frm.AudioType;
            selectedInput   = frm.InputType;

            return(true);
        }