U.S. Pat. No. 10,751,611

USING A GAME CONTROLLER AS A MOUSE OR GAMEPAD

AssigneeMicrosoft Technology Licensing, LLC

Issue DateJanuary 23, 2018

Illustrative Figure

Abstract

The present disclosure generally relates to game consoles including game controllers and connected to one or more computing device. Specifically, a game console may receive, via a game controller, a first input triggering an activation of a multi-mode controller switching application at the game console. Further, while a multi-mode controller switching application is active and the game controller is operating in the first controller mode, the game console may receive, via the controller, a second input representing a selection of the second controller mode different from the first controller mode, switch from the first controller mode to the second controller mode in response to receiving the second input, and controlling the computing device in communication with the game console in accordance with the second controller mode.

Description

DETAILED DESCRIPTION The present disclosure relates to a game console having a multi-mode controller switching component configured for switching a game controller between two controller modes that allow use of the game controller as either a gamepad in one mode or a keyboard/mouse in another mode for controlling a computing device connected to a game console. For example, gaming environments have evolved to include multiple devices connected to a game console as part of a gaming system. Specifically, game consoles may not only be connected to an audio/video output device such a display or television, but also to other computing devices such as personal computers (e.g., laptops), tablets, and/or smartphones. In fact, connection between the game console and other computing devices may be performed in a remote manner such that the game console may access content or data at the computing devices over a network connection (e.g., via the Internet, a local area network, or a home network). Typically, the game console may include a game controller having functionality mapped to using the game console. As such, the game controller, while in a controller mode configured for the game console, may be limited in interacting with a computing device such as a personal computer that is remotely connected to the game console. Such limited game controller configuration may inhibit efficient control of the remote computing device, or in some cases, may prevent control entirely (e.g., due to the remote computing device requiring input from a different controller mode), thereby reducing the overall user experience. As such, it may be desirable to provide a game controller that may be utilized as and dynamically switched between either a gamepad mode or a keyboard/mouse mode, e.g., via the multi-mode controller switching component, for providing game-related or keyboard/mouse related inputs to a remote computer ...

DETAILED DESCRIPTION

The present disclosure relates to a game console having a multi-mode controller switching component configured for switching a game controller between two controller modes that allow use of the game controller as either a gamepad in one mode or a keyboard/mouse in another mode for controlling a computing device connected to a game console. For example, gaming environments have evolved to include multiple devices connected to a game console as part of a gaming system. Specifically, game consoles may not only be connected to an audio/video output device such a display or television, but also to other computing devices such as personal computers (e.g., laptops), tablets, and/or smartphones. In fact, connection between the game console and other computing devices may be performed in a remote manner such that the game console may access content or data at the computing devices over a network connection (e.g., via the Internet, a local area network, or a home network). Typically, the game console may include a game controller having functionality mapped to using the game console. As such, the game controller, while in a controller mode configured for the game console, may be limited in interacting with a computing device such as a personal computer that is remotely connected to the game console. Such limited game controller configuration may inhibit efficient control of the remote computing device, or in some cases, may prevent control entirely (e.g., due to the remote computing device requiring input from a different controller mode), thereby reducing the overall user experience.

As such, it may be desirable to provide a game controller that may be utilized as and dynamically switched between either a gamepad mode or a keyboard/mouse mode, e.g., via the multi-mode controller switching component, for providing game-related or keyboard/mouse related inputs to a remote computer device that is connected to the game console via a communication network. The switching between keyboard/mouse and gamepad modes may occur dynamically based on a user's preference in response to a received user input (such as by detecting the user pressing a specific key combination, e.g., menu and view, receiving a voice command, or detecting a gesture). The multi-mode controller switching component may allow a user the flexibility to go back and forth between keyboard/mouse or gamepad modes depending on a user selection of one or more buttons of the game controller, thereby enabling different types of inputs to be supplied to control the remote computer device.

Specifically, the present implementations may receive, via a game controller, a first input triggering an activation of a multi-mode controller switching component at a game console. The present implementations may also, while the multi-mode controller switching component is activated and the game controller is operating in the first controller mode, receive a second input representing a selection of a second controller mode different from the first controller mode. The present implementations further switch from the first controller mode to the second controller mode in response to receiving the second input. The present implementations further control a computing device in communication with the game console in accordance with the second controller mode. In an example scenario, for instance, the first controller mode of the game controller is a gamepad mode for operating a first application executing on the computer device and being cast to the game console, while the second controller mode is a keyboard/mouse mode for controlling the first application or a second application executing on the computing device. Thus, the present disclosure enables controlling of a remote computer device using a gamepad controller connected to a game console in at least one of two controller modes.

