Patent Description:
In many cases, individuals find that different devices may be better suited for different scenarios. For example, in the context of gaming, individuals may find that mobile devices are ideal for consuming gaming content while traveling or when meeting at a public place. Alternatively, the same individuals may prefer to consume gaming content on a home console coupled to a television or other display device when consuming content at their home. In some cases, individuals may wish to transition between different gaming setups. Conventional gaming and communication systems, however, suffer from a number of drawbacks and limitations.

In particular, conventional systems for handing off a gaming session from one device to another often involves interrupting or otherwise causing friction to the continuity of a gaming session. For example, many conventional systems involve interrupting a gaming session to perform a setup process that involves manually pressing buttons on multiple devices to cause those devices to connect with one another. As another example, many conventional systems involve exiting a game or application in order to modify settings or otherwise indicate a desire to modify a gaming setup for the gaming session. In each of the above examples, delay and user frustration may occur, particularly where a user is engaged with a gaming session that includes other users (e.g., multiplayer applications).

These and other problems exist with regard to transitioning between different setups or device environments when consuming digital content. <CIT> describes methods and apparatuses which are provided for session data stream management and more particularly to enhance gaming experience by controlling a gaming session data stream. The gaming client is detecting fulfillment of a criterion involving a location of the first gaming client and then initiates transmission of the gaming session data stream between the gaming server and a second gaming client. The gaming server is receiving from the first client, following detection of fulfillment of a criterion involving a location of the first gaming client, a request for transmission of the gaming session data stream between the gaming server and the second gaming client. The gaming server initializes a gaming session at the second gaming client and transmits the gaming session data stream between the gaming server and the second gaming client. The gaming client can trigger to the game server to control the game session data stream once the user is in proximity of the home or any other location. <CIT> describes a technique and apparatus for backing up and restoring game application state across multiple devices. The method includes running an instance of a game application at a first device. Based on any of various criteria, such as the proximity between the first device and a second device, a computer makes a determination to synchronize the application state between the two devices. The computer causes the application state data, which represents an application state of the game application running on the first device, to be saved and made available to the second device, such as by saving the application state data to cloud storage. The second device receives the application state data and restores the game application state. <CIT> describes methods and systems to identify options of secondary client devices for a device handover of game play include establishing a session of game play of a game for a primary client device by executing the game on a server for streaming video frames to the primary client device. A request is received to generate a profile of one or more secondary client devices that are identified to be local to the primary client device. The profile is configured to identify device attributes for the secondary client devices. A handover option is provided to the primary client device during game play, identifying one or more of the secondary client devices, based on the profile. A selection of a secondary client device identified by the handover option received from the primary client device causes pausing of the streaming of video frames to the primary client device, saving a game state for the game and providing an option to resume play of the game on the secondary client device. A resume request received from the secondary client device causes the game state for the game to be accessed and game play resumed so as to continue streaming video frames to the secondary client device. <CIT> describes a method for providing remote control of a user's gameplay is provided. A live video feed of a first user's gameplay is presented to a remote second user. A request to transition control of the first user's gameplay to the second user is processed. Control of the first user's gameplay by the second user is initiated.

The present disclosure relates to a device management system on an input device (e.g., a gaming controller) that facilitates a handoff of one or more gaming session control elements (or simply "control elements") between computing devices without interrupting a current gaming session. In particular, as will be discussed in further detail below, a device management system may be implemented on an input device, such as a gaming controller, to enable a convenient and friction-free transfer of control elements of a gaming session from one device to another device. Indeed, as will be discussed in further detail below, once an input device is paired to a client device, the input device having the device management system implemented thereon may be used to facilitate transfer of control for the gaming session to the client device at any point within a gaming session.

For example, and as will be discussed in further detail below, an input device and a client device may perform a pairing process in which the input device and client device exchange information that enables the input device to identify a proximity of the input device as well as enable the client device to connect to a gaming system. While engaged in a gaming session in which the input device provides input commands to a gaming system (e.g., a local console and/or a cloud-based gaming system), the input device and client device may identify or otherwise detect a trigger condition (e.g., a tap of a gaming controller and client device) that indicates a desire to transfer control of a gaming session to the client device. In response to the trigger condition, the client device can pull or otherwise obtain control of control elements such as input control, video control, and any other control elements of the gaming session.

The present disclosure includes a number of practical applications that provide benefits and/or solve problems associated with conventional systems and techniques for dynamically modifying a configuration of devices for an ongoing gaming session. In particular, the systems described herein provide specific features and functionalities that allow transfer of control elements for a gaming session from one device to another device without interrupting a current gaming session hosted by a gaming system. Moreover, systems described herein enable transfer of a gaming session independent of whether the gaming session is hosted by a local console or on a console implemented as part of a cloud computing system.

For example, in one or more embodiments described herein, an input device may facilitate a fast and efficient transfer of input control (and other control elements) by storing any number of device profiles corresponding to respective client devices that are capable of pulling or otherwise receiving control of a gaming session from another device. In particular, once paired to a given client device and after storing an associated device profile as part of the pairing process, the device management system may utilize the stored device profile to detect a trigger condition based on detecting proximity of a client device that matches the device profile stored on the input device. In this way, the device management system may be preconfigured to recognize the client device and cause a portion of control (e.g., input control, video control) of the gaming session to be transferred to the client device upon detecting the trigger condition.

