IP Library Granted Patent US 7,369,117
Granted Patent B2
US 7,369,117 · App. 11/146,824 · Granted May 6, 2008

Application programming interface that maps input device controls to software actions

Assignee: Microsoft Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,369,117
App. No.
11/146,824
Granted
May 6, 2008
Kind
B2
Abstract

A system for using computer input devices with software applications is disclosed. The system includes an input device mapper API, which uses a language of semantics as an interface between input devices and software applications. The input device mapper receives information about which semantics the devices connected to the computer are able to implement, and which semantics correspond to actions that a user can request the software to perform. The input device mapper maps controls on the available devices into user-requestable software actions by matching, as closely as possible, device controls and software actions that correspond to the same semantic. The system thus makes input devices and software applications transparent to each other, and permits a software application to be designed to operate without regard to which input device is being used to control its actions.

Claims (26)

1. A method of communicating between an input device and an application in a system, comprising:

(a) issuing, from the application, a call to enumerate a suitability of input devices installed in the system, the call including an array of actions that the application uses;

(b) in response to the application call, examining the input devices installed on the system by comparing controls on the input devices with actions used by the application;

(c) ranking the input devices based on the comparison; and

(d) providing the application with at least the highest ranked input device that most closely matches the actions of the application.

2. The method of claim 1 , wherein the input device received by the application is advisory and the application selects the desired input device.

3. The method of claim 1 , further including building an action map that includes a mapping of actions to controls for a selected device.

4. The method of claim 3 , further including setting the action map.

5. The method of claim 1 , further including configuring a user interface.

6. A computer-readable medium including computer-executable instructions to perform a method for using a computer input device with a software application, comprising:

an application program interface, responsive to a call from an application, that returns an enumeration of input devices that substantially match the actions of the application; and

an application program interface, responsive to a call from the application, that uses one of the enumerated input devices selected by the application to build an action-to-control mapping.

7. The method of claim 1 , wherein actions are application behaviors resulting from a user's operation of a control on the input devices.

8. The method of claim 1 , wherein comparing controls on the input devices with actions used by the application is done by way of a genre, wherein the genre is a set of actions common to applications of a similar type.

9. The method of claim 1 , wherein providing the application with at least the highest ranked input device considers user preferences.

10. The method of claim 1 , wherein providing the application with at least the highest ranked input device considers similar applications that a user has configured to match the actions of the application to a given device control.

11. The method of claim 3 further including setting the action map after it is built.

12. The method of claim 11 , wherein setting the action map includes mapping physical controller codes of the input devices to physical application codes.

13. The method of claim 1 wherein an input device includes a mouse, keyboard, game controller, force feedback device, or combinations thereof.

14. The computer-readable medium of claim 6 , wherein the actions are application behaviors resulting from a user's operation of a control on the computing input device.

15. The computer-readable medium of claim 6 , wherein to substantially match the actions of the application, the application program interface compares controls on the computing input device with actions used by the application by way of a genre, wherein the genre is a set of actions common to applications of a similar type.

16. The computer-readable medium of claim 6 , wherein the application program interface considers user preferences in building the action-to-control mapping.

17. The computer-readable medium of claim 6 , wherein the application program interface considers similar applications that a user has configured in building the action-to-control mapping.

18. The computer-readable medium of claim 6 , wherein the application program interface automatically obtains system information about input devices connected in the system, retrieves custom settings provided by the user, and renders a user interface for the computing input device using system information and custom settings.

19. The computer-readable medium of claim 6 , wherein building the action-to-control map includes mapping physical controller codes of the computing input device to application codes.

20. The computer-readable medium of claim 6 , wherein the computing input device includes a mouse, keyboard, game controller, force feedback device, or combinations thereof.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034543/0001 →
Continuity (7)
Division 0985527400 · May 14, 2001
Continuation 0948311300 · Jan 14, 2000
Continuation 0949791400 · Feb 4, 2000
Continuation In Part 0948311300 · Jan 14, 2000
Provisional Application 6020415400 · May 15, 2000
Provisional Application 6012797200 · Apr 6, 1999
Related Publication 20050225530A1 · Oct 13, 2005