Referring now toFIG. 1, an example operating environment for implementing various embodiments of the present disclosure is shown and designated generally as computing device100, which includes a multi-mode controller switching component124that enables controlling a remote computer device with gamepad inputs or with keyboard/mouse inputs using a multi-mode gamepad controller connected to the computer device100(e.g., a game console). The multi-mode controller switching component124may be implemented, for example, as software or computer-readable code or instructions executable by a processor, or as specially-coded hardware, or as some combination of both (e.g., firmware). For example, the multi-mode controller switching component124may include or otherwise correspond to an application program residing at the computer device100. Computing device100may be but one example of a suitable computing environment and is not intended to suggest any limitation as to the scope of use or functionality of the present disclosure. Neither should the computing device100be interpreted as having any dependency or requirement relating to any one or combination of components illustrated. In some implementations, the computing device100may be a video game console.

The present disclosure may be described in the general context of computer code or machine-useable instructions, including computer-executable instructions such as program components, being executed by a computer or other machine, such as a personal data assistant or other handheld device. Generally, program components, including routines, programs, objects, components, data structures, and the like, refer to code that performs particular tasks or implements particular abstract data types. One or more implementations may be practiced in a variety of system configurations, including handheld devices, consumer electronics, general-purpose computers, specialty computing devices, etc. Various implementations may also be practiced in distributed computing environments where tasks are performed by remote-processing devices that are linked through a communications network.

Computing device100may include a bus110that directly or indirectly couples the following devices: memory112, one or more processors114, one or more presentation components116(e.g., a display, a television), input/output (I/O) ports118, I/O components120, a power supply122, and a multi-mode controller switching component124, which may be configured to switch between a first controller mode providing gamepad inputs for controlling content on a game console and/or content being cast from a remotely-located, networked computer device to the game console, and a second controller mode providing keyboard/mouse inputs for controlling the remotely-located, networked computing device in communication with the game console. Bus110may represent one or more busses (such as an address bus, data bus, or combination thereof). Although the various blocks ofFIG. 1are shown with lines for the sake of clarity, in reality, delineating various components is not so clear, and metaphorically, the lines may more accurately be grey and fuzzy. For example, one may consider a presentation component116such as a display device to be an I/O component120. Also, the one or more processors114may include additional memory. The diagram ofFIG. 1is merely illustrative of an example computing device that may be used in connection with one or more implementations of the present disclosure. Distinction may not be made between such categories as “workstation,” “server,” “laptop,” “handheld device,” etc., as all may be contemplated within the scope ofFIG. 1and refer to “computer” or “computing device.”

Computing device100may include a variety of computer-readable media. Computer-readable media may be any available media that can be accessed by computing device100and includes both volatile and nonvolatile media, removable and non-removable media. By way of example, and not limitation, computer-readable media may comprise computer storage media and communication media. Computer storage media may include both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules or other data.

Computer storage media may include RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices. Combinations of the above may also be included within the scope of computer-readable media. Computer storage media may not include a propagated data signal.

Memory112may include computer-storage media in the form of volatile and/or nonvolatile memory. The memory112may be removable, non-removable, or a combination thereof. Example memory may include solid-state memory, hard drives, optical-disc drives, etc. Computing device100may include one or more processors114that read data from various entities such as bus110, memory112or I/O components120. Presentation component(s)116may present data indications (e.g., visual, audio, haptic) to a user or other device. Example presentation components116may include a display device, a television, a speaker, a printing component, a vibrating component, etc. I/O ports118may allow computing device100to be logically coupled to other devices including I/O components120, some of which may be built in. Illustrative I/O components120may include a microphone, joystick, game controller or pad, satellite dish, scanner, printer, wireless device, etc.