In addition to reducing friction of transferring control elements by storing device profiles, the device management system may utilize two or more communication protocols to detect one of any number of client devices having a range of capabilities and cause control of the gaming session to be transferred to a diverse set of client devices. For instance, where the input device may be configured to communicate with a gaming system using a first communication protocol that optimizes features of the input device and/or gaming system in a given device environment, the same communication protocol may be less optimal (or incompatible) for another client device. Accordingly, the device management system can enhance the flexibility of engagement with the gaming system by communicating with the gaming system using a first protocol (e.g., a proprietary protocol unique or otherwise specific to the input device and/or gaming console) while using a second protocol to communicate with or detect presence of a more generic client device (e.g., a mobile device, laptop device, etc.).

In addition to providing additional flexibility in allowing a range of client devices to communicate with a gaming system, communicating using different communication protocols (e.g., using different antennas) can provide a frictionless handoff of control while significantly improving power performance of the input device. For example, where communicating using a first communication protocol consumes significantly more power than communicating using a second protocol, utilizing the different communication protocols enhances performance of the input device by consuming less power when transmitting signals to detect a presence of a client device. Moreover, by allowing client devices to communicate with the gaming system using a variety of communication protocols, respective client devices may further optimize performance over systems that would need to communicate with the gaming system using the same communication protocol as the input device. Thus, by utilizing multiple antennas of different types or that transmit signals using different communication protocols; one or more embodiments described herein can improve power performance of the input device and other devices within an environment of the gaming system.

As illustrated in the foregoing discussion, the present disclosure utilizes a variety of terms to describe features and advantages of a device management system within a variety of computing environments. Additional detail will now be provided regarding the meaning of such terms. For example, as used herein, an "input device" may refer to any electronic or computing device configured to communicate input commands with a gaming system. In one or more embodiments described herein, an input device refers specifically to a gaming controller or other dedicated hardware device associated with a gaming system and including hardware and/or software thereon that enables the gaming controller to communicate input commands using a first communication protocol. As will be discussed in further detail below, an input device may include any number of antennas capable of communicating with other devices using a number of different communication protocols.

As used herein, a "gaming session" may refer to an application and associated duration of time that a user or multiple users have access to the gaming session. In one or more embodiments, the gaming session may refer to a period of time commencing when an individual (e.g., a user or player) initiates a gaming application and ending when the individual (or other individual) terminates the gaming session. For example, a gaming session may begin when a user opens an application and end when the user closes the gaming session, concludes a game, loses connectivity with a gaming system, and/or when the user logs off or otherwise disconnects a device from the gaming session (e.g., for a threshold or other predetermined period of time). In one or more embodiments described herein, a single gaming session may include a first portion of the gaming session when a user engages with or consumes gaming content using a first device as well as a second portion when the user engages with or consumes gaming content using a second device upon completing transfer of one or more control elements to the second device. The gaming session may continue for any number of transfers of control elements between devices and end upon the user logging off, disconnecting, or otherwise disengaging with the gaming system for a predetermined period of time.

As used herein, a "control element" of a gaming session may refer to one or more elements of the gaming session associated with consuming the gaming session by an individual. For example, a control element may refer to input control, video control, audio control, voice control, or other control associated with how the individual interacts with a gaming system and/or consumes gaming content. To illustrate, a device (e.g., input device, client device) may have input control when the device has an active communication link with the gaming system such that the gaming system recognizes input commands transmitted by the device. As another example, a device may have video control or audio control where the device receives a stream of video and/or audio content from the gaming system for the gaming session.

As used herein, a "communication protocol" may refer to a particular format associated with communicating information between two devices. In particular, a communication protocol may refer to a set of rules, syntax, semantics, synchronization, and possible error recovery methods associated with a method for communication between two respective devices. In one or more embodiments described herein, a communication protocol refers to the type of network or wireless connection over which two different devices communication. For example, in one or more embodiments described herein, a communication protocol refers to a proprietary protocol unique or otherwise specific to a gaming controller and a gaming console (e.g., a manufacturer or brand of the respective devices/consoles). Other example communication protocols may refer to WiFi, Bluetooth (e.g., Bluetooth Low Energy (BLE)), near field communication (NFC) or other wireless protocol. Indeed, the communication protocols described herein may refer to any number of communication protocols that enable devices, such as an input device, client device, and/or gaming system to communicate over a variety of different networks (e.g., wired or wireless networks).

Additional detail will now be provided regarding a device management system in relation to illustrative figures portraying example implementations. For example, <FIG> illustrates an example environment <NUM> including one or more computing device(s) <NUM>, an input device <NUM>, and a client device <NUM> (e.g., multiple client devices) in accordance with one or more embodiments described herein. Each of the computing device(s) <NUM>, input device <NUM>, and client device <NUM> may communicate over a network <NUM>, which may include one or multiple networks that use one or more communication protocols or technologies for transmitting data. For example, the network <NUM> may include the internet, a local area network (LAN), or any data link that enables transport of electronic data between the computing device(s) <NUM>, input device <NUM>, and/or client device <NUM>.

In one or more embodiments described herein, the computing device(s) <NUM> may refer to a local gaming console, desktop computer, or other computing device capable of hosting one or more gaming sessions for one or more gaming applications. Alternatively, in one or more embodiments, the computing device(s) <NUM> refers to one or more server devices and/or gaming consoles implemented within a datacenter or otherwise implemented on a cloud computing system. As used herein, a cloud computing system may include a collection of physical server devices organized in a hierarchical structure including computing zones, virtual LANs, racks, fault domains, etc. In one or more embodiments described herein, a cloud computing system may include any number of gaming consoles capable of hosting gaming sessions for a variety of end-users.

