Simultaneous input across multiple applications
First Claim
1. In a computing environment, the computing environment comprising a plurality of user input devices, a method for processing inputs from different user input devices across multiple application instances of one or more applications displayed on single display of a user interface, comprising the steps of:
- receiving a first user input from a first user input device, the first user input device being associated with a first application instance by subscription of the first application to the first user input device;
simultaneous to receiving the first user input from the first user input device, receiving a different second user input from a separate second user input device, the second user input device being associated with a separate second application instance by subscription of the second application to the second user input device;
determining that the first user input corresponds to the first application instance by determining that first user input was received from the first user input device and by evaluating a first subscription request received from the first application instance subscribing to input received from the first user input device;
routing the first user input to a first input event processing thread associated with the first application instance, wherein the first input event processing thread runs in parallel to a first main event processing thread of the first application instance;
determining a first user input event from the first user input;
rendering the determined first user input event on a user interface of the first application instance;
determining that the second user input corresponds to the second application instance by determining that the second user input was received from the second user input device and by evaluating a second subscription request received from the second application instance subscribing to input received from the second user input device;
routing the second user input to a second input event processing thread associated with the second application instance, wherein the second input event processing thread runs in parallel to a second main event processing thread of the second application instance;
determining a second user input event from the second user input; and
rendering the determined second user input event on a user interface of the second application instance.
2 Assignments
0 Petitions
Accused Products
Abstract
One or more users may interact simultaneously with different applications on the same device through an input system such as a touch-sensitive display screen. Simultaneous user input may be detected by a multiple input system and subsequently transmitted to an application using a single transmission frame. An application corresponding to the user input is determined based on an input location of the user input and a location and size of a corresponding application. Simultaneous user inputs are rendered simultaneously by each corresponding application. Each application may further include a secondary event processing thread that runs in parallel to traditional operating system event threads. The secondary event processing thread bypasses sequential processing limits of an operating system event thread, providing substantially simultaneous processing of input.
67 Citations
19 Claims
-
1. In a computing environment, the computing environment comprising a plurality of user input devices, a method for processing inputs from different user input devices across multiple application instances of one or more applications displayed on single display of a user interface, comprising the steps of:
-
receiving a first user input from a first user input device, the first user input device being associated with a first application instance by subscription of the first application to the first user input device; simultaneous to receiving the first user input from the first user input device, receiving a different second user input from a separate second user input device, the second user input device being associated with a separate second application instance by subscription of the second application to the second user input device; determining that the first user input corresponds to the first application instance by determining that first user input was received from the first user input device and by evaluating a first subscription request received from the first application instance subscribing to input received from the first user input device; routing the first user input to a first input event processing thread associated with the first application instance, wherein the first input event processing thread runs in parallel to a first main event processing thread of the first application instance; determining a first user input event from the first user input; rendering the determined first user input event on a user interface of the first application instance; determining that the second user input corresponds to the second application instance by determining that the second user input was received from the second user input device and by evaluating a second subscription request received from the second application instance subscribing to input received from the second user input device; routing the second user input to a second input event processing thread associated with the second application instance, wherein the second input event processing thread runs in parallel to a second main event processing thread of the second application instance; determining a second user input event from the second user input; and rendering the determined second user input event on a user interface of the second application instance. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A multiple-user input system, comprising:
-
a group of one or more user input sources, wherein the group of one or more user input sources generate a plurality of simultaneous different user inputs; a computer readable medium storing computer executable instructions that when executed by a processor are configured to implement plurality of application instances of one or more applications, wherein each of the plurality of application instances includes an input event processing thread running in parallel to a main application instance event thread, and a user interface; and a computer readable medium storing computer executable instructions that when executed by a processor are configured to implement an event router, wherein the event router routes each of the plurality of simultaneous user inputs to a destination application instance selected from the plurality of application instances irrespective of an input focus, wherein at least two different inputs are routed to at least two different application instances, wherein each of the plurality of simultaneous user inputs is processed by the input event processing thread of the destination application instance and wherein the plurality of simultaneous user inputs are processed simultaneously. - View Dependent Claims (8, 9, 10, 11)
-
-
12. In a computing environment, the computing environment comprising a multiple input capable hardware system including a device capable of detecting and transmitting multiple simultaneous user inputs from different users at the same time, a method for processing inputs from different users across multiple application instances of one or more applications displayed on a single display of a user interface, comprising the steps of:
-
receiving a first user input from a multiple input capable hardware device; simultaneous to receiving the first user input from the multiple input capable hardware device, receiving a different second user input from the multiple input capable hardware device; determining that the first user input corresponds to the first application instance; routing the first user input to a first input event processing thread associated with the first application instance, wherein the first input event processing thread runs in parallel to a first main event processing thread of the first application instance; determining a first user input event from the first user input; rendering the determined first user input event on a user interface of the first application instance; determining that the second user input corresponds to a separate second application instance; routing the second user input to a separate second input event processing thread associated with the second application instance, wherein the second input event processing thread runs in parallel to a second main event processing thread of the second application instance; determining a second user input event from the second user input; and rendering the determined second user input event on a user interface of the second application instance. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19)
-
Specification