The one or more processors114may include a CPU may include one or more processors for executing instructions. An example of CPU can include, but is not limited to, any processor specially programmed as described herein, including a controller, microcontroller, application specific integrated circuit (ASIC), field programmable gate array (FPGA), system on chip (SoC), or other programmable logic or state machine. The CPU114may include other processing components such as an arithmetic logic unit (ALU), registers, and a control unit. Further, the operating system may include instructions (such as one or more applications) stored in memory and executed by the CPU. The computing device100may also include an application including instructions stored in memory and executed by the CPU.

Referring now toFIG. 2, network gaming environment200is shown, in accordance with some implementations of the present disclosure. The online gaming environment200may include various game clients connected through a network220to a game service230. Example game clients may include a game console210, a tablet212, and/or a personal computer214. Use of other game clients, such as smart phones, may also possible. The game console210may include multi-mode controller switching component124, and may have one or more game controllers including game controller231communicatively coupled. The multi-mode controller switching component124may be configured to switch between a first controller mode240providing gamepad inputs for controlling the game console210or a computing device such as personal computer214that is executing an application and casting the content to the game console210, and a second controller mode242providing keyboard/mouse inputs for controlling a computing device such as personal computer214. In some implementations, the game console210, or game console210and game controller231, may be the same as computing device100. In one implementation, the tablet212may be a different form of the game controller231and act as an input device for a game console210or a personal computer214. In another embodiment, the tablet212is a stand-alone game client. Network220may be a wide area network, such as the Internet, or a local area network (LAN).

The game console210may connect to one or more presentation components116, such as a television or other display) via A/V interfacing cables. A power cable may provide power to the game console210. The game console210may be further equipped with internal or externally added network capabilities, such as, but not limited to a cable or modem connector to facilitate access to the network220. A memory unit may be inserted into the game controller231to provide additional and portable storage or alternatively into the game console210. Portable memory units enable users to store game parameters and transport them for play on other consoles.

The one or more controllers associated with game console210may include, but are not limited to, game controller231, tablet232, headset236, virtual reality device250, and depth camera234. The headset236, may capture audio input from a player and the player's surroundings and may also act as an output device if it is coupled with a headphone or other speaker. The virtual reality device250may be a head mounted device (HMD) for use with virtual reality and/or augmented reality applications.

The depth camera234may generate a depth cloud used as an input. The depth camera234may an use infrared camera to determine a depth, or distance from the camera for each pixel captured. Stereoscopic depth cameras are also possible. In addition, the depth camera234may capture a typical color stream or picture. The depth camera234may have several image gathering components. For example, the depth camera234may have multiple cameras.

Game service230may include multiple computing devices communicatively coupled to each other. In one implementation, the game service230is implemented using one or more server farms. The server farms may be spread out across various geographic regions including cities throughout the world. In this scenario, the game clients may connect to the closest server farms. Embodiments of the present invention are not limited to this setup.

The game controller231in combination with the multi-mode switching component124in the first controller mode240for providing gamepad inputs may be capable of generating control signals, such as those generated by button selections and joystick movement. Movement data such as that generated by accelerometers and gyros within the game pad231may be examples of sensor data. The game controller210can be coupled to the game console210via a wired or wireless interface. In wired operation, the controller231may be connected to the game console231via a cable. While connected, the game controller231may derive power from the game console210through the cable. In wireless operation, the game controller231may be connected to the game console210via a wireless link and draws from its own power source, such as a battery. The wireless link may be implemented using any one of many different technologies including, for example, infrared, Bluetooth, or RF technologies. The cable may be optionally detached from the controller to offer more freedom of movement.

The game controller231may be equipped with any of a wide variety of user interaction mechanisms. For example, the game controller231may be equipped with at least two thumbsticks, a directional or D-pad, surface buttons, and at least two triggers. These mechanisms are merely representative, and other gaming mechanisms (e.g., shoulder trigger buttons) may be substituted for and/or added to the game controller231.

The game controller231in combination with the multi-mode switching component124in the second controller mode242for providing keyboard/mouse inputs may be capable of generating control signals, such as those generated by button selections and joystick movement each mapped to, for example, one of movement of a mouse cursor, a left mouse button click, or right mouse button click.

Thus, based on dynamically switching between the first controller mode240and the second controller mode242, the game controller231may communicate with the game console210to provide gamepad or keyboard/mouse inputs over the network220to the computer device214to control operation of an application executing on the computer device214and being cast to the game console210.