As illustrated in <FIG>, the computing device(s) <NUM> may include a gaming system <NUM> implemented thereon. The gaming system <NUM> may host a gaming session <NUM> accessible to one or multiple users of the gaming system <NUM> for some duration of time. The gaming system <NUM> may host or otherwise provide access to any number of additional gaming sessions associated with the same application or a variety of applications. In one or more embodiments, the gaming system <NUM> hosts or otherwise provides access to the gaming session <NUM> hosted by one or more additional server devices (e.g., servers owned or operated by third-party publishers).

As shown in <FIG>, the gaming system <NUM> includes a data storage <NUM> including data stored thereon or otherwise accessible to the gaming system <NUM>. For example, as shown in <FIG>, the data storage <NUM> may include session data <NUM>. The session data may include any information associated with one or more gaming sessions. For example, the session data <NUM> may include information about users or devices engaged within the gaming session. The session data <NUM> may include a state of data for an application associated with the gaming session. For example, the session data <NUM> may include a current state of characters or a virtual environment for the gaming session at a current time or at one or more previous times.

As further shown, the data storage <NUM> may include account data <NUM> associated with one or more users of the gaming system <NUM>. For example, the account data <NUM> may include user identifiers, authentication information (e.g., passwords, security tokens, etc.) or any information associated with users of the gaming system <NUM> and associated client devices. In one or more embodiments described herein, the gaming system <NUM> can utilize the account data <NUM> to verify an identity of an input device <NUM> and/or client device <NUM> in determining whether to allow the client device <NUM> to pull one or more control elements for the gaming session <NUM> from the input device <NUM> (or other device).

As mentioned above, the input device <NUM> may refer to an electronic or computing device configured to communicate input commands to the gaming system <NUM> in connection with a gaming session <NUM>. In one or more embodiments described herein, the input device <NUM> refers to a gaming controller or console controller associated with the gaming system <NUM>. For example, the input device <NUM> and hardware of the gaming system <NUM> (e.g., a gaming console) may originate from the same company or manufacturer and may include compatible hardware, firmware, and/or software that enables the input device <NUM> to communicate via a specific communication protocol (e.g., a proprietary protocol unique to communications between the input device <NUM> and gaming system <NUM>).

As shown in <FIG>, the input device <NUM> may include a device management system <NUM> implemented thereon. As will be discussed in further detail herein, the device management system <NUM> may provide features and functionality to facilitate communication between the input device <NUM> and other devices of the environment <NUM>. The device management system <NUM> can additionally facilitate pairing with one or more client devices <NUM> in addition to facilitating handoff of one or more control elements for an ongoing gaming session <NUM>.

The device management system <NUM> may include a profile manager <NUM> and device profiles <NUM>. The profile manager <NUM> may facilitate performing a pairing process with one or more client devices <NUM>. For example, the profile manager <NUM> may monitor proximity of one or more devices in pairing mode and performing a pairing process by collecting information about the device(s) and creating device profiles <NUM> associated with the respective devices to store on the input device <NUM>. The device management system <NUM> may include any number of device profiles <NUM> corresponding to any number of client devices <NUM>. In addition, or as an alternative, the device management system <NUM> may include any number of device profiles <NUM> corresponding to a number of antennas (e.g., antennas 126a-n) on the input device <NUM>.

In addition to performing a pairing process, the profile manager <NUM> can facilitate detecting a trigger condition based on a detected proximity of the input device <NUM> relative to one or more client devices <NUM>. For example, the profile manager <NUM> may cause the input device <NUM> to announce, broadcast, or otherwise transmit a signal to determine whether a client device <NUM> corresponding to one of the device profiles <NUM> comes into proximity of the input device <NUM>. Further detail in connection with detecting a proximity condition will be discussed in further detail below.

As shown in <FIG>, the input device <NUM> further includes a number of antennas 126a-n capable of communicating signals to and from the input device <NUM>. As mentioned above, the input device <NUM> may include a variety of different types of antennas 126a-n capable of transmitting (and/or receiving) signals using different communication protocols. The device management system <NUM> may include firmware, software, or a combination of firmware and software that facilitate communication of data using each of the antennas 126a-n on the input device <NUM>.

It will be appreciated that the input device <NUM> may include any number of antennas 126a-n. For example, in one or more embodiments, the input device <NUM> may include <NUM>, <NUM>, <NUM>, or other specific number of antennas. In one or more implementations, the number of antennas on the input device <NUM> may determine a number of device profiles <NUM> that may be registered or stored on the input device <NUM>. For example, where the input device <NUM> has four antennas, the input device <NUM> may utilize a first antennas to communicate with the gaming system <NUM> using a first communication protocol and register up to three device profiles associated with three different client devices with which each of the remaining three antennas may communicate using one or more additional communication protocols.

As an illustrative example, and as will be discussed in further detail below, a first antenna 126a may refer to an antenna configured to communicate signals using a first communication protocol. For example, the first antenna 126a may refer to a first type of antenna unique to the input device <NUM> capable of transmitting input commands to the gaming system <NUM> using a first communication protocol (e.g., a proprietary communication protocol unique to the input device <NUM> and gaming system <NUM>).

