The driver for the Xbox Common Controller class (XUSB) on Windows implements the kernel-mode interface for the XINPUT DLL. To provide a good experience for legacy titles that use the DirectInput API with the common controller device, the driver also exports a Human Interface Device (HID) class interface, which is picked up by DirectInput. We chose the mapping of XUSB to HID based on typical behavior in a set of gaming applications for the original XINPUT version, and we updated the mapping for newer subtypes. This topic describes the mapping.
- Download drivers for input devices for free. Operating System Versions: Windows XP, 7, 8, 8.1, 10 (x64, x86) Category: Devices. Subcategory: input devices. Popular Drivers. Card readers Bluetooth devices chipsets network cards. Are you tired of looking for the drivers for your devices?
- PC Pitstop - PC Performance Roots. PC Pitstop began in 1999 with an emphasis on computer diagnostics and maintenance. During the early days of the dot com boom, our online PC maintenance tools were skyrocketing.
- I'm assuming your USB devices simply register as Human Interface Devices and sent their output to any application that is currently in focus. If that is the case, this is not trivial. Windows will merge all keyboard inputs into one input stream, there's usually no way to distinguish from which keyboard (or keyboard-like device) the input came.
- Compal Electronics is honored to be ranked No. 11 in the iF DESIGN AWARD 2020 in the Global COMPANIES CREATIVITY RANKING between 2016 – 2020. With yet another.
Keyboard is the most common and very popular input device which helps to input data to.
Human Interface Device (HID)
HID standard is a standard from the Universal Serial Bus (USB) committee originally proposed by Microsoft to generalize protocols for input devices. It consists of a byte-code description language and can express gamepads, mice, joysticks, throttle and rudder controls, and multi-axis controllers. Because this standard is so generalized, you might have difficulty writing software that consumes input from arbitrary devices. Therefore, for the game-centric DirectInput API, we developed a specific sub-mapping of types to encourage hardware manufactures to support through their drivers.
Important
You can also access HID input devices via RawInput API and process input reports via low level HID API but vibration feedback will not work as with DirectInput.
Mappings
The XUSB driver implements both an XUSB class interface and a HID class interface for devices in order to support both XINPUT and DirectInput usage. This mapping is based on the XUSB subtype information. The driver implements four distinct groups of mappings.
XUSB Subtype | Mapping |
---|---|
XINPUT_DEVSUBTYPE_GAMEPAD (Subtype 1) | Gamepad |
XINPUT_DEVSUBTYPE_WHEEL (Subtype 2) | Wheel |
XINPUT_DEVSUBTYPE_ARCADE_STICK (Subtype 3) | Arcade Stick/Arcade Pad |
XINPUT_DEVSUBTYPE_FLIGHT_STICK (Subtype 4) | Flight Stick |
XINPUT_DEVSUBTYPE_DANCE_PAD (Subtype 5) | Default for any new subtype |
XINPUT_DEVSUBTYPE_GUITAR (Subtype 6) | Guitar |
XINPUT_DEVSUBTYPE_GUITAR_ALTERNATE (Subtype 7) | |
XINPUT_DEVSUBTYPE_DRUM_KIT (Subtype 8) | |
XINPUT_DEVSUBTYPE_GUITAR_BASS (Subtype 11) | |
XINPUT_DEVSUBTYPE_ARCADE_PAD (Subtype 19) |
Note
The following HID mappings are static. This means that even if the device capabilities report indicates that a particular button or axis is not supported, the mapping will still include it but will always report an off state or center value.
Gamepad
This is the default mapping and is designed around the standard Xbox Common Controller gamepad, and is exposed as a Gamepad HID usage type.
Control | HID Usage Name | Usage Page | Usage ID |
---|---|---|---|
Left Stick | X, Y | 0x01 | 0x30, 0x31 |
Right Stick | Rx, Ry | 0x01 | 0x33, 0x34 |
Left Trigger + Right Trigger | Z* | 0x01 | 0x32 |
D-Pad Up, Down, Left, Right | Hat Switch | 0x01 | 0x39 |
A | Button 1 | 0x09 | 0x01 |
B | Button 2 | 0x09 | 0x02 |
X | Button 3 | 0x09 | 0x03 |
Y | Button 4 | 0x09 | 0x04 |
LB (left bumper) | Button 5 | 0x09 | 0x05 |
RB (right bumper) | Button 6 | 0x09 | 0x06 |
BACK | Button 7 | 0x09 | 0x07 |
START | Button 8 | 0x09 | 0x08 |
LSB (left stick button) | Button 9 | 0x09 | 0x09 |
RSB (right stick button) | Button 10 | 0x09 | 0x0A |
Note
(*): This is combined so that Z exhibits the centering behavior expected by most titles for rotation; this does mean it is not possible to see all possible trigger combination values through DirectInput and HID.
Arcade Stick/Arcade Pad
This is the mapping designed around the Arcade Stick controller, and is exposed as a Gamepad HID usage type. The Arcade Pad is very much like an Arcade Stick, but in a smaller form-factor. These designs replace the analog Left Trigger and Right Trigger with digital buttons that report the minimum and maximum axis value.
Control | HID Usage Name | Usage Page | Usage ID |
---|---|---|---|
D-Pad Up, Down, Left, Right | Hat Switch | 0x01 | 0x39 |
A | Button 1 | 0x09 | 0x01 |
B | Button 2 | 0x09 | 0x02 |
X | Button 3 | 0x09 | 0x03 |
Y | Button 4 | 0x09 | 0x04 |
LB (left bumper) | Button 5 | 0x09 | 0x05 |
RB (right bumper) | Button 6 | 0x09 | 0x06 |
BACK | Button 7 | 0x09 | 0x07 |
START | Button 8 | 0x09 | 0x08 |
Left Trigger | Button 9 | 0x09 | 0x09 |
Right Trigger | Button 10 | 0x09 | 0x0A |
These devices may or may not support additional controls, but these are not exposed by the HID mapping: Left Stick, Right Stick, LSB (left stick button), and RSB (right stick button).
Wheel
This mapping is designed around the Xbox Racing Wheel, and is exposed as a Gamepad HID usage type.
Control | HID Usage Name | Usage Page | Usage ID |
---|---|---|---|
Wheel (Left Stick X) | X | 0x01 | 0x30 |
Accelerator Pedal (Right Trigger) + Brake Pedal (Left Trigger) | Z* | 0x01 | 0x32 |
D-Pad Up, Down, Left, Right | Hat Switch | 0x01 | 0x39 |
A | Button 1 | 0x09 | 0x01 |
B | Button 2 | 0x09 | 0x02 |
X | Button 3 | 0x09 | 0x03 |
Y | Button 4 | 0x09 | 0x04 |
LB (left bumper) | Button 5 | 0x09 | 0x05 |
RB (right bumper) | Button 6 | 0x09 | 0x06 |
LSB (left stick button) | Button 7 | 0x09 | 0x07 |
RSB (right stick button) | Button 8 | 0x09 | 0x08 |
BACK | Button 9 | 0x09 | 0x09 |
START | Button 10 | 0x09 | 0x0A |
Note
(*): This is combined so that Z exhibits the centering behavior expected by most titles for the brake and accelerator controls; this does mean it is not possible to see all possible pedal combination values through DirectInput.
Flight Stick
This mapping is designed around the Xbox Flight Stick, and is exposed as a Joystick HID usage type.
Control | Usage Name | Usage Page | Usage ID |
---|---|---|---|
Flight Stick (Left Stick) | X, Y | 0x01 | 0x30, 0x31 |
POV Hat (Right Stick) | Rx, Ry | 0x01 | 0x33, 0x34 |
Throttle (Right Trigger) | Z | 0x01 | 0x32 |
Rudder (Left Trigger) | Rz | 0x01 | 0x35 |
D-Pad Up, Down, Left, Right | Hat Switch | 0x01 | 0x39 |
Primary Weapon (A) | Button 1 | 0x09 | 0x01 |
Secondary Weapon (B) | Button 2 | 0x09 | 0x02 |
X | Button 3 | 0x09 | 0x03 |
Y | Button 4 | 0x09 | 0x04 |
LB (left bumper) | Button 5 | 0x09 | 0x05 |
RB (right bumper) | Button 6 | 0x09 | 0x06 |
BACK | Button 7 | 0x09 | 0x07 |
START | Button 8 | 0x09 | 0x08 |
LSB (left stick button) | Button 9 | 0x09 | 0x09 |
RSB (right stick button) | Button 10 | 0x09 | 0x0A |
Note
This is based on the final Flight Stick design. Because this differs from early Flight Stick definitions, many devices have a mode switch that supports the old versus new model. This mapping assumes the new model.
Peripheral
A peripheral is a “device that is used to put information into or get information out of the computer.”[1]
There are three different types of peripherals:
- Input, used to interact with, or send data to the computer (mouse, keyboards, etc.)
- Output, which provides output to the user from the computer (monitors, printers, etc.)
- Storage, which stores data processed by the computer (hard drives, flash drives, etc.)
Overview
A peripheral device is generally defined as any auxiliary device such as a computer mouse or keyboard, that connects to and works with the computer in some way. Other examples of peripherals are expansion cards, graphics cards, image scanners, tape drives, microphones, loudspeakers, webcams, and digital cameras. RAM—random access memory—straddles the line between peripheral and primary component; it is technically a storage peripheral, but is required for every major function of a modern computer and removing the RAM will effectively disable any modern machine. Many new devices such as digital watches, smartphones and tablet computers have interfaces which allow them to be used as a peripheral by a full computer, though they are not host-dependent as other peripheral devices are. According to the most technical definition, the only pieces of a computer notconsidered to be peripherals are the central processing unit, power supply, motherboard, and computer case.
Usually, the word peripheral is used to refer to a device external to the computer case, like a scanner, but the devices located inside the computer case are also technically peripherals. Devices that exist outside the computer case are called external peripherals, or auxiliary components, Examples are: “Many of the external peripherals I own, such as my scanner and printer, connect to the peripheral ports on the back of my computer.”[2] Devices that are inside the case such as internal hard drives or CD-ROM drives are also peripherals in technical terms and are called internal peripherals, but may not be recognized as peripherals by laypeople.
In a system on a chip, peripherals are incorporated into the same integrated circuit as the central processing unit. They are still referred to as “peripherals” despite being permanently attached to (and in some sense part of) their host processor.
Common Peripherals
- Input
- Keyboard
- Computer mouse
- Graphic tablet
- Touchscreen
- Barcode reader
- Image scanner
- Microphone
- Webcam
- Game controller
- Light pen
- Scanner
- Digital camera
- Output
- Computer display
- Printer
- Projector
- Speaker
- Storage devices
- Floppy disk drive
- Flash drive
- Disk drive
- Smartphone or Tablet computer storage interface
- CD/DVD drive
- Input/Output
- Modem
- Network interface controller (NIC)
Input Devices
In computing, an input device is a peripheral (piece of computer hardware equipment) used to provide data and control signals to an information processing system such as a computer or other information appliance. Examples of input devices include keyboards, mice, scanners, digital cameras and joysticks.
Many input devices can be classified according to:
- modality of input (e.g. mechanical motion, audio, visual, etc.)
- the input is discrete (e.g. key presses) or continuous (e.g. a mouse’s position, though digitized into a discrete quantity, is fast enough to be considered continuous)
Pointing devices, which are input devices used to specify a position in space, can further be classified according to:
- Whether the input is direct or indirect. With direct input, the input space coincides with the display space, i.e. pointing is done in the space where visual feedback or the pointer appears. Touchscreens and light pens involve direct input. Examples involving indirect input include the mouse and trackball.
- Whether the positional information is absolute (e.g. on a touch screen) or relative (e.g. with a mouse that can be lifted and repositioned)
Direct input is almost necessarily absolute, but indirect input may be either absolute or relative. For example, digitizing graphics tablets that do not have an embedded screen involve indirect input and sense absolute positions and are often run in an absolute input mode, but they may also be set up to simulate a relative input mode like that of a touchpad, where the stylus or puck can be lifted and repositioned.
Input and output devices make up the hardware interface between a computer and a scanner or 6DOF controller.
Keyboards
A keyboard is a human interface device which is represented as a layout of buttons. Each button, or key, can be used to either input a linguistic character to a computer, or to call upon a particular function of the computer. They act as the main text entry interface for most users. Traditional keyboards use spring-based buttons, though newer variations employ virtual keys, or even projected keyboards. It is typewriter like device composed of a matrix of switches.
Examples of types of keyboards include:
- Keyer
- Keyboard
- Lighted Program Function Keyboard (LPFK)
Pointing Devices
A computer mouse
Pointing devices are the most commonly used input devices today. A pointing device is any human interface device that allows a user to input spatial data to a computer. In the case of mice and touchpads, this is usually achieved by detecting movement across a physical surface. Analog devices, such as 3D mice, joysticks, or pointing sticks, function by reporting their angle of deflection. Movements of the pointing device are echoed on the screen by movements of the pointer, creating a simple, intuitive way to navigate a computer’s graphical user interface (GUI).
Composite Devices
Input devices, such as buttons and joysticks, can be combined on a single physical device that could be thought of as a composite device. Many gaming devices have controllers like this. Technically mice are composite devices, as they both track movement and provide buttons for clicking, but composite devices are generally considered to have more than two different forms of input.
- Game controller
- Gamepad (or joypad)
- Paddle (game controller)
- Jog dial/shuttle (or knob)
- Wii Remote
Compal Drivers
Imaging and Input Devices
Microsoft Kinect sensor
Video input devices are used to digitize images or video from the outside world into the computer. The information can be stored in a multitude of formats depending on the user’s requirement.
- Digital camera
- Digital camcorder
- Portable media player
- Webcam
- Microsoft Kinect Sensor
- Image scanner
- Fingerprint scanner
- Barcode reader
- 3D scanner
- Laser rangefinder
- Eye gaze tracker
Medical Imaging
- Computed tomography
- Magnetic resonance imaging
- Positron emission tomography
- Medical ultrasonography
Audio Input Devices
Audio input devices are used to capture sound. In some cases, an audio output device can be used as an input device, in order to capture produced sound.
- Microphones
- MIDI keyboard or other digital musical instrument
Output Devices
An output device is any piece of computer hardware equipment used to communicate the results of data processing carried out by an information processing system (such as a computer) which converts the electronically generated information into human-readable form.[3][4]
Display Devices
A display device is an output device that visually conveys text, graphics, and video information. Information shown on a display device is called soft copybecause the information exists electronically and is displayed for a temporary period of time. Display devices include CRT monitors, LCD monitors and displays, gas plasma monitors, and televisions.[5]
Input/Output
Inputs are the signals or data received by the system, and outputs are the signals or data sent from it.
There are many input and output devices such as multifunction printers and computer-based navigation systems that are used for specialised or unique applications.[6] In computing, input/output refers to the communication between aninformation processing system (such as a computer), and the outside world. Inputs are the signals or data received by the system, and outputs are the signals or data sent from it.
Examples
These examples of output devices also include input/output devices.[7][8] Printers and visual displays are the most common type of output device for interfacing to people, but voice is becoming increasingly available.[9]
- Speakers
- Headphones
- Screen (Monitor)
- Printer
- Voice output communication aid
- Automotive navigation system
- Braille embosser
- Projector
- Plotter
- Television
- Radio
Computer Memory
In computing, memory refers to the devices used to store information for use in a computer. The term primary memory is used for storage systems which function at high-speed (i.e. RAM), as a distinction from secondary memory, which provides program and data storage that is slow to access but offer higher memory capacity. If needed, primary memory can be stored in secondary memory, through a memory management technique called “virtual memory.” An archaic synonym for memory is store.[10]
Volatile Memory
Volatile memory is computer memory that requires power to maintain the stored information. Most modernsemiconductor volatile memory is either Static RAM (see SRAM) or dynamic RAM (see DRAM). SRAM retains its contents as long as the power is connected and is easy to interface to but uses six transistors per bit. Dynamic RAM is more complicated to interface to and control and needs regular refresh cycles to prevent its contents being lost. However, DRAM uses only one transistor and a capacitor per bit, allowing it to reach much higher densities and, with more bits on a memory chip, be much cheaper per bit. SRAM is not worthwhile for desktop system memory, where DRAM dominates, but is used for their cache memories. SRAM is commonplace in small embedded systems, which might only need tens of kilobytes or less. Forthcoming volatile memory technologies that hope to replace or compete with SRAM and DRAM include Z-RAM, TTRAM, A-RAM and ETA RAM.
Non-Volatile Memory
Drivers Compal Input Devices Definition
Solid-state drives are one of the latest forms of non-volatile memory.
Non-volatile memory is computer memory that can retain the stored information even when not powered. Examples of non-volatile memory include read-only memory (see ROM), flash memory, most types of magnetic computer storage devices (e.g. hard disks, floppy discs and magnetic tape), optical discs, and early computer storage methods such as paper tape and punched cards. Forthcoming non-volatile memory technologies include FeRAM, CBRAM,PRAM, SONOS, RRAM, Racetrack memory, NRAM and Millipede.
Drivers Compal Input Devices Download
- Laplante, Philip A. (Dec 21, 2000). Dictionary of Computer Science, Engineering and Technology. CRC Press. p. 366. ISBN 0-8493-2691-5. Retrieved June 17,2014. ↵
- 'Peripheral Definition'. Support.about.com. 2012-04-10. Retrieved 2012-11-02. ↵
- 'Data Processing Concept' (PDF). The National Institute of Open Schooling (NIOS). pp. 24–37. Retrieved 2 June 2012. ↵
- 'Definition of: output device'. Encyclopedia. The Computer Language Company Inc. Retrieved 2 June 2012. ↵
- Lemley, Linda. 'Chapter 6: Output'. Discovering Computers. University of West Florida. Retrieved 3 June 2012. ↵
- 'Data Processing Concept' ↵
- 'Input devices, processing and output devices'. GCSE Bitesize. BBC. Retrieved 2 June 2012. ↵
- Kim, Daeryong. 'Hardware Output Devices'. Fundamental Microcomputer Information Technology. The University of Mississippi. Retrieved 2 June 2012. ↵
- 'Output device'. A Dictionary of Computing. Oxford University Press. 2008. Retrieved 3 June 2012. ↵
- A.M. Turing and R.A. Brooker (1952). Programmer's Handbook for Manchester Electronic Computer Mark II. University of Manchester. ↵