Referring now toFIG. 3, a multi-mode controller switching scheme300may be operated by the game controller231and the game console210to control the game console210and/or the personal computer214. For example, content casting technology may allow a user to cast content from one device to another. In some examples, the casted to device may include a larger display device, such as a television or projector.

In some implementations, casting may permit an application that is running on a first device (e.g., personal computer214) to generate images, video, or graphics, and make those appear on a second device (e.g., presentation components114via game console210). The images, video, or graphics may be transmitted wirelessly from the first device to the second device, but can also be transmitted by means of a wired connection, such as an high definition multimedia interface (HDMI) cable. In some implementations, content may be casted according to a Wi-Fi display protocol referred to as Miracast as a wireless connection technology between the first and second devices.

However, when using casting technology at the personal computer214, where the personal computer214may be referred to the source device, a sink device such as the game console210including the game controller231may be limited in controlling the personal computer214when in a first controller mode240. That is, when casting to the game console210from a remote computing device such as personal computer214, controlling the personal computer214in an efficient manner equivalent to using a keyboard/mouse may be limited when in the first controller mode242. In fact, when a multi-mode controller switching component124is deactivated, the game console210may receive and interpret inputs from the game controller231, e.g., gamepad inputs, as configured for interaction with content at the game console210. In other words, for example, the game controller231may act to control a game being executed by the game console210by sending inputs to the game console210. As such, in prior solutions, even if the personal computer214is connected to the game console210, a user may keep the personal computer214in close proximity to use associated input methods such as touch, mouse, keyboard, etc., to supplement the game inputs provided by the game controller231. Such limited potential configuration may result in a less compelling user experience unless the projected content lacks interactivity. However, if projecting, accessing, and/or controlling interactive content, notably from a device that is remote from the game console210, it may be beneficial to control the source device (e.g., personal computer214) via the sink device (e.g., game console210) without sacrificing user operability in terms of controlling the sink device.

As such, the multi-mode controller switching scheme300may include a multi-mode controller switching component124residing at the game console configured to provide controlling of the remote personal computer214and, for example, a game executed by the remote personal computer214being casted to the game console210, using the game controller231connected to the game console210. In some implementations, the multi-mode controller switching component124may permit or otherwise enable control of the personal computer214in communication with the game console210via the game controller231according to the first controller mode240or the second controller mode242. In some implementations, controlling may include being able to dynamically change an input between the first controller mode240corresponding to a gamepad mode, e.g., a gamepad input, and the second controller mode242corresponding to a keyboard/mouse mode, e.g., a keyboard/mouse input, to control the remote personal computer214and, for example, a game or other software executed by the remote personal computer214being casted to the game console210, in an efficient manner based on whether a user is trying to access content or features of the game console210or the personal computer214and/or if a game being executed by the personal computer214and casted to the game console210has opportunities to provide mouse inputs as opposed to gaming inputs. Such implementation provides the user full control, in different modes, over devices connected to or in communication with the game console210.

In an example, a user may use the game controller231to control the game console210using gamepad keys/buttons/sticks. For example, while in the first controller mode240, an input may be received from the game controller231at the game console210. The input may be interpreted as gamepad commands304for interacting with content at the game console210. However, in some implementations, a user may wish to interact with the personal computer214in an efficient manner. So, the user may trigger an activation of the multi-mode controller switching component124via any one or any combination of buttons of the game controller231so as to control the personal computer214via the game console210in either the first controller mode240or the second controller mode242.

Specifically, when the multi-mode controller switching component124is activated, inputs received at the game controller231may be translated to commands and subsequently routed to the personal computer214via the game console210. Accordingly, the multi-mode controller switching component124configures the game console210to route game controller210inputs as commands to the personal computer214according to the first controller mode240, e.g., gaming inputs, or the second controller mode242, e.g., keyboard/mouse inputs. Further, while the multi-mode controller switching component124is activated, the game controller231and/or game console210may receive a user input, e.g., a detected specific button/key combination that triggers a switch from one controller mode to another controller mode. In some implementations, the user input that triggers the switch may also be based on a voice input, a detected physical gesture or swipe or gesture received on a display, or may be a dedicated button or switch on the game controller231, game console210, and/or another device connected to the game console210(e.g., using an app on a nearby smartphone). Specifically, the game console210may receive the input (button/key combo, voice, etc.), and may determine whether the received input corresponds to a defined input (e.g., sequential or simultaneous combination of key input) for triggering a controller mode adjustment. The forgoing may be performed while the multi-mode controller switching component124is activated and the game console210is connected to and/or in communication with the personal computer214via a wired or wireless interface.

