Virtual controller for game injection

US11260294B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11260294-B2
Application numberUS-201715608777-A
CountryUS
Kind codeB2
Filing dateMay 30, 2017
Priority dateMay 30, 2017
Publication dateMar 1, 2022
Grant dateMar 1, 2022

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A computing system includes an input driver and a virtual input controller. The input driver is configured to receive input data from a first controller of a recognized data protocol and to provide the input data to an API of an application to control actions of a first participant in the gaming application. The virtual input controller is, in contrast, configured to receive input data from a second controller of a protocol incompatible with the input driver, translate the input data to the recognized data protocol; request a broadcast application identifier for a currently-broadcasting application from the broadcasting agent, and provide the translated input data to the input driver in association with the broadcast application identifier for controlling actions of a second participant in the application via the API of the gaming application.

First claim

Opening claim text (preview).

What is claimed is: 1. A broadcasting device comprising: a broadcasting agent stored in memory and executable by a processor to broadcast an application data stream to a spectating device, the application data stream being generated by an application that is locally-executing on the broadcasting device; an input driver stored in memory and executable by the processor to convey user inputs received from a locally-present controller to an application programming interface (API) of the application to affect first control actions to content within the broadcast application data stream; and a virtual input controller stored in memory and executable by the processor to: receive, during broadcast of the application data stream, a request from the spectating device for remote participation in the broadcast application data stream; translate state data received from the spectating device from a protocol incompatible with the input driver to a protocol compatible with the input driver; request a broadcast application identifier for a currently-broadcasting application from the broadcasting agent; and initialize a communication channel between the spectating device and the input driver using the broadcast application identifier obtained from the broadcasting agent; and provide the translated state data to the input driver along the initialized communication channel to affect second control actions to content within the broadcast application data stream, the state data being received, translated and provided to the input driver without executing a secondary instance of the application. 2. The broadcasting device of claim 1 , wherein the virtual input controller is further configured to create a virtual device in the memory responsive to the request for remote participation from the spectating device. 3. The broadcasting device of claim 2 , wherein the virtual input controller uses a handle to the virtual device to transmit information from the input driver to the spectating device. 4. The broadcasting device of claim 1 , wherein the broadcasting agent is configured to: initiate the broadcast of the application data stream responsive to a determination that a process identifier for a currently in-focus application corresponds to an application of a gaming type; and provide the process identifier to the virtual input controller responsive to the request for the broadcast application identifier. 5. The broadcasting device of claim 1 , wherein virtual input controller is further configured to load the input driver responsive to receipt of the request for remote participation. 6. The broadcasting device of claim 1 , wherein the virtual input controller is included within an operating system of a gaming console and wherein the spectating device is a personal computer. 7. The broadcasting device of claim 1 , wherein the virtual input controller is further executable to: create a virtual device responsive to receipt of the request for remote participation from the spectating device, the virtual device having a device descriptor that the input driver recognizes as identifying a device type compatible with the input driver, wherein the communication channel is initialized between the input driver and the spectating device and the virtual device is configured to transmit the translated state data to the input driver along the initialized communication channel to affect the control actions to content within the broadcast application data stream. 8. One or more non-transitory computer-readable storage media encoding computer-executable instructions for executing on a computer system a computer process, the computer process comprising: broadcasting an application data stream from a broadcasting device for presentation on a spectating device, the broadcasting device locally-executing an application generating the application data stream and including an input driver configured to convey user inputs received from a locally-present controller to an application programming interface (API) of the application to affect first control actions to content within the broadcast application data stream; receiving, during broadcast of the application data stream, a request from the spectating device for remote participation in the broadcast application data stream; translating state data received from the spectating device from a first data protocol incompatible with the input driver of the broadcasting device to a second data protocol compatible with the input driver of the broadcasting device; requesting, during the broadcast of the application data stream, a broadcast application identifier that identifies the application generating the broadcast application data stream; initializing a communication channel between the spectating device and the input driver using the broadcast application identifier; and providing the translated state data to the input driver along the initialized communication channel to affect second control actions to content within the broadcast application data stream, the state data being received, translated, and provided to the input driver without executing a secondary instance of the application. 9. The one or more non-transitory computer readable storage media of claim 8 , wherein the computer process further comprises: loading the input driver of the broadcasting device responsive to receipt of the request for remote participation from the spectating device. 10. The one or more non-transitory computer readable storage media of claim 9 , wherein providing the translated state data to the input driver further comprises providing the spectating device with a handle to a virtual device having a device descriptor that the input driver recognizes as identifying a device type compatible with the input driver. 11. The one or more non-transitory computer readable storage media of claim 10 , wherein the computer process further comprises: loading the input driver based on characteristics of the virtual device. 12. The one or more non-transitory computer readable storage media of claim 8 wherein the broadcasting device is a gaming console and translating the state data is performed by an operating system of the gaming console. 13. The one or more non-transitory computer readable storage media of claim 8 , wherein the application is a gaming application and the translated state data from the spectating device controls an avatar of a first player in the gaming application and state data from a driver-compatible game controller controls an avatar of a second player in the gaming application. 14. The one or more non-transitory computer readable storage media of claim 8 , wherein the computer process further comprises: creating a virtual device responsive to receipt of the request for remote participation from the spectating device, the virtual device having a device descriptor that the input driver recognizes as identifying a device type compatible with the input driver, wherein the communication channel is initialized between the input driver and the spectating device and the virtual device is configured to transmit the translated state data to the input driver along the initialized communication channel to affect the control actions to content within the broadcast application data stream. 15. A computing device comprising: a game input driver stored in memory and executable by a processor to receive first input data from a locally-present first game controller of a recognized data protocol and provide the first input data to an API of a gaming application to control actions of a first player in the gaming application;

Assignees

Inventors

Classifications

  • A63F13/23Primary

    for interfacing with the game device, e.g. specific interfaces between game controller and console · CPC title

  • Protocols for games, networked simulations or virtual reality · CPC title

  • Digital input from, or digital output to, record carriers {, e.g. RAID, emulated record carriers or networked record carriers} · CPC title

  • Performing operations on behalf of clients with restricted processing capabilities, e.g. servers transform changing game scene into an encoded video stream for transmitting to a mobile phone or a thin client · CPC title

  • Data transfer via internet · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US11260294B2 cover?
A computing system includes an input driver and a virtual input controller. The input driver is configured to receive input data from a first controller of a recognized data protocol and to provide the input data to an API of an application to control actions of a first participant in the gaming application. The virtual input controller is, in contrast, configured to receive input data from a s…
Who is the assignee on this patent?
Microsoft Technology Licensing Llc
What technology area does this patent fall under?
Primary CPC classification A63F13/23. Mapped technology areas include Human Necessities.
When was this patent published?
Publication date Tue Mar 01 2022 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 5 related publications on this page (citations in our corpus or others sharing the same primary CPC).