In contrast, the second antenna 126b (and one or more additional antennas) may refer to a second type of antenna capable of communicating wirelessly with a variety of client devices <NUM>. For instance, the second antenna 126b may transmit signals using a second communication protocol (e.g., WiFi, BLE, NFC, etc.) different from the first communication protocol. Additional antennas of the plurality of antennas 126a-n may refer to other types of antennas that are capable or otherwise configured to communicate signals using other types of protocol s (e.g., the same or different from the second antenna 126b). Additional information in connection with the plurality of antennas 126a-n will be discussed in further detail below in connection with various examples.

As mentioned above, the environment <NUM> may include one or more client device <NUM>. The client devices <NUM> may refer a variety of different types of devices. For example, in one or more embodiments, the client device <NUM> may refer to a portable device such as a mobile device (e.g., a smartphone, a tablet), a laptop, or other computing device capable of being carried or transported by a user. Alternatively, the client device may refer to a nonportable device such as a desktop, smart television, entertainment system, or other system of devices having data processing and display capabilities. Indeed, the client device(s) <NUM> may refer to any device capable of communicating with the input device <NUM> using a second communication protocol and subsequently receiving gaming content and/or transmitting input commands to the gaming system <NUM> in accordance with one or more embodiments.

As shown in <FIG>, the client device <NUM> may include a gaming system application <NUM> implemented thereon. The gaming system application <NUM> may refer to a software application (e.g., stand-alone application, web browser, combination of multiple applications) associated with the gaming system <NUM> including executable instructions enabling the client device <NUM> to access or obtain control of one or more control elements for the gaming session <NUM> (e.g., pulling input control from the input device <NUM>). For example, the gaming system application <NUM> may cause the client device <NUM> to register the device and/or user with the gaming system <NUM> before or in conjunction with performing a pairing process with the input device <NUM>. In addition, the gaming system application <NUM> may include instructions that cause the client device <NUM> to communicate with the gaming system <NUM> upon detecting a trigger condition associated with proximity of the client device <NUM> to the input device <NUM>.

Additional detail in connection with transferring one or more control elements for a gaming session from one device to another device will now be described in connection with example implementations. For example, <FIG> illustrate an example implementation in which a gaming controller is used to transfer input control for a gaming session to a client device (e.g., a mobile device) in accordance with one or more embodiments. <FIG> illustrate another example implementation in which a gaming controller is used to transfer one or more control elements for a gaming session between a first client device (e.g., a laptop computer) to a second client device (e.g., a mobile device) in accordance with one or more embodiments. <FIG> illustrates another example implementation in which a gaming controller and a graphical user interface facilitate selectively transferring one or more of a plurality of control elements for a gaming session to a client device in accordance with one or more embodiments.

It will be understood that while <FIG> illustrate three implementations within different environments of devices, features and functionality described in connection with each of the individual examples may similarly apply to another example. For example, features and functionality described in connection with <FIG> may apply to examples described in connection with <FIG>. Similarly, features and functionality described in connection with <FIG> may apply to examples described in connection with <FIG> and <FIG>. Moreover, features and functionality described in connection with <FIG> may apply to examples described in connection with <FIG>.

<FIG> illustrates an example environment <NUM> including a display device <NUM> having a graphical user interface <NUM>. The display device <NUM> may be in communication (e.g., have an active connection) with a gaming console <NUM>. The gaming console <NUM> (and the display device <NUM>) may include similar features and functionality as the computing device(s) <NUM> discussed above in connection with <FIG>. In this example, the gaming console <NUM> refers to a local gaming console having the gaming system <NUM> implemented thereon and capable of hosting a gaming session for a user of the gaming console <NUM>. Alternatively, the gaming console <NUM> may receive gaming content from a server device on a cloud computing system hosting one or more gaming sessions for the user of the gaming console <NUM> and/or other users of the gaming system <NUM>.

As shown in <FIG>, the environment <NUM> further includes a gaming controller <NUM> having antennas 210a-b thereon capable of communicating with other devices of the environment <NUM>. The gaming controller <NUM> may refer to one example of the input device <NUM> discussed above in connection with <FIG>. As further shown, the environment <NUM> includes a client device <NUM> (e.g., a mobile device) having a graphical user interface thereon <NUM>. The client device <NUM> may refer to an example implementation of the client device <NUM> having the gaming system application <NUM> thereon as discussed above in connection with <FIG>.

In accordance with subject matter discussed above, the gaming controller <NUM> and the client device <NUM> may have previously performed a pairing process. For example, as part of a pairing process, the gaming controller <NUM> may collect information about the client device <NUM> to store within a device profile on the gaming controller <NUM>. As will be discussed further in <FIG>, the gaming controller <NUM> may utilize the device profile(s) on the gaming controller <NUM> to identify the client device <NUM> and facilitate transfer of one or more control elements for a gaming session hosted on the gaming console <NUM> to the client device <NUM>.

As shown in <FIG>, the gaming console <NUM> may be connected to the display device <NUM> to provide video control for the gaming session to the display device <NUM>. In particular, the gaming console <NUM> may provide video control to the display device <NUM> by streaming or otherwise providing video content for the gaming session to display via a graphical user interface <NUM> of the display device <NUM>. In one or more embodiments, the gaming console <NUM> additionally provides audio control by providing audio content via one or more speakers of the display device <NUM>. While not shown in <FIG>, the gaming console <NUM> may provide audio control to one or more additional devices (e.g., a headset, auxiliary speaker) in communication with the gaming console <NUM> (or coupled to the display device <NUM>).