The multi-mode controller switching component124may then switch from one controller mode to another controller mode in response to receiving the input. For example, the multi-mode controller switching component124activated on the game console210may switch from the first controller mode242to the second controller mode240based on determining that the received input corresponds to a defined input that triggers the controller mode switching. In doing so, the user may use the game controller231as a keyboard/mouse in controlling the personal computer214. For instance, the game console210may receive inputs from the game controller231which, during the second controller mode242, may correspond to keyboard/mouse commands302to control operation of an application executing on the personal computer214. Alternatively, for instance, the game console210may receive inputs from the game controller231which, during operation of the multi-mode controller switching component124in the first controller mode240, may correspond to gamepad commands304to control operation of an application executing on the personal computer214. It should be noted that the gamepad commands304and the keyboard/mouse commands302may be used to control the same application, or different applications, operating on the personal computer214. Using a human interface device, and according to a user interface back channel (UIBC) protocol, the commands may be transmitted to the personal computer214.

Referring now toFIG. 4, an example method400provides for controlling a computing device such as the personal computer214in communication with the game console210using the game controller231in at least one of a first controller mode240or a second controller mode242. The actions illustrated in method400may overlap in time. For example, at an instant in time, two of the actions may be performed by different components. The execution of the actions may also be interleaved on a component. Additionally, the actions illustrated in method400may be performed in an order other than illustrated inFIG. 4.

At block402, the method400may receive, via the game controller231, a first input representing an activation of a multi-mode controller switching application at the game console. For example, as described herein, the game console210may receive, via the game controller231, a first input triggering an activation of a multi-mode controller switching component124at the game console210. Prior to receiving such input to activate the multi-mode controller switching component, the game controller231may control only the game console210with gaming inputs. As a result of such activation, a mode of the multi-mode controller switching component124may be changed so that the game controller provides gaming inputs and/or keyboard/mouse inputs, and either of such inputs may be provided to other devices, such as to the remote computer device214that may be executing a game or other application and casting the content to the game console210. In some implementations, activation may be enabled by default, and does not require any extra action from the user.

The multi-mode controller switching component124may be an application program that permits control of the computing device (e.g., personal computer214) in communication with the game console210via the game controller231according to the first controller mode240or the second controller mode242. That is, the multi-mode controller switching component124may be configured to transmit one or more commands received from the game controller231according to a first controller mode240or a second controller mode242to a computing device (e.g., persona computer214) in communication with the game console210. In some implementations, the first input may be a sequential or simultaneous combination of key inputs, receiving a voice command, or detecting a gesture.

In some implementations, the first controller mode240may correspond to a gamepad mode for controlling the game console210. For example, the first controller mode240may provide gaming inputs to the computing device, and such gaming inputs may be the same type of inputs the game controller231provides to the game console210when the multi-mode controller switching component124is not activated. In some implementations, the second controller mode242may correspond to keyboard/mouse mode for controlling the computing device (e.g., personal computer214).

In some implementations, when the multi-mode controller switching component124is activated, the inputs from both the first controller mode240and the second controller mode242are provided to the computing device (e.g., personal computer214). In some implementations, the first controller mode240may generate one or more gaming commands in response to at least one input received from the game controller231. In some implementations, the second controller mode242may generate one or more key-board/mouse commands in response to at least one input received from the game controller231.

At block404, the method400may activate the multi-mode controller switching application to control a computing device in communication with the game console. For example, the game console210may execute multi-mode controller switching component124to activate a multi-mode controller switching application at the game console210to control the computing device (e.g., personal computer214) according to at least one of the first controller mode240or the second controller mode242. Further, for instance, activating the multi-mode controller switching component124may include identifying and/or selecting the computing device, or accepting an invite to receive a cast (or both). In some implementations, the multi-mode controller switching component may start or be activated in a default mode (e.g., either the first controller mode240or the second controller mode242).

At block406, the method400may configure the game console in accordance with a first controller mode. For example, the game console210may execute multi-mode controller switching component124to configure or enter the game console210in accordance with a first controller mode240(e.g., a default mode) such that inputs received from the game controller231are translated and transmitted to the computing device (e.g., personal computer214) as gamepad commands.

At block408, the method400may receive a control the computing device with the game controller in accordance with the first controller mode. For example, the game console210may execute multi-mode controller switching component124to control the computing device (e.g., personal computer214) via the game controller231in accordance with the first controller mode240.

In some implementations, controlling the computing device via the game controller231in the first controller mode240may include receiving, at the game console210, a first selection of one or more buttons of the game controller231while operating in the first controller mode240, determining at least one command associated with the first controller mode240based on receiving the first selection of the one or more buttons of the game controller, and transmitting, from the game console to the computing device, the at least one command while operating in the first controller mode and according to a first controller mode button-to-command mapping. For instance, the first controller mode button-to-command mapping may be a table mapping of buttons of the game controller231to one or more gamepad commands that may be transmitted to the personal computer214.

In some implementations, blocks410through416of the method400may be performed while the game controller231is connected to the game console210and operating in a first controller mode240.

At block410, the method400may receive a second input representing a selection of a second controller mode different from the first controller mode. For example, as described herein, the game console210may receive, via the game controller231, an input representing a selection of a second controller mode242different from the first controller mode240.

In some implementations, receiving the input may include receiving a sequential or simultaneous combination of key inputs.

At block412, the method400may switch from the first controller mode to the second controller mode. For example, the game console210may execute multi-mode controller switching component124to switch from the first controller mode240to the second controller mode242in response to receiving the second input.

In some implementations, switching from the first controller mode240to the second controller mode242may include determining whether the second input corresponds to a controller mode switching input, maintaining the first controller mode240based on a determination that the second input does not correspond to the controller mode switching input, and adjusting a mapping of one or more components of the game controller231to executable inputs associated with the second controller mode242based on a determination that the second input corresponds to the controller mode switching input. In some implementations, the controller switching input may correspond to a defined sequential or simultaneous combination of key inputs triggering the mapping adjustment.

In some implementations, the one or more components may include at least one button and a joystick. Adjusting the mapping may include mapping the joystick to a mouse cursor, and mapping the at least one button to a left or right mouse button.

At block414, the method400may control a computing device in communication with the game console in accordance with the second controller mode. For example, the game console210may, via the game controller231, control a computing device (e.g., personal computer214) in communication with the game console210in accordance with the second controller mode242.

In some implementations, controlling the computing device (e.g., personal computer214) in accordance with the second controller mode242may include receiving, at the game console210, a second selection of one or more buttons of the game controller while operating in the second controller mode242, determining at least one command associated with the second controller mode242based on receiving the second selection of the one or more buttons of the game controller231, and transmitting, from the game console210to the computing device, the at least one command while operating in the second controller mode242according to a second controller mode button-to-command mapping. For instance, the second controller mode button-to-command mapping may be a table mapping of buttons of the game controller231to one or more keyboard and/or mouse commands that may be transmitted to the personal computer214.

In some implementations, operating in the first controller mode240may include operating a first application executing on the computing device (e.g., personal computer214) and being cast to the game console210using the game controller231in a gamepad mode. In some implementations, controlling the computing device in accordance with the second controller mode242may further include controlling the first application or a second application executing on the computing device in a keyboard/mouse mode.

At block416, the method400may receive, via the game controller, a third input representing a deactivation of the multi-mode controller application. For instance, when the multi-mode controller application is active, all commands associated with inputs received from the game controller231may be transmitted to the personal computer214during both the first controller mode240and the second controller mode242, except for the multi-mode controller application deactivation command. Specifically, the third input may be a selection of single or combination buttons on the game controller231that triggers the deactivation of the multi-mode controller application.

Although not illustrated, the method400may further switch from the second controller mode242to the first controller mode240. For example, the method400may receive, while in the second controller mode242, another input representing a selection of the first controller mode240. The method400may then determine that the input corresponds to a controller switching input to switch from the second controller mode242to a first controller mode240. The method400may switch from the second controller mode242to the first controller mode240based on a determination that the input corresponds to the controller switching input.

As used in this application, the terms “component,” “system” and the like are intended to include a computer-related entity, such as but not limited to hardware, firmware, a combination of hardware and software, software, or software in execution. For example, a component may be, but is not limited to being, a process running on a processor, a processor, an object, an executable, a thread of execution, a program, and/or a computer. By way of illustration, both an application running on a computer device and the computer device can be a component. One or more components can reside within a process and/or thread of execution and a component may be localized on one computer and/or distributed between two or more computers. In addition, these components can execute from various computer readable media having various data structures stored thereon. The components may communicate by way of local and/or remote processes such as in accordance with a signal having one or more data packets, such as data from one component interacting with another component in a local system, distributed system, and/or across a network such as the Internet with other systems by way of the signal.

Moreover, the term “or” is intended to mean an inclusive “or” rather than an exclusive “or.” That is, unless specified otherwise, or clear from the context, the phrase “X employs A or B” is intended to mean any of the natural inclusive permutations. That is, the phrase “X employs A or B” is satisfied by any of the following instances: X employs A; X employs B; or X employs both A and B. In addition, the articles “a” and “an” as used in this application and the appended claims should generally be construed to mean “one or more” unless specified otherwise or clear from the context to be directed to a singular form.

Various implementations or features may have been presented in terms of systems that may include a number of devices, components, modules, and the like. It is to be understood and appreciated that the various systems may include additional devices, components, modules, etc. and/or may not include all of the devices, components, modules etc. discussed in connection with the figures. A combination of these approaches may also be used.

The various illustrative logics, logical blocks, and actions of methods described in connection with the embodiments disclosed herein may be implemented or performed with a specially-programmed one of a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A processor may be a microprocessor, but, in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computer devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration. Additionally, at least one processor may comprise one or more components operable to perform one or more of the steps and/or actions described above.

Further, the steps and/or actions of a method or algorithm described in connection with the implementations disclosed herein may be embodied directly in hardware, in a software module executed by a processor, or in a combination of the two. A software module may reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, a hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art. An exemplary storage medium may be coupled to the processor, such that the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to the processor. Further, in some implementations, the processor and the storage medium may reside in an ASIC. Additionally, the ASIC may reside in a user terminal. In the alternative, the processor and the storage medium may reside as discrete components in a user terminal. Additionally, in some implementations, the steps and/or actions of a method or algorithm may reside as one or any combination or set of codes and/or instructions on a machine readable medium and/or computer readable medium, which may be incorporated into a computer program product.

In one or more implementations, the functions described may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored or transmitted as one or more instructions or code on a computer-readable medium. As described above, computer-readable media includes both computer storage media and communication media including any medium that facilitates transfer of a computer program from one place to another.

While implementations of the present disclosure have been described in connection with examples thereof, it will be understood by those skilled in the art that variations and modifications of the implementations described above may be made without departing from the scope hereof. Other implementations will be apparent to those skilled in the art from a consideration of the specification or from a practice in accordance with examples disclosed herein.

Claims

  1. A method of communication at a game console including a game controller, comprising: receiving, via the game controller, a first input triggering an activation of a multi-mode controller switching application at the game console, wherein the multi-mode controller switching application is configured to transmit one or more commands received from the game controller according to a first controller mode or a second controller mode to a computing device in communication with the game console;and while the multi-mode controller switching application is active and the game controller is operating in the first controller mode: receiving, via the game controller, a second input representing a selection of the second controller mode different from the first controller mode;switching from the first controller mode to the second controller mode in response to receiving the second input;and transmitting a command from the game console to the computing device in accordance with the second controller mode.
  1. The method of claim 1 , wherein the first controller mode generates one or more gaming commands in response to at least one input received from the game controller.
  2. The method of claim 1 , wherein the second controller mode generates one or more keyboard/mouse commands in response to at least one input received from the game controller.
  3. The method of claim 1 , further comprising: activating the multi-mode controller switching application at the game console to control the computing device according to at least one of the first controller mode or the second controller mode;and controlling the computing device with the game controller in accordance with the first controller mode.
  4. The method of claim 4 , wherein operating the game controller in accordance with the first controller mode includes: receiving, at the game console, a first selection of one or more buttons of the game controller while operating in the first controller mode;determining at least one command associated with the first controller mode based on receiving the first selection of the one or more buttons of the game controller;and transmitting, from the game console to the computing device, the at least one command while operating in the first controller mode.
  5. The method of claim 1 , wherein controlling the computing device in accordance with the second controller mode includes: receiving, at the game console, a second selection of one or more buttons of the game controller while operating in the second controller mode;determining at least one command associated with the second controller mode based on receiving the second selection of the one or more buttons of the game controller;and transmitting, from the game console to the computing device, the at least one command while operating in the second controller mode.
  6. The method of claim 1 , wherein receiving the second input includes receiving a sequential or simultaneous combination of key inputs, receiving a voice command, or detecting a gesture.
  7. The method of claim 1 , wherein switching from the first controller mode to the second controller mode includes: determining whether the second input corresponds to a controller mode switching input;maintaining the first controller mode based on a first determination that the second input does not correspond to the controller mode switching input;and adjusting a mapping of one or more components of the game controller to executable inputs associated with the second controller mode based on a second determination that the second input corresponds to the controller mode switching input.
  8. The method of claim 8 , wherein the one or more components include at least one button and a joystick, and wherein adjusting the mapping includes: mapping the joystick to a mouse cursor, and mapping the at least one button to a left or right mouse button.
  9. The method of claim 8 , wherein the controller mode switching input corresponds to a defined sequential or simultaneous combination of key inputs triggering the adjusting of the mapping.
  10. The method of claim 1 , wherein the computing device is in communication with the game console via an interface connection.
  11. The method of claim 1 , wherein the computing device is a personal computer.
  12. The method of claim 1 , wherein operating in the first controller mode includes operating a first application executing on the computing device and being cast to the game console using the game controller in a gamepad mode;and wherein controlling the computing device in accordance with the second controller mode further comprises controlling the first application or a second application executing on the computing device in a keyboard/mouse mode.
  13. The method of claim 1 , further comprising: receiving, via the game controller, a third input triggering a deactivation of the multi-mode controller switching application at the game console;and deactivating the multi-mode controller switching application at the game console.
  14. A game console, comprising: a memory configured to store one or more executable instructions;a game controller configured to transmit one or more received inputs;and at least one processor in communication with the memory and the game controller, wherein the at least one processor is configured to: receive, via the game controller, a first input triggering an activation of a multi-mode controller switching application at the game console, wherein the multi-mode controller switching application is configured to transmit one or more commands received from the game controller according to a first controller mode or a second controller mode to a computing device in communication with the game console;and while the multi-mode controller switching application is active and the game controller is operating in the first controller mode: receive, via the game controller, a second input representing a selection of the second controller mode different from the first controller mode;switch from the first controller mode to the second controller mode in response to receiving the second input;and transmitting a command from the game console to the computing device in accordance with the second controller mode.
  15. The game console of claim 15 , wherein the first controller mode generates one or more gaming commands in response to at least one input received from the game controller.
  16. The game console of claim 15 , wherein the second controller mode generates one or more keyboard/mouse commands in response to at least one input received from the game controller.
  17. The game console of claim 15 , wherein the at least one processor is further configured to: activate the multi-mode controller switching application at the game console to control the computing device according to at least one of the first controller mode or the second controller mode;and control the computing device with the game controller in accordance with the first controller mode.
  18. The game console of claim 18 , wherein to operate the game controller in accordance with the first controller mode, the at least one processor is further configured to: receive, at the game console, a first selection of one or more buttons of the game controller while operating in the first controller mode;determine at least one command associated with the first controller mode based on receiving the first selection of the one or more buttons of the game controller;and transmit, from the game console to the computing device, the at least one command while operating in the first controller mode.
  19. A computer-readable medium storing instructions executable by a game console including a game controller, comprising at least one instruction for: receiving, via the game controller, a first input triggering an activation of a multi-mode controller switching application at the game console, wherein the multi-mode controller switching application is configured to transmit one or more commands received from the game controller according to a first controller mode or a second controller mode to a computing device in communication with the game console;and while the multi-mode controller switching application is active and the game controller is operating in the first controller mode: receiving, via the game controller, a second input representing a selection of the second controller mode different from the first controller mode;switching from the first controller mode to the second controller mode in response to receiving the second input;and transmitting a command from the game console to the computing device in accordance with the second controller mode.

Disclaimer: Data collected from the USPTO and may be malformed, incomplete, and/or otherwise inaccurate.