As further shown, the gaming console <NUM> may be connected to or have ongoing communication with the gaming controller <NUM>. In particular, the gaming console <NUM> and the gaming controller <NUM> may communicate via a first antenna 210a on the gaming controller <NUM>. In accordance with one or more examples described herein, the first antenna 210a may refer to a first type of antenna that communicates with the gaming console <NUM> using a first communication protocol associated with the first antenna 210a. The first communication protocol may refer to any of a number of communication protocols that enable the gaming controller <NUM> to transmit input commands to the gaming console <NUM>.

In one or more embodiments, the first communication protocol refers to a unique or proprietary communication protocol associated with specialized or dedicated hardware and/or firmware of the gaming controller <NUM> and the gaming console <NUM>. For example, in a gaming context where the gaming console <NUM> may communicate with as many as eight or ten controllers at a given time, the gaming console <NUM> may be configured to receive input commands from the gaming controller <NUM> using a proprietary protocol that is optimized for gaming applications and configured to receive input commands across a wide bandwidth of frequencies. In one or more embodiments described herein, the gaming controller <NUM> communicates using a protocol unique to a manufacturer or specific hardware component of the gaming console <NUM> and/or the gaming controller <NUM>.

<FIG> illustrates the environment <NUM> prior to detecting a trigger event associated with proximity of the gaming controller <NUM> and the client device <NUM>. Proceeding onto <FIG>, this illustration shows an implementation in which gaming controller <NUM> and the client device <NUM> come into contact (e.g., tap together) or within a predetermine proximity of one another in accordance with a trigger condition. In particular, a device management system <NUM> on the gaming controller <NUM> and a gaming system application <NUM> on the client device <NUM> may cooperatively determine (e.g., based on settings that define what constitutes a trigger condition) whether there is an intent to transfer one or more control elements to the client device <NUM> from the gaming controller <NUM> and/or the display device <NUM>.

For example, in one or more embodiments, the gaming controller <NUM> may transmit a signal from the second antenna 210b using a second communication protocol to determine whether a client device (e.g., the client device <NUM>) for which a device profile is stored comes into contact with or moves within a threshold distance from the gaming controller <NUM>. In one or more implementations, the second antenna 210b transmits a low power energy signal (e.g., BLE signal) at periodic intervals that may be received and processed by the client device <NUM>. In particular, the second antenna 210b may transmit a low power energy signal that any client device having the gaming system application <NUM> thereon and which has previously paired with the gaming controller <NUM> may receive and use to establish a connection with the gaming console <NUM>.

As shown in <FIG>, the client device <NUM> may receive a signal transmit from the second antenna 210b. In response to receiving the signal, the client device <NUM> can establish a connection <NUM> with the gaming console <NUM> by sending an indication to the gaming console <NUM> of the trigger condition associated with transferring control of one or more control elements to the client device <NUM>. For example, the client device <NUM> can provide a request to the gaming console <NUM> for control of one or multiple control elements for the gaming session. Where a gaming system application <NUM> on the client device <NUM> has previously registered the client device <NUM> with the gaming system <NUM>, the client device <NUM> may have pre-authorization from the gaming system <NUM> to pull control of one or multiple control elements for the gaming session from the gaming controller <NUM>.

The client device <NUM> can pull any number of control elements for the gaming session from other devices within the environment <NUM>. For example, proceeding onto <FIG>, the client device <NUM> can pull multiple control elements for the gaming session from other devices within the environment <NUM>. In particular, the client device <NUM> can pull video control from the display device <NUM> by causing video content to be provided via the graphical user interface <NUM> of the client device <NUM>. As a result, the display device <NUM> may no longer provide a display of video content for the gaming session.

In addition to pulling video control for the gaming session from the display device <NUM>, the client device <NUM> may additionally pull input control for the gaming session from the gaming controller <NUM>. Indeed, the client device <NUM> (or other client device registered on the gaming controller <NUM>) can pull any number of control elements for the gaming session from any number of devices in accordance with a configuration defined by the gaming system application <NUM> running on the client device <NUM>. For example, where the client device <NUM> is configured to pull all control elements for the gaming session, the client device <NUM> may automatically pull all control elements upon detecting the trigger condition. Alternatively, where the client device <NUM> may input command capabilities or where the client device <NUM> has some limitation for pulling control of a specific control element, the client device <NUM> may be configured to only pull a subset of control elements for a given gaming session from any of the devices currently in control of one or more control elements for the gaming session.

As mentioned above, and in the example shown in <FIG>, the client device <NUM> may pull each of the control elements from each of the devices of the environment <NUM> previously in control of the control elements prior to detecting the trigger condition. Specifically, the client device <NUM> may pull input control from the gaming controller <NUM> as indicated by control icons <NUM> displayed on the graphical user interface <NUM> of the client device <NUM>. In addition, the client device <NUM> may pull video and/or audio control from the display device <NUM> as indicated by the display for the gaming application being presented via the graphical user interface <NUM> of the client device <NUM> rather than on the graphical user interface <NUM> of the display device <NUM>. While not shown in <FIG>, in one or more embodiments, the video content may continue streaming to the display device <NUM> at the same time as displayed on the client device <NUM>.

As shown in <FIG>, the client device <NUM> may begin transmitting input commands to the gaming console <NUM> upon obtaining input control from the gaming controller <NUM>. In one or more embodiments, the client device <NUM> communicates input commands to the gaming console <NUM> using a different communication protocol than the first communication protocol used by the gaming controller <NUM> (e.g., the second communication protocol or another communication protocol different from the first communication protocol). For example, where the gaming controller <NUM> transmits input commands via a first antenna 210a using a first communication protocol (e.g., a proprietary protocol, WiFi protocol, etc.), the client device <NUM> may transmit input commands to the gaming console <NUM> using a second communication protocol (e.g., WiFi, BLE) or any communication protocol different from the first communication protocol.

As mentioned above, <FIG> illustrate another example implementation in which a gaming controller may be used to facilitate one or more client devices obtaining control of control elements for a gaming session. For example, <FIG> illustrates an environment <NUM> including a cloud computing system <NUM> having one or more server device(s) <NUM>. The server device(s) <NUM> may include a gaming system <NUM> including similar features as discussed above in connection with <FIG>.

As further shown, the environment <NUM> may include a first client device <NUM> (e.g., a laptop computer) having a graphical user interface <NUM>. The environment <NUM> may additionally include a gaming controller <NUM> having two antennas 312a-b for communicating signals to devices of the environment <NUM>. The gaming controller <NUM> may include additional antennas. In the example shown in <FIG>, the gaming controller <NUM> includes a first antenna for communicating directly with the gaming system <NUM> in addition to a plurality of antennas corresponding to respective client devices that have been registered with the gaming system <NUM> and associated with device profiles stored on the gaming controller <NUM>. The environment <NUM> may further include a second client device <NUM> (e.g., a mobile device) having a graphical user interface <NUM>.

As shown in <FIG>, the first client device <NUM> may have an active connection with the gaming system <NUM> on the cloud computing system <NUM>. As shown in <FIG>, the first client device <NUM> may additionally have control of various control elements for a gaming session including input control, video control, audio control, and any other control elements for the gaming session. The control of these control elements may have been previously established (e.g., similar to the example shown in <FIG>) based on a trigger condition detected between the first client device <NUM> and the gaming controller <NUM>.

In <FIG>, the gaming controller <NUM> may be placed in contact with or within a proximity of the second client device <NUM> such that the gaming controller <NUM> and second client device <NUM> detect a trigger condition indicating a desire to transfer control of one or more control elements for the gaming session to the second client device <NUM>. In particular, the second antenna 312b may transmit a signal that, when placed in a proximity to the second client device <NUM>, enables the client device <NUM> to receive the signal. In response to receiving the signal and the devices authenticating one another, the second client device <NUM> can establish a connection <NUM> with the gaming system <NUM> in accordance with instructions of a gaming system application <NUM> on the second client device <NUM>. For example, the second client device <NUM> can provide a request to the gaming system <NUM> indicating one or more control elements that the second client device <NUM> intends to control based on the indicated desire to transfer one or more of the control elements to the second client device <NUM>.

In <FIG>, the second client device <NUM> can pull control of any number of control elements for the gaming session. For example, the second client device <NUM> can receive a video stream or audio stream from the cloud computing system <NUM> for presentation on the graphical user interface <NUM> of the second client device <NUM>. In addition to receiving the video and/or audio content, the second client device <NUM> may obtain control of an input control element and provide input icons <NUM> via the graphical user interface <NUM> that enables a user of the second client device to indicate input commands to send to the gaming system <NUM> via the established connection <NUM> between the second client device <NUM> and the gaming system <NUM>.

As shown in <FIG>, after completion of the transfer of control elements to the second client device <NUM>, the first client device <NUM> may no longer have an active connection to the gaming system <NUM>. Nevertheless, because the gaming controller <NUM> has a device profile corresponding to the first client device <NUM>, the gaming controller <NUM> may be used at any time to tap the first client device <NUM> or be moved within a proximity of the first client device <NUM> to indicate a desire to transfer the gaming session back to the first client device <NUM>. In response, the first client device <NUM> could take back control of one or more control elements of the gaming session in accordance with one or more embodiments described herein.

Moving onto <FIG>, this example illustrates features and functionality related to a client device selectively taking control of one or more control elements in accordance with one or more embodiments described herein. For example, <FIG> illustrates an example environment <NUM> similar to the environment <NUM> described above in connection with <FIG>. In particular, the environment <NUM> includes a display device <NUM> having a graphical user interface <NUM> thereon. The environment <NUM> further includes a gaming console <NUM>. Prior to detecting a trigger condition, the display device <NUM> may have an active connection with the gaming console <NUM> to receive and display video content for a gaming session.

The environment <NUM> further includes a gaming control <NUM> having a first antenna 410a and a second antenna 410b capable of communicating signals to various devices using different communication protocols. For example, the first antenna 410a may communicate input commands to the gaming console <NUM> using a first communication protocol. In addition, the second antenna 410b may communicate low power signals to be detected by the client device <NUM> using a second communication protocol (e.g., NFC, BLE, WiFi).

As shown in <FIG>, the client device <NUM> includes a graphical user interface <NUM>. In contrast to one or more specific examples described above, upon detecting a trigger condition, the client device <NUM> may provide (e.g., display) a list of control elements <NUM> for the gaming session that are supported by the client device <NUM>. Different client devices may present a different list of control elements depending on capabilities of the client device, settings of a gaming system application <NUM> on the specific client device, or information from a device profile stored on the gaming controller <NUM>. In this example, the client device <NUM> may support control of control elements including video control, audio control, and input control.

As shown in <FIG>, the list of control elements <NUM> may include selectable options <NUM> that, when selected, cause the client device <NUM> to selectively pull control of the selected control elements from a device previously in control of the control element. In addition, the list of control elements <NUM> may provide an indicator or identifier of a device that currently holds control of the corresponding control elements. For example, the video control may be controlled by the display device <NUM> with an identifier of "HD TV. " Along similar lines, the audio control (e.g., audio feed and/or microphone control) may be controlled by a device with an identifier of "Headset. " Finally, the input control may be controlled by the gaming controller <NUM> with an identifier of "Gaming Controller.

As shown in this example, a user may select that the client device <NUM> should obtain control of the video control element and the input control element for the gaming session without also pulling control of the audio control element. Accordingly, in response to detecting the trigger condition in addition to detecting a selection of the corresponding control elements, the client device <NUM> can obtain video control and input control while allowing the headset to continue receiving audio content from the gaming console <NUM>.

Turning now to <FIG>, these figures illustrates example flowcharts including series of acts for transferring one or more control elements for a gaming session between various devices. While <FIG> illustrate acts according to one or more embodiments, alternative embodiments may omit, add to, reorder, and/or modify any of the acts shown in <FIG>. The acts of <FIG> can be performed as part of a method. Alternatively, a non-transitory computer-readable medium can comprise instructions that, when executed by one or more processors, cause a computing device (e.g., input device, gaming console, client device) to perform the acts of <FIG>. In still further embodiments, a system can perform the acts of <FIG>.

<FIG> illustrates an example series of acts <NUM> related to detecting a trigger condition and causing a transfer of one or more control elements for a gaming session from an input device to a client device. In particular, the series of acts <NUM> may include an act <NUM> of performing a pairing process with a client device and storing a device profile for the client device on an input device. For example, the act <NUM> may involve performing a pairing process with a client device where performing the pairing process includes storing a device profile on the input device including information associated with the client device.

As further shown, the series of acts <NUM> may include an act <NUM> of transmitting input commands to a gaming system via a first communication protocol. For example, the act <NUM> may include transmitting input commands for a gaming session to a gaming system via a first communication protocol. In one or more embodiments, the gaming system is implemented on one or more server devices on a cloud computing system. In one or more embodiments, the gaming system is implemented on a local gaming console in communication with the client device via a different communication protocol than the first communication protocol.

As further shown, the series of acts <NUM> may include an act <NUM> of detecting a trigger condition associated with proximity of the client device to the input device based on a signal transmitted via a second communication protocol. For example, the act <NUM> may involve detecting, by the input device, a trigger condition associated with proximity of the client device to the input device based on a signal transmitted by the input device via a second communication protocol.

In one or more embodiments, the first communication protocol includes a proprietary wireless communication protocol unique to the input device and the gaming system. Further, the second communication protocol may include a different wireless communication protocol from the proprietary wireless communication protocol. In one or more implementations, the input device transmits input commands via the first communication protocol using a first antenna on the input device. Further, the signal transmitted by the input device using the second communication protocol may be transmitted using a second antenna on the input device.

As further shown, the series of acts <NUM> may include an act <NUM> of causing a transfer of input control for a gaming session to the client device in response to detecting the trigger condition and verifying the client device. For example, the act <NUM> may include causing a transfer of input control for the gaming session to the client device in response to detecting the trigger condition and verifying that the client device corresponds to the device profile. In one or more embodiments, video content for the gaming session is received at a display device in communication with the gaming system prior to detecting the trigger condition. Further, the series of acts <NUM> may include causing the video content to be provided to the client device after detecting the trigger condition.

In one or more embodiments, the series of acts <NUM> includes transmitting a low energy wireless signal (e.g., BLE signal) via the second communication protocol in conjunction with transmitting input commands for the gaming session to the gaming system via the first communication protocol. Further, in one or more embodiments, detecting the trigger condition includes detecting that the input device is within a threshold proximity to the input device based on receiving, from the client device, a response to the low energy wireless signal transmitted via the second communication protocol. In one or more implementations, transmitting the low energy wireless signal includes periodically transmitting a plurality of low energy wireless signals from the input device via the second communication protocol.

In one or more embodiments, the series of acts <NUM> includes maintaining, on the input device, a plurality of device profiles corresponding to a plurality of client devices with which the input device has previously performed one or more pairing processes. The series of acts <NUM> may further include detecting, by the input device, an additional trigger condition associated with proximity of an additional client device associated with an additional device profile from the plurality of device profiles via the second communication protocol. In response to detecting the additional trigger condition, the series of acts <NUM> may additionally include causing a transfer of input control from the client device to the additional client device.

In one or more implementations, video content is provided for display via a display device independent from the input device prior to detecting the trigger condition. Further, in one or more implementations, the client device may include a mobile device having an application associated with the gaming system implemented thereon and configured to continue the gaming session thereon by pulling input control from the input device to the client device and requesting that video content be provided to the client device rather than the display device in response to detecting the trigger condition.

<FIG> illustrates another example series of acts <NUM> related to detecting a trigger condition between an input device and client device and facilitating continuation of a gaming session on the client device. As shown in <FIG>, the series of acts <NUM> includes an act <NUM> of performing a pairing process with an input device by providing information to include within a device profile stored on the input device. For example, in one or more embodiments, the act <NUM> includes performing a pairing process with an input device where performing the pairing process includes providing information to include within a device profile associated with the client device stored on the input device.

As further shown, the series of acts <NUM> may include an act <NUM> of detecting a trigger condition associated with proximity of the client device with the input device based on a signal transmitted via a different communication protocol than a communication protocol used by the input device to transmit input commands. For example, in one or more embodiments, the act <NUM> may include detecting a trigger condition associated with proximity of the client device with the input device where the input device has input control for a gaming session prior to detecting the trigger condition. The input device may be connected with the gaming system hosting the gaming session via a first communication protocol. In addition, the input device may detect the trigger condition based on a signal transmitted by the input device via a second communication protocol.

As further shown, the series of acts <NUM> may include an act <NUM> of establishing a connection with the gaming system and pulling input control for the gaming session from the input device in response to detecting the trigger condition. For example, the act <NUM> may include, in response to detecting the trigger condition, establishing, by the client device, a connection with the gaming system and continuing the gaming session with the gaming system by pulling input control for the gaming session from the input device to the client device. The gaming session may be implemented on one or more server devices on a cloud computing system. The gaming session may also be implemented on a local gaming console in communication with the client device using a different communication protocol than the first communication protocol.

In one or more embodiments, the first communication protocol includes a proprietary wireless communication protocol unique to the input device and the gaming system while the second communication protocol includes a different wireless communication protocol from the proprietary wireless communication protocol. Further, in one or more embodiments, continuing the gaming session includes providing, by the client device, a request to receive video content for the gaming session from the gaming system, wherein the video content is previously provided to a display device connected to the gaming system prior to detecting the trigger condition. Continuing the gaming session may further include receiving the video content for the gaming session to display via a graphical user interface of the client device.

The series of acts <NUM> may further include, in response to detecting the trigger condition, providing a plurality of selectable options associating with pulling control of one or more gaming session control elements for the gaming session via a graphical user interface of the client device. The one or more gaming session control elements may include one or more of input control, video control, or audio control for the gaming session. In addition, pulling input control from the gaming session may include pulling input control from the input device to the client device based on a detected selection of a first selectable option from the plurality of selectable options provided via the graphical user interface. In one or more implementations, the series of acts <NUM> further includes detecting a selection of a second selectable option from the plurality of selectable options associated with video control for the gaming session and pulling video control for the gaming session by providing a request to receive video content for the gaming session from the gaming system at the client device.

The computer system <NUM> includes a processor <NUM>. The processor <NUM> may be a general purpose single- or multi-chip microprocessor (e.g., an Advanced RISC (Reduced Instruction Set Computer) Machine (ARM)), a special-purpose microprocessor (e.g., a digital signal processor (DSP)), a microcontroller, a programmable gate array, etc. The processor <NUM> may be referred to as a central processing unit (CPU). Although just a single processor <NUM> is shown in the computer system <NUM> of <FIG>, in an alternative configuration, a combination of processors (e.g., an ARM and DSP) could be used.

The computer system <NUM> also includes memory <NUM> in electronic communication with the processor <NUM>. The memory <NUM> may be any electronic component capable of storing electronic information. For example, the memory <NUM> may be embodied as random access memory (RAM), read-only memory (ROM), magnetic disk storage media, optical storage media, flash memory devices in RAM, on-board memory included with the processor, erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM) memory, registers, and so forth, including combinations thereof.

A computer system <NUM> may also include one or more input devices <NUM> and one or more output devices <NUM>. Some examples of input devices <NUM> include a keyboard, mouse, microphone, remote control device, button, joystick, trackball, touchpad, and lightpen. Some examples of output devices <NUM> include a speaker and a printer. One specific type of output device that is typically included in a computer system <NUM> is a display device <NUM>. Display devices <NUM> used with embodiments disclosed herein may utilize any suitable image projection technology, such as liquid crystal display (LCD), light-emitting diode (LED), gas plasma, electroluminescence, or the like. A display controller <NUM> may also be provided, for converting data <NUM> stored in the memory <NUM> into text, graphics, and/or moving images (as appropriate) shown on the display device <NUM>.

The techniques described herein may be implemented in hardware, software, firmware, or any combination thereof, unless specifically described as being implemented in a specific manner. Any features described as modules, components, or the like may also be implemented together in an integrated logic device or separately as discrete but interoperable logic devices. If implemented in software, the techniques may be realized at least in part by a non-transitory processor-readable storage medium comprising instructions that, when executed by at least one processor, perform one or more of the methods described herein. The instructions may be organized into routines, programs, objects, components, data structures, etc., which may perform particular tasks and/or implement particular data types, and which may be combined or distributed as desired in various embodiments.

Claim 1:
A method performed by an input device (<NUM>), comprising:
performing (<NUM>) a pairing process with a client device (<NUM>), wherein performing the pairing process comprises storing a device profile (<NUM>) on the input device (<NUM>) including information associated with the client device (<NUM>);
transmitting (<NUM>) input commands for a gaming session (<NUM>) to a gaming system (<NUM>) via a first communication protocol;
periodically transmitting, via a second communication protocol, signals from the input device to the client device;
determining that the input device and the client device are within a threshold distance to be able to establish a connection over the periodically transmitted signals from the input device to the client device;
identifying (<NUM>), by the input device (<NUM>), a trigger condition associated with a desire to transfer control of one or more control elements from the input device to the client device, based on a detected proximity of the input device and the client device and based on the signal transmitted via the second communication protocol; and
causing (<NUM>) a transfer of input control for the gaming session (<NUM>) to the client device (<NUM>) in response to identifying the trigger condition and verifying that the client device (<NUM>) corresponds to the device profile (<